summaryrefslogtreecommitdiff
path: root/src/kernel/vfs/request.h
AgeCommit message (Collapse)Author
2024-07-11kernel: start cleaning up VfsRequestdzwdz
* I'm being more strict about the linked list state to hopefully ensure I'm not leaking any references. * vfsreq_create was renamed to vfsreq_dispatchcopy as that name feels more clear. It copies its argument, and dispatches it. * Requests for user backends are now handled more like requests for kernel backends - there's an accept() function that accepts a request.
2024-07-07kernel/vfs: split vfs_backend_refdown into two functionsdzwdz
2023-01-25style: typedef structs, shorter namespacesdzwdz
I've wanted to do this for a while, and since I've just had a relatively large refactor commit (pcpy), this is as good of a time as any. Typedefing structs was mostly inspired by Plan 9's coding style. It makes some lines of code much shorter at basically no expense. Everything related to userland kept old-style struct definitions, so as not to force that style onto other people. I also considered changing SCREAMING_ENUM_FIELDS to NicerLookingCamelcase, but I didn't, just in case that'd be confusing.
2023-01-11kernel: return EPIPE when fs_waiting on a dead filesystemdzwdz
2023-01-06kernel: basic procfsdzwdz
2022-10-02syscall/open: add the full suite of READ/WRITE flagsdzwdz
2022-08-28kernel/vfs: minor vfs_request / vfs_root_register reworkdzwdz
* changed vfs_root_register's name because the _mount didn't add anything * removed the old pointless vfs_backend_tryaccept calls from drivers * because of that, i could remove the vfs_backend globals * replaced the horrible BACKEND_KERN macro * all vfs_backends are now stored on the heap
2022-08-08kernel/backend: remove the kern.ready() methoddzwdz
2022-08-03kernel: reuse a single allocation for all vfs_requests of a processdzwdz
$ iostress 32 512 0 > /vtty # before 512 calls, 0 bytes. avg 121133 $ iostress 32 512 0 > /vtty # after 512 calls, 0 bytes. avg 103540 103540/121133 = ~85% I think the tiny bit of added complexity is worth it here.
2022-07-26shared: move some headers from shared/ to camellia/dzwdz
2022-07-16amd64: back at the shell!dzwdz
2022-07-14kernel/driver/serial: allow writes even with pending readsdzwdz
2022-07-08syscall/fs_respond: get the file id from the buf argumentdzwdz
Previously, file ids could only be positive integers, so their range was 31 bits - not enough to represent the entire memory. Now, pointers can be safely used as file ids.
2022-07-07kernel: add the vfsreq_finish_short shorthand functiondzwdz
2022-07-07kernel/vfs: delegate support in _syscall_fs_respond!dzwdz
this is big in terms of speed, it avoids a lot of unnecessary context switches
2022-06-29kernel/vfs: add the OPEN_CREATE flagdzwdz
2022-05-05kernel: each driver registers its own mountsdzwdz
2022-05-05kernel: syscalls now have to explicitly save the return valuedzwdz
thus they can opt out of doing that so the calls which might return immediately but can return later don't have to both regs_savereturn and return to the caller. and because of that, the return values of a lot of VFS things have just got way saner
2022-05-05kernel: ps2 driver is now a separate backenddzwdz
2022-05-05kernel/vfs: refactor vfs_backend to allow multiple kernel backendsdzwdz
2022-05-05kernel/vfs: rename the vfsreq funcs, merge vfsreq_finish & vfsreq_canceldzwdz
2022-05-04kernel: refcount vfs_backenddzwdz
what a mess
2022-04-16kernel/vfs: store the queue in `vfs_request` itselfdzwdz
2022-04-16kernel/vfs: refactor `vfs_request_accept` into `vfs_backend_accept`dzwdz
handling the backend queue makes more sense here than in the syscall implementation. it's also just overall cleaner
2022-04-15kernel/vfs: don't hang on orphaned vfs callsdzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-12kernel: make all sizes unsigned, sort out the sign messdzwdz
2022-04-09kernel/vfs: prevent the vfs functions from switching processesdzwdz
2022-04-09kernel: `vfs_request_accept` now doesn't switch processesdzwdz
2021-09-20add an offset parameter to read() and write()dzwdz
2021-09-20add some missing includes to `kernel/vfs/request.h`dzwdz
2021-09-16implement output from vfs callsdzwdz
2021-09-12move `enum vs_operation` to shared/flags.hdzwdz
2021-09-12allow vfs_request_finish to returndzwdz
thanks to this, the fs provider can continue executing until the next fs_wait() call. that should speed things up a bit
2021-09-12vfs_request refactor pt2dzwdz
2021-09-12vfs request refactor pt1dzwdz