diff options
| author | salmonik <salmonik@tuta.io> | 2026-08-01 02:50:34 +0200 |
|---|---|---|
| committer | salmonik <salmonik@tuta.io> | 2026-08-01 02:50:34 +0200 |
| commit | c00c74f3f96f36440733e5007b465452d39212a2 (patch) | |
| tree | f597bdd9d36231dc59bb61cf142156cfaf37ca8a | |
| parent | CONTEXT.md: record pending decisions (klog ring, disk-recognition scope) (diff) | |
| download | rs-dos-c00c74f3f96f36440733e5007b465452d39212a2.tar.gz rs-dos-c00c74f3f96f36440733e5007b465452d39212a2.zip | |
rustfmt: reflow fat.rs/fs.rs formatting
| -rw-r--r-- | rsnix/src/fat.rs | 23 | ||||
| -rw-r--r-- | rsnix/src/fs.rs | 7 |
2 files changed, 18 insertions, 12 deletions
diff --git a/rsnix/src/fat.rs b/rsnix/src/fat.rs index c486dfe..52aa641 100644 --- a/rsnix/src/fat.rs +++ b/rsnix/src/fat.rs | |||
| @@ -34,8 +34,8 @@ pub struct Entry { | |||
| 34 | } | 34 | } |
| 35 | 35 | ||
| 36 | struct Volume { | 36 | struct Volume { |
| 37 | disk: usize, // AHCI disk index this volume was mounted from | 37 | disk: usize, // AHCI disk index this volume was mounted from |
| 38 | uid: String, // unique mount name: "LABEL-XXXXXXXX" | 38 | uid: String, // unique mount name: "LABEL-XXXXXXXX" |
| 39 | sectors_per_cluster: u8, | 39 | sectors_per_cluster: u8, |
| 40 | reserved: u16, | 40 | reserved: u16, |
| 41 | fat_count: u8, | 41 | fat_count: u8, |
| @@ -56,11 +56,15 @@ pub fn volume_count() -> usize { | |||
| 56 | 56 | ||
| 57 | /// Unique mount name of volume `vol` ("RSDOS-5BD1E55F"). | 57 | /// Unique mount name of volume `vol` ("RSDOS-5BD1E55F"). |
| 58 | pub fn uid(vol: usize) -> &'static str { | 58 | pub fn uid(vol: usize) -> &'static str { |
| 59 | unsafe { VOLS.get(vol) }.map(|v| v.uid.as_str()).unwrap_or("") | 59 | unsafe { VOLS.get(vol) } |
| 60 | .map(|v| v.uid.as_str()) | ||
| 61 | .unwrap_or("") | ||
| 60 | } | 62 | } |
| 61 | 63 | ||
| 62 | pub fn root_cluster(vol: usize) -> u32 { | 64 | pub fn root_cluster(vol: usize) -> u32 { |
| 63 | unsafe { VOLS.get(vol) }.map(|v| v.root_cluster).unwrap_or(0) | 65 | unsafe { VOLS.get(vol) } |
| 66 | .map(|v| v.root_cluster) | ||
| 67 | .unwrap_or(0) | ||
| 64 | } | 68 | } |
| 65 | 69 | ||
| 66 | /// Point all FAT operations at volume `vol`; also selects the backing | 70 | /// Point all FAT operations at volume `vol`; also selects the backing |
| @@ -504,7 +508,13 @@ pub fn read_file( | |||
| 504 | Ok(out) | 508 | Ok(out) |
| 505 | } | 509 | } |
| 506 | 510 | ||
| 507 | pub fn write_file(vol: usize, parent_dir_cluster: u32, name: &str, buf: &[u8], pos: u64) -> Result<usize, ()> { | 511 | pub fn write_file( |
| 512 | vol: usize, | ||
| 513 | parent_dir_cluster: u32, | ||
| 514 | name: &str, | ||
| 515 | buf: &[u8], | ||
| 516 | pos: u64, | ||
| 517 | ) -> Result<usize, ()> { | ||
| 508 | select_vol(vol)?; | 518 | select_vol(vol)?; |
| 509 | if buf.is_empty() { | 519 | if buf.is_empty() { |
| 510 | return Ok(0); | 520 | return Ok(0); |
| @@ -764,7 +774,8 @@ fn add_dir_entry(parent: u32, name: &str, is_dir: bool, cluster: u32) -> Result< | |||
| 764 | // chunk (highest seq, LAST flag) goes first, and the | 774 | // chunk (highest seq, LAST flag) goes first, and the |
| 765 | // head chunk (seq 1) lands immediately before the SFN. | 775 | // head chunk (seq 1) lands immediately before the SFN. |
| 766 | let seq = (g + 1) as u8 | if g == groups - 1 { 0x40 } else { 0 }; | 776 | let seq = (g + 1) as u8 | if g == groups - 1 { 0x40 } else { 0 }; |
| 767 | let e = &mut buf[(start + groups - 1 - g) * 32..(start + groups - 1 - g) * 32 + 32]; | 777 | let e = |
| 778 | &mut buf[(start + groups - 1 - g) * 32..(start + groups - 1 - g) * 32 + 32]; | ||
| 768 | e.fill(0); | 779 | e.fill(0); |
| 769 | e[0] = seq; | 780 | e[0] = seq; |
| 770 | e[11] = 0x0F; | 781 | e[11] = 0x0F; |
diff --git a/rsnix/src/fs.rs b/rsnix/src/fs.rs index 4b76e07..2a1a3e3 100644 --- a/rsnix/src/fs.rs +++ b/rsnix/src/fs.rs | |||
| @@ -178,12 +178,7 @@ pub fn init() -> (usize, usize) { | |||
| 178 | // Mount every FAT32 volume under /disk/<UID>/ (UID = label-serial). | 178 | // Mount every FAT32 volume under /disk/<UID>/ (UID = label-serial). |
| 179 | let disks = crate::fat::volume_count(); | 179 | let disks = crate::fat::volume_count(); |
| 180 | if disks > 0 { | 180 | if disks > 0 { |
| 181 | let disk_dir = add( | 181 | let disk_dir = add("disk", Some(root), FileType::Dir, NodeData::Dir(Vec::new())); |
| 182 | "disk", | ||
| 183 | Some(root), | ||
| 184 | FileType::Dir, | ||
| 185 | NodeData::Dir(Vec::new()), | ||
| 186 | ); | ||
| 187 | for vol in 0..disks { | 182 | for vol in 0..disks { |
| 188 | let uid = String::from(crate::fat::uid(vol)); | 183 | let uid = String::from(crate::fat::uid(vol)); |
| 189 | let root_cl = crate::fat::root_cluster(vol); | 184 | let root_cl = crate::fat::root_cluster(vol); |
