|
4 | 4 | #include <stddef.h>
|
5 | 5 |
|
6 | 6 | // Bit positions for flags
|
7 |
| -#define INDEX_READY_BIT 0 |
8 |
| -#define ROWNUM_COL_OFFSET_BIT 1 |
9 |
| -#define INDEX_STARTED_BIT 2 |
10 |
| -#define HAS_ROW_NUM_BIT 3 |
11 |
| -#define MUTEX_INITED_BIT 4 |
12 |
| -#define WRITE_IN_PROGRESS_BIT 5 |
13 |
| -#define WRITE_DONE_BIT 6 |
14 |
| -#define WORKER_ACTIVE_BIT 7 |
15 |
| -#define WORKER_CANCELLED_BIT 8 |
| 7 | +#define INDEX_READY_BIT 0 |
| 8 | +#define ROWNUM_COL_OFFSET_BIT 1 |
| 9 | +#define INDEX_STARTED_BIT 2 |
| 10 | +#define HAS_ROW_NUM_BIT 3 |
| 11 | +#define MUTEX_INITED_BIT 4 |
| 12 | +#define WRITE_IN_PROGRESS_BIT 5 |
| 13 | +#define WRITE_DONE_BIT 6 |
| 14 | +#define WORKER_ACTIVE_BIT 7 |
| 15 | +#define WORKER_CANCELLED_BIT 8 |
16 | 16 |
|
17 | 17 | // Atomic bit field operations
|
18 | 18 | static inline void atomic_set_bit(volatile unsigned char *addr, int bit) {
|
19 |
| - __sync_or_and_fetch(addr, 1U << bit); |
| 19 | + __sync_or_and_fetch(addr, 1U << bit); |
20 | 20 | }
|
21 | 21 |
|
22 | 22 | static inline void atomic_clear_bit(volatile unsigned char *addr, int bit) {
|
23 |
| - __sync_and_and_fetch(addr, ~(1U << bit)); |
| 23 | + __sync_and_and_fetch(addr, ~(1U << bit)); |
24 | 24 | }
|
25 | 25 |
|
26 | 26 | static inline int atomic_test_bit(const volatile unsigned char *addr, int bit) {
|
27 |
| - return !!(__sync_fetch_and_or((volatile unsigned char *)addr, 0) & (1U << bit)); |
| 27 | + return !!(__sync_fetch_and_or((volatile unsigned char *)addr, 0) & (1U << bit)); |
28 | 28 | }
|
29 | 29 |
|
30 | 30 | // Flag structure for atomic operations
|
31 | 31 | struct zsvsheet_ui_flags {
|
32 |
| - volatile unsigned char flags[2]; // Using 2 bytes to accommodate all bits |
| 32 | + volatile unsigned char flags[2]; // Using 2 bytes to accommodate all bits |
33 | 33 | };
|
34 | 34 |
|
35 | 35 | // Function declarations
|
|
0 commit comments