Skip to content

Commit 38d74c6

Browse files
committed
format and fixed snake version
1 parent b70944b commit 38d74c6

File tree

11 files changed

+105
-109
lines changed

11 files changed

+105
-109
lines changed

filesystem/bin/snake

4.09 KB
Binary file not shown.

filesystem/games/snake

10.5 KB
Binary file not shown.

src/data_storage/path.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ impl Path {
3232
}
3333

3434
pub fn len(&self) -> usize {
35-
if self.0.is_empty(){
35+
if self.0.is_empty() {
3636
0
3737
} else {
3838
self.slice().len()
@@ -42,7 +42,7 @@ impl Path {
4242
pub fn is_empty(&self) -> bool {
4343
self.0.is_empty()
4444
}
45-
45+
4646
/// Slices the `Path` and returns a `Vec<String>`
4747
pub fn slice(&self) -> Vec<String> {
4848
let sliced = self

src/filesystem/descriptor/mod.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ impl ProcessDescriptorTable {
304304
}
305305
}
306306
}
307-
307+
308308
/// # Safety
309309
/// TODO
310310
pub unsafe fn close_fd(&mut self, fd: usize) -> Result<usize, FileDesciptorError> {

src/filesystem/drivers/fifo.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ impl FiFoPartitionInner {
3232
return Ok(data);
3333
}
3434
} else {
35-
if !data.is_empty(){
35+
if !data.is_empty() {
3636
crate::warningln!("FiFo gave end and not alone {}", data.len());
3737
}
3838
return Ok(data);

src/filesystem/drivers/keyboard.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ impl Default for KeyBoard {
2323

2424
impl Partition for KeyBoard {
2525
fn open(&mut self, path: &Path, _flags: OpenFlags) -> Option<usize> {
26-
if !path.is_empty(){
26+
if !path.is_empty() {
2727
None
2828
} else {
2929
Some(0)

src/filesystem/drivers/ustar.rs

+70-73
Original file line numberDiff line numberDiff line change
@@ -1006,7 +1006,7 @@ impl Partition for UsTar {
10061006

10071007
fn read(&mut self, oft: &OpenFileTable, size: usize) -> Result<Vec<u8>, IoError> {
10081008
let mut path_name = String::from("root");
1009-
if !oft.get_path().is_empty(){
1009+
if !oft.get_path().is_empty() {
10101010
path_name.push('/');
10111011
}
10121012
path_name.push_str(&oft.get_path().to());
@@ -1184,85 +1184,82 @@ impl Partition for UsTar {
11841184
self.lba_table_global.write_to_disk(self.port);
11851185
(new_size - true_offset) as isize
11861186
} else if new_size <= 512 * SHORT_MODE_LIMIT {
1187-
debug!("File longer but still short");
1188-
1189-
let new_addresses = unsafe {
1190-
self.get_addresses(
1191-
new_blocks_number - file.header.blocks_number,
1192-
)
1193-
};
1194-
for i in file.header.blocks_number..new_blocks_number {
1195-
file.header.blocks[i as usize] =
1196-
new_addresses[(i - file.header.blocks_number + 1) as usize];
1197-
}
1198-
if true_offset % 512 != 0 {
1199-
let b: [u16; 256] = self
1200-
.read_from_disk::<FileBlock>(
1201-
(file.header.blocks[block_offset as usize].lba * 512
1202-
+ file.header.blocks[block_offset as usize].block)
1203-
as u32,
1204-
)
1205-
.to_u16_array();
1206-
for i in 0..(true_offset % 512) / 2 {
1207-
blocks_to_write[0][i as usize] = b[i as usize];
1208-
}
1209-
if true_offset % 2 == 1 {
1210-
blocks_to_write[0][((true_offset % 512) / 2) as usize] |=
1211-
b[((true_offset % 512) / 2) as usize] & 0xFF00;
1212-
}
1213-
}
1214-
for i in 0..number_blocks_to_write {
1215-
let file_block = FileBlock {
1216-
data: blocks_to_write[i as usize],
1217-
};
1218-
self.write_to_disk(
1219-
file_block,
1220-
(file.header.blocks[i + block_offset as usize].lba * 512
1221-
+ file.header.blocks[i + block_offset as usize].block)
1187+
debug!("File longer but still short");
1188+
1189+
let new_addresses = unsafe {
1190+
self.get_addresses(new_blocks_number - file.header.blocks_number)
1191+
};
1192+
for i in file.header.blocks_number..new_blocks_number {
1193+
file.header.blocks[i as usize] =
1194+
new_addresses[(i - file.header.blocks_number + 1) as usize];
1195+
}
1196+
if true_offset % 512 != 0 {
1197+
let b: [u16; 256] = self
1198+
.read_from_disk::<FileBlock>(
1199+
(file.header.blocks[block_offset as usize].lba * 512
1200+
+ file.header.blocks[block_offset as usize].block)
12221201
as u32,
1223-
);
1202+
)
1203+
.to_u16_array();
1204+
for i in 0..(true_offset % 512) / 2 {
1205+
blocks_to_write[0][i as usize] = b[i as usize];
12241206
}
1225-
file.header.blocks_number = new_blocks_number;
1226-
file.header.length = new_size;
1227-
self.write_to_disk(
1228-
file.header,
1229-
(header_address.lba * 512 + header_address.block) as u32,
1230-
);
1231-
self.lba_table_global.write_to_disk(self.port);
1232-
(new_size - true_offset) as isize
1233-
} else {
1234-
debug!("File longer and becomes Long");
1235-
let old_header_addr_res = self.del_file(oft);
1236-
let old_header_addr = match old_header_addr_res {
1237-
Err(_) => return -1,
1238-
Ok(x) => x,
1239-
};
1240-
let effective_data =
1241-
[&file.data[..true_offset as usize], buffer].concat();
1242-
debug!("New data: {:?}", effective_data);
1243-
let exit_code = self.write(oft, &effective_data);
1244-
if exit_code < 0 {
1245-
return exit_code;
1207+
if true_offset % 2 == 1 {
1208+
blocks_to_write[0][((true_offset % 512) / 2) as usize] |=
1209+
b[((true_offset % 512) / 2) as usize] & 0xFF00;
12461210
}
1247-
let new_header_addr_res = self.find_address(&path_name);
1248-
let new_header_addr = match new_header_addr_res {
1249-
Err(_) => return -1,
1250-
Ok(x) => x,
1211+
}
1212+
for i in 0..number_blocks_to_write {
1213+
let file_block = FileBlock {
1214+
data: blocks_to_write[i as usize],
12511215
};
1252-
let new_header: Header = self.read_from_disk(
1253-
(new_header_addr.lba * 512 + new_header_addr.block) as u32,
1254-
);
12551216
self.write_to_disk(
1256-
new_header,
1257-
(old_header_addr.lba * 512 + old_header_addr.block) as u32,
1258-
);
1259-
self.lba_table_global.mark_available(
1260-
new_header_addr.lba as u32,
1261-
new_header_addr.block as u32,
1217+
file_block,
1218+
(file.header.blocks[i + block_offset as usize].lba * 512
1219+
+ file.header.blocks[i + block_offset as usize].block)
1220+
as u32,
12621221
);
1263-
exit_code
12641222
}
1265-
1223+
file.header.blocks_number = new_blocks_number;
1224+
file.header.length = new_size;
1225+
self.write_to_disk(
1226+
file.header,
1227+
(header_address.lba * 512 + header_address.block) as u32,
1228+
);
1229+
self.lba_table_global.write_to_disk(self.port);
1230+
(new_size - true_offset) as isize
1231+
} else {
1232+
debug!("File longer and becomes Long");
1233+
let old_header_addr_res = self.del_file(oft);
1234+
let old_header_addr = match old_header_addr_res {
1235+
Err(_) => return -1,
1236+
Ok(x) => x,
1237+
};
1238+
let effective_data =
1239+
[&file.data[..true_offset as usize], buffer].concat();
1240+
debug!("New data: {:?}", effective_data);
1241+
let exit_code = self.write(oft, &effective_data);
1242+
if exit_code < 0 {
1243+
return exit_code;
1244+
}
1245+
let new_header_addr_res = self.find_address(&path_name);
1246+
let new_header_addr = match new_header_addr_res {
1247+
Err(_) => return -1,
1248+
Ok(x) => x,
1249+
};
1250+
let new_header: Header = self.read_from_disk(
1251+
(new_header_addr.lba * 512 + new_header_addr.block) as u32,
1252+
);
1253+
self.write_to_disk(
1254+
new_header,
1255+
(old_header_addr.lba * 512 + old_header_addr.block) as u32,
1256+
);
1257+
self.lba_table_global.mark_available(
1258+
new_header_addr.lba as u32,
1259+
new_header_addr.block as u32,
1260+
);
1261+
exit_code
1262+
}
12661263
}
12671264
FileMode::Long => {
12681265
debug!("File was Long");

src/interrupts/syscalls/mod.rs

+24-26
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ unsafe extern "C" fn syscall_0_read(args: &mut RegistersMini, _isf: &mut Interru
110110
let new = process::process_died(interrupts::COUNTER, process::IO_ERROR);
111111
interrupts::COUNTER = 0;
112112
process::leave_context_cr3(new.cr3.as_u64() | new.cr3f.bits(), new.rsp);
113-
},
113+
}
114114
Err(IoError::Sleep) => {
115115
let (next, mut old) = process::gives_switch(interrupts::COUNTER);
116116
interrupts::COUNTER = 0;
@@ -122,7 +122,7 @@ unsafe extern "C" fn syscall_0_read(args: &mut RegistersMini, _isf: &mut Interru
122122
old.rsp = VirtAddr::from_ptr(args).as_u64();
123123

124124
process::leave_context_cr3(next.cr3.as_u64() | next.cr3f.bits(), next.rsp);
125-
},
125+
}
126126
};
127127
let mut address = VirtAddr::new(args.rsi);
128128
for item in res.iter().take(min(size as usize, res.len())) {
@@ -209,8 +209,9 @@ unsafe extern "C" fn syscall_2_open(args: &mut RegistersMini, _isf: &mut Interru
209209
crate::debug!("syscall open mid");
210210
let fd = current_process
211211
.open_files
212-
.create_file_table(path::Path::from(&path),
213-
crate::filesystem::fsflags::OpenFlags::from_bits_unchecked(args.rdx as usize)
212+
.create_file_table(
213+
path::Path::from(&path),
214+
crate::filesystem::fsflags::OpenFlags::from_bits_unchecked(args.rdx as usize),
214215
)
215216
.into_u64();
216217
crate::debug!("syscall open end {}", fd);
@@ -293,27 +294,24 @@ unsafe extern "C" fn syscall_7_exit(args: &mut RegistersMini, _isf: &mut Interru
293294
}
294295

295296
unsafe extern "C" fn syscall_8_wait(args: &mut RegistersMini, _isf: &mut InterruptStackFrame) {
296-
let (next, mut old) = process::gives_switch(interrupts::COUNTER);
297-
interrupts::COUNTER = 0;
297+
let (next, mut old) = process::gives_switch(interrupts::COUNTER);
298+
interrupts::COUNTER = 0;
298299

299-
let (cr3, cr3f) = Cr3::read();
300-
old.cr3 = cr3.start_address();
301-
old.cr3f = cr3f;
300+
let (cr3, cr3f) = Cr3::read();
301+
old.cr3 = cr3.start_address();
302+
old.cr3f = cr3f;
302303

303-
old.rsp = VirtAddr::from_ptr(args).as_u64();
304+
old.rsp = VirtAddr::from_ptr(args).as_u64();
304305

305-
process::leave_context_cr3(next.cr3.as_u64() | next.cr3f.bits(), next.rsp);
306+
process::leave_context_cr3(next.cr3.as_u64() | next.cr3f.bits(), next.rsp);
306307
}
307308

308309
unsafe extern "C" fn syscall_9_shutdown(args: &mut RegistersMini, _isf: &mut InterruptStackFrame) {
309310
debug!("Shutting the computer of with output {}", args.rdi);
310311
hardware::power::shutdown();
311312
}
312313

313-
unsafe extern "C" fn syscall_10_get_puid(
314-
args: &mut RegistersMini,
315-
_isf: &mut InterruptStackFrame,
316-
) {
314+
unsafe extern "C" fn syscall_10_get_puid(args: &mut RegistersMini, _isf: &mut InterruptStackFrame) {
317315
args.rax = process::CURRENT_PROCESS as u64
318316
}
319317

@@ -425,16 +423,16 @@ unsafe extern "C" fn syscall_21_memrequest(
425423
return;
426424
}
427425
let given;
428-
if let Some(ref mut frame_allocator) = crate::memory::FRAME_ALLOCATOR {
429-
given = scheduler::process::allocate_additional_heap_pages(
430-
frame_allocator,
431-
current_process.heap_address + current_heap_size * 0x1000,
432-
additional,
433-
&current_process,
434-
);
435-
} else {
436-
given = 0;
437-
}
426+
if let Some(ref mut frame_allocator) = crate::memory::FRAME_ALLOCATOR {
427+
given = scheduler::process::allocate_additional_heap_pages(
428+
frame_allocator,
429+
current_process.heap_address + current_heap_size * 0x1000,
430+
additional,
431+
&current_process,
432+
);
433+
} else {
434+
given = 0;
435+
}
438436
debug!("Fullfilled memrequest {}", given);
439437
current_process.heap_size += given;
440438
args.rax = given
@@ -448,7 +446,7 @@ unsafe extern "C" fn syscall_22_listen(args: &mut RegistersMini, _isf: &mut Inte
448446

449447
unsafe extern "C" fn syscall_23_kill(args: &mut RegistersMini, _isf: &mut InterruptStackFrame) {
450448
debug!("{} tried to kill {}", process::CURRENT_PROCESS, args.rdi);
451-
args.rax = scheduler::process::kill(args.rdi as usize) as u64 ;
449+
args.rax = scheduler::process::kill(args.rdi as usize) as u64;
452450
}
453451

454452
unsafe extern "C" fn syscall_test(_args: &mut RegistersMini, _isf: &mut InterruptStackFrame) {

src/main.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,8 @@ fn kernel_main(boot_info: &'static BootInfo) -> ! {
163163
10,
164164
&Vec::new(),
165165
true,
166-
).unwrap();
166+
)
167+
.unwrap();
167168
}
168169
}
169170

src/scheduler/process/mod.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ pub unsafe fn disassemble_and_launch(
307307

308308
maximum_address = max(maximum_address, address + size);
309309
if program.get_type().is_err() {
310-
continue
310+
continue;
311311
};
312312
if address == 0 {
313313
continue;
@@ -635,8 +635,8 @@ impl Process {
635635
}
636636

637637
pub fn set_name(&mut self, name: &[u8]) {
638-
self.name[..min(name.len(),SIZE_NAME)]
639-
.clone_from_slice(&name[..min(name.len(), SIZE_NAME)]);
638+
self.name[..min(name.len(), SIZE_NAME)]
639+
.clone_from_slice(&name[..min(name.len(), SIZE_NAME)]);
640640
}
641641

642642
pub fn get_name(&self) -> Vec<u8> {

src/vga/virtual_screen.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ impl VirtualScreen {
188188
b'\x1b' => {
189189
// Escape code
190190
let mut end = i;
191-
for (j,c) in char_vec.iter().enumerate().take(len).skip(i) {
191+
for (j, c) in char_vec.iter().enumerate().take(len).skip(i) {
192192
if char::is_alphabetic(*c) {
193193
end = j;
194194
break;

0 commit comments

Comments
 (0)