diff options
| author | gkostka <kostka.grzegorz@gmail.com> | 2016-04-01 15:05:29 +0200 |
|---|---|---|
| committer | gkostka <kostka.grzegorz@gmail.com> | 2016-04-01 15:20:40 +0200 |
| commit | 0589b9280b623ef2dc2ec2c5c879b4d23cabddb9 (patch) | |
| tree | a4f8a3b08e0e976cee5da9a849c4c2d950b5b8df /src | |
| parent | 53b4f91981f5898473830d53c24c27e17f83a8a1 (diff) | |
ext4_config: add CONFIG_UNALIGNED_ACCESS configuration switch
On some targets unaligned 32/16 bit access will raise exeption.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ext4_bitmap.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/ext4_bitmap.c b/src/ext4_bitmap.c index 807acb9..be37a5a 100644 --- a/src/ext4_bitmap.c +++ b/src/ext4_bitmap.c @@ -59,6 +59,7 @@ void ext4_bmap_bits_free(uint8_t *bmap, uint32_t sbit, uint32_t bcnt) sbit = i; bmap += (sbit >> 3); +#if CONFIG_UNALIGNED_ACCESS while (bcnt >= 32) { *(uint32_t *)bmap = 0; bmap += 4; @@ -72,6 +73,7 @@ void ext4_bmap_bits_free(uint8_t *bmap, uint32_t sbit, uint32_t bcnt) bcnt -= 16; sbit += 16; } +#endif while (bcnt >= 8) { *bmap = 0; @@ -110,6 +112,7 @@ int ext4_bmap_bit_find_clr(uint8_t *bmap, uint32_t sbit, uint32_t ebit, sbit = i; bmap += (sbit >> 3); +#if CONFIG_UNALIGNED_ACCESS while (bcnt >= 32) { if (*(uint32_t *)bmap != 0xFFFFFFFF) goto finish_it; @@ -127,8 +130,8 @@ int ext4_bmap_bit_find_clr(uint8_t *bmap, uint32_t sbit, uint32_t ebit, bcnt -= 16; sbit += 16; } - finish_it: +#endif while (bcnt >= 8) { if (*bmap != 0xFF) { for (i = 0; i < 8; ++i) { |
