lib: xpc: implement scatter/gather i/o for buffers and messages

This commit is contained in:
2026-03-24 12:40:16 +00:00
parent af3dd454b0
commit 1eb6853cb0
5 changed files with 162 additions and 18 deletions

View File

@@ -89,17 +89,17 @@ kern_status_t xpc_msg_read(
const xpc_msg_t *msg,
size_t offset,
void *p,
size_t count)
size_t count,
size_t *nr_read)
{
kern_iovec_t iov = IOVEC(p, count);
size_t r = 0;
return msg_read(
msg->msg_sender.e_channel,
msg->msg_sender.e_msg,
offset,
&iov,
1,
&r);
nr_read);
}
kern_status_t xpc_msg_write(
@@ -119,6 +119,38 @@ kern_status_t xpc_msg_write(
nr_written);
}
kern_status_t xpc_msg_readv(
const xpc_msg_t *msg,
size_t offset,
kern_iovec_t *iov,
size_t nr_iov,
size_t *nr_read)
{
return msg_read(
msg->msg_sender.e_channel,
msg->msg_sender.e_msg,
offset,
iov,
nr_iov,
nr_read);
}
kern_status_t xpc_msg_writev(
const xpc_msg_t *msg,
size_t offset,
kern_iovec_t *iov,
size_t nr_iov,
size_t *nr_written)
{
return msg_write(
msg->msg_sender.e_channel,
msg->msg_sender.e_msg,
offset,
iov,
nr_iov,
nr_written);
}
kern_status_t xpc_msg_reply(
const xpc_msg_t *msg,
kern_iovec_t *iov,