summaryrefslogtreecommitdiffstats
path: root/rsnix/src
diff options
context:
space:
mode:
authorsalmonik <salmonik@tuta.io>2026-08-01 02:50:34 +0200
committersalmonik <salmonik@tuta.io>2026-08-01 02:50:34 +0200
commitc00c74f3f96f36440733e5007b465452d39212a2 (patch)
treef597bdd9d36231dc59bb61cf142156cfaf37ca8a /rsnix/src
parentCONTEXT.md: record pending decisions (klog ring, disk-recognition scope) (diff)
downloadrs-dos-c00c74f3f96f36440733e5007b465452d39212a2.tar.gz
rs-dos-c00c74f3f96f36440733e5007b465452d39212a2.zip
rustfmt: reflow fat.rs/fs.rs formatting
Diffstat (limited to 'rsnix/src')
-rw-r--r--rsnix/src/fat.rs23
-rw-r--r--rsnix/src/fs.rs7
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
36struct Volume { 36struct 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").
58pub fn uid(vol: usize) -> &'static str { 58pub 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
62pub fn root_cluster(vol: usize) -> u32 { 64pub 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
507pub fn write_file(vol: usize, parent_dir_cluster: u32, name: &str, buf: &[u8], pos: u64) -> Result<usize, ()> { 511pub 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);