mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 08:08:12 +00:00
Kernel: Add a writev() syscall for writing multiple buffers in one go.
We then use this immediately in the WindowServer/LibGUI communication in order to send both message + optional "extra data" with a single syscall.
This commit is contained in:
parent
e6443649cb
commit
99aead4857
8 changed files with 111 additions and 54 deletions
|
@ -110,6 +110,7 @@ public:
|
|||
int sys$close(int fd);
|
||||
ssize_t sys$read(int fd, byte*, ssize_t);
|
||||
ssize_t sys$write(int fd, const byte*, ssize_t);
|
||||
ssize_t sys$writev(int fd, const struct iovec* iov, int iov_count);
|
||||
int sys$fstat(int fd, stat*);
|
||||
int sys$lstat(const char*, stat*);
|
||||
int sys$stat(const char*, stat*);
|
||||
|
@ -255,6 +256,7 @@ private:
|
|||
Process(String&& name, uid_t, gid_t, pid_t ppid, RingLevel, RetainPtr<Inode>&& cwd = nullptr, RetainPtr<Inode>&& executable = nullptr, TTY* = nullptr, Process* fork_parent = nullptr);
|
||||
|
||||
int do_exec(String path, Vector<String> arguments, Vector<String> environment);
|
||||
ssize_t do_write(FileDescriptor&, const byte*, int data_size);
|
||||
|
||||
int alloc_fd(int first_candidate_fd = 0);
|
||||
void disown_all_shared_buffers();
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue