diff options
Diffstat (limited to 'bins/mkdir/src')
| -rw-r--r-- | bins/mkdir/src/main.rs | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/bins/mkdir/src/main.rs b/bins/mkdir/src/main.rs index f6f7e66..82302df 100644 --- a/bins/mkdir/src/main.rs +++ b/bins/mkdir/src/main.rs | |||
| @@ -10,7 +10,8 @@ fn panic(_info: &core::panic::PanicInfo) -> ! { | |||
| 10 | 10 | ||
| 11 | #[unsafe(no_mangle)] | 11 | #[unsafe(no_mangle)] |
| 12 | pub extern "C" fn efi_main(exports: &'static rsapi::Exports, argc: usize, argv: *const rsapi::Arg) -> i32 { | 12 | pub extern "C" fn efi_main(exports: &'static rsapi::Exports, argc: usize, argv: *const rsapi::Arg) -> i32 { |
| 13 | let args = unsafe { core::slice::from_raw_parts(argv, argc) }; | 13 | // C-style argv: argv[0] is the program name, user args start at 1. |
| 14 | let args = unsafe { core::slice::from_raw_parts(argv.add(1), argc.saturating_sub(1)) }; | ||
| 14 | if args.is_empty() { return 1; } | 15 | if args.is_empty() { return 1; } |
| 15 | let path = unsafe { core::str::from_utf8_unchecked(core::slice::from_raw_parts(args[0].ptr, args[0].len)) }; | 16 | let path = unsafe { core::str::from_utf8_unchecked(core::slice::from_raw_parts(args[0].ptr, args[0].len)) }; |
| 16 | let rc = (exports.fs_create)(rsapi::Line { ptr: path.as_ptr(), len: path.len() }, true); | 17 | let rc = (exports.fs_create)(rsapi::Line { ptr: path.as_ptr(), len: path.len() }, true); |
