From 070292f3118b75de9fc0e79fac6ca0186d157c28 Mon Sep 17 00:00:00 2001 From: Sergey Bugaev Date: Tue, 9 May 2023 00:31:04 +0300 Subject: libstore: Port to x86_64 Message-Id: <20230508213136.608575-10-bugaevc@gmail.com> --- libstore/device.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-) (limited to 'libstore/device.c') diff --git a/libstore/device.c b/libstore/device.c index 098506a0..c7b9d756 100644 --- a/libstore/device.c +++ b/libstore/device.c @@ -48,24 +48,30 @@ dev_error (error_t err) } static error_t -dev_read (struct store *store, - store_offset_t addr, size_t index, mach_msg_type_number_t amount, - void **buf, mach_msg_type_number_t *len) +dev_read (struct store *store, store_offset_t addr, + size_t index, size_t amount, + void **buf, size_t *len) { + error_t err; recnum_t recnum = addr; + mach_msg_type_number_t nread; if (recnum != addr) return EOVERFLOW; - return dev_error (device_read (store->port, 0, recnum, amount, - (io_buf_ptr_t *)buf, len)); + err = device_read (store->port, 0, recnum, amount, + (io_buf_ptr_t *) buf, &nread); + if (err) + return dev_error (err); + + *len = nread; + return 0; } static error_t -dev_write (struct store *store, - store_offset_t addr, size_t index, - const void *buf, mach_msg_type_number_t len, - mach_msg_type_number_t *amount) +dev_write (struct store *store, store_offset_t addr, + size_t index, const void *buf, + size_t len, size_t *amount) { recnum_t recnum = addr; error_t err; @@ -195,7 +201,7 @@ enforced (struct store *store) { error_t err; dev_status_data_t sizes; - size_t sizes_len = DEV_STATUS_MAX; + mach_msg_type_number_t sizes_len = DEV_STATUS_MAX; if (store->num_runs != 1 || store->runs[0].start != 0) /* Can't enforce non-contiguous ranges, or one not starting at 0. */ @@ -324,7 +330,7 @@ store_device_create (device_t device, int flags, struct store **store) struct store_run run; size_t block_size = 0; dev_status_data_t sizes; - size_t sizes_len = DEV_STATUS_MAX; + mach_msg_type_number_t sizes_len = DEV_STATUS_MAX; error_t err; #ifdef DEV_GET_RECORDS -- cgit v1.2.3