fat: Enable 4096-byte sector sizes

* Correct code that only works when sector size is 512 bytes.
* For devices with 4096-byte sectors, use 4096 as the size of blocks
  in the block cache, and as the unit of IO requests in FAT
  operations.
* Some values continue to be stored in 512-byte units, regardless of
  sector size, in keeping with the original BSD driver.
* Fixes #19686.

Change-Id: I8fa77aeab1bc93a5465134018c3113afb2a80b8b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9542
Reviewed-by: waddlesplash <[email protected]>
This commit is contained in:
Jim906
2025-08-04 15:06:48 +00:00
committed by waddlesplash
parent 5e21788f2a
commit 22375f018d
6 changed files with 190 additions and 140 deletions
@@ -46,6 +46,7 @@
#define ROUNDUP(a, b) (((a) + ((b)-1)) & ~((b)-1))
#define ROUNDDOWN(a, b) (((a) / (b)) * (b))
#define HOWMANY(a, b) (((a) + ((b) - 1)) / (b))
#define CHECK_BIT(a, b) ((a) & (1 << (b)))