diff options
author | dzwdz | 2024-08-17 01:57:04 +0200 |
---|---|---|
committer | dzwdz | 2024-08-17 01:57:04 +0200 |
commit | 468ef8f1d57527af3fe8b67bbc73813e951a0ec5 (patch) | |
tree | 0e10641f6bc7548bdb0dbd77cd5c4737977a197b /src/kernel/arch/amd64/driver/video.c | |
parent | 806eecd7a2fe12daccf2c7c7171ce52e3fd93799 (diff) |
kernel: split the kernel/user inputs in VfsReq
I think I've done this refactor in the opposite direction a few years ago.
This is mostly meant to prepare me for setxattr, which requires two inputs -
coincidentally, one is already going to be a kernel input, and the other will
be an user input, so it works out.
I also just didn't like the previous way it worked, this feels cleaner.
Diffstat (limited to 'src/kernel/arch/amd64/driver/video.c')
-rw-r--r-- | src/kernel/arch/amd64/driver/video.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/src/kernel/arch/amd64/driver/video.c b/src/kernel/arch/amd64/driver/video.c index 5ce9a30..4ce1657 100644 --- a/src/kernel/arch/amd64/driver/video.c +++ b/src/kernel/arch/amd64/driver/video.c @@ -20,10 +20,10 @@ enum { static int handle(VfsReq *req) { switch (req->type) { case VFSOP_OPEN: - if (!req->input.kern) panic_invalid_state(); - if (req->input.len == 0) { + assert(req->kin != NULL); + if (req->kinlen == 0) { return H_ROOT; - } else if (req->input.len == namelen && !memcmp(req->input.buf_kern, namebuf, namelen)) { + } else if (req->kinlen == namelen && !memcmp(req->kin, namebuf, namelen)) { return H_FB; } else { return -1; @@ -40,10 +40,10 @@ static int handle(VfsReq *req) { if ((long __force)req->id != H_FB) { return -1; } - fs_normslice(&req->offset, &req->input.len, fb.size, false); - /* parial writes ignored */ - pcpy_from(req->caller, fb.b + req->offset, req->input.buf, req->input.len); - return req->input.len; + fs_normslice(&req->offset, &req->uinlen, fb.size, false); + /* partial writes ignored */ + pcpy_from(req->caller, fb.b + req->offset, req->uin, req->uinlen); + return req->uinlen; case VFSOP_GETSIZE: return fb.size; |