|
@@ -404,16 +404,20 @@ struct lfs_diskoff {
|
|
|
|
|
|
|
|
// operations on global state
|
|
// operations on global state
|
|
|
static inline void lfs_gstate_xor(lfs_gstate_t *a, const lfs_gstate_t *b) {
|
|
static inline void lfs_gstate_xor(lfs_gstate_t *a, const lfs_gstate_t *b) {
|
|
|
- for (int i = 0; i < 3; i++) {
|
|
|
|
|
- ((uint32_t*)a)[i] ^= ((const uint32_t*)b)[i];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ a->tag ^= b->tag;
|
|
|
|
|
+ a->pair[0] ^= b->pair[0];
|
|
|
|
|
+ a->pair[1] ^= b->pair[1];
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
static inline bool lfs_gstate_iszero(const lfs_gstate_t *a) {
|
|
static inline bool lfs_gstate_iszero(const lfs_gstate_t *a) {
|
|
|
- for (int i = 0; i < 3; i++) {
|
|
|
|
|
- if (((uint32_t*)a)[i] != 0) {
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (a->tag != 0) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (a->pair[0] != 0) {
|
|
|
|
|
+ return false;
|
|
|
|
|
+ }
|
|
|
|
|
+ if (a->pair[1] != 0) {
|
|
|
|
|
+ return false;
|
|
|
}
|
|
}
|
|
|
return true;
|
|
return true;
|
|
|
}
|
|
}
|