Skip to content

Commit

Permalink
fix(lab/4): typos & docs
Browse files Browse the repository at this point in the history
  • Loading branch information
GZTimeWalker committed Mar 18, 2024
1 parent 00bf572 commit 2d743b4
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 4 deletions.
8 changes: 4 additions & 4 deletions docs/labs/0x04/tasks.md
Original file line number Diff line number Diff line change
Expand Up @@ -614,13 +614,13 @@ pub fn write(fd: u8, buf: &[u8]) -> isize {
}
```

对于 `write` 系统调用,用户程序需要将数据写入到资源中,对此系统调用进行如下约定
对于 `write` 系统调用,用户程序需要将数据写入到资源中,`syscall::dispatcher` 中对此系统调用的相关参数进行如下约定

```
fd: arg0 as u8, buf: &[u8] (ptr: arg1 as *const u8, len: arg2)
```

为了便于理解,给出了用户侧进行调用时的示例代码,从 `print!` 的实现开始:
为了便于理解,给出了用户侧进行调用时的相关调用过程,从 `print!` 的实现开始:

```rust
#[macro_export]
Expand All @@ -644,7 +644,7 @@ impl Stdout {
}
```

传递给 `sys_write`,由此函数对传入的参数进行处理,并调用系统调用:
从而传递给 `sys_write`,由此函数对传入的参数进行处理,并调用系统调用:

```rust
pub fn sys_write(fd: u8, buf: &[u8]) -> Option<usize> {
Expand Down Expand Up @@ -763,7 +763,7 @@ pub fn exit(ret: isize, context: &mut ProcessContext) {

尝试修改用户态库中的 `entry!` 和 `panic` 函数,在用户程序中调用 `exit` 系统调用,并传递一个返回值,以验证用户程序的退出功能。

值此为止,你应当可以生成用户程序、输出 `Hello, world!!!`,并正确退出。
至此为止,你应当可以生成用户程序、输出 `Hello, world!!!`,并正确退出。

### 进程的创建与等待

Expand Down
3 changes: 3 additions & 0 deletions src/0x04/pkg/kernel/src/interrupt/syscall/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,9 @@ pub fn dispatcher(context: &mut ProcessContext) {
context.regs.rdx,
);

// NOTE: you may want to trace syscall arguments
// trace!("{}", args);

match args.syscall {
// fd: arg0 as u8, buf: &[u8] (ptr: arg1 as *const u8, len: arg2)
Syscall::Read => { /* FIXME: read from fd & return length */},
Expand Down

0 comments on commit 2d743b4

Please sign in to comment.