Modify structure device_emulation_ops so that correct argument types are listed. This patch produces warnings in the linux code.
There is a previous version of this patch here: http://lists.gnu.org/archive/html/bug-hurd/2013-11/msg00482.html * device/device_emul.h (device_emulation_ops): Modify. * device/ds_routines.c (mach_device_emulation_ops) (mach_device_reference, mach_device_deallocate, mach_convert_device_to_port, device_write_trap, device_writev_trap): Remove unnecessary casts. --- device/device_emul.h | 28 ++++++++++++++-------------- device/ds_routines.c | 10 +++++----- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/device/device_emul.h b/device/device_emul.h index 957bd50..e0f5281 100644 --- a/device/device_emul.h +++ b/device/device_emul.h @@ -32,32 +32,32 @@ /* Each emulation layer provides these operations. */ struct device_emulation_ops { - void (*reference) (void *); - void (*dealloc) (void *); - ipc_port_t (*dev_to_port) (void *); + void (*reference) (mach_device_t); + void (*dealloc) (mach_device_t); + ipc_port_t (*dev_to_port) (mach_device_t); io_return_t (*open) (ipc_port_t, mach_msg_type_name_t, dev_mode_t, char *, device_t *); - io_return_t (*close) (void *); - io_return_t (*write) (void *, ipc_port_t, mach_msg_type_name_t, + io_return_t (*close) (mach_device_t); + io_return_t (*write) (mach_device_t, ipc_port_t, mach_msg_type_name_t, dev_mode_t, recnum_t, io_buf_ptr_t, unsigned, int *); - io_return_t (*write_inband) (void *, ipc_port_t, mach_msg_type_name_t, + io_return_t (*write_inband) (mach_device_t, ipc_port_t, mach_msg_type_name_t, dev_mode_t, recnum_t, io_buf_ptr_inband_t, unsigned, int *); - io_return_t (*read) (void *, ipc_port_t, mach_msg_type_name_t, + io_return_t (*read) (mach_device_t, ipc_port_t, mach_msg_type_name_t, dev_mode_t, recnum_t, int, io_buf_ptr_t *, unsigned *); - io_return_t (*read_inband) (void *, ipc_port_t, mach_msg_type_name_t, + io_return_t (*read_inband) (mach_device_t, ipc_port_t, mach_msg_type_name_t, dev_mode_t, recnum_t, int, char *, unsigned *); - io_return_t (*set_status) (void *, dev_flavor_t, dev_status_t, + io_return_t (*set_status) (mach_device_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t); - io_return_t (*get_status) (void *, dev_flavor_t, dev_status_t, + io_return_t (*get_status) (mach_device_t, dev_flavor_t, dev_status_t, mach_msg_type_number_t *); - io_return_t (*set_filter) (void *, ipc_port_t, int, filter_t [], unsigned); - io_return_t (*map) (void *, vm_prot_t, vm_offset_t, + io_return_t (*set_filter) (mach_device_t, ipc_port_t, int, filter_t [], unsigned); + io_return_t (*map) (mach_device_t, vm_prot_t, vm_offset_t, vm_size_t, ipc_port_t *, boolean_t); void (*no_senders) (mach_no_senders_notification_t *); - io_return_t (*write_trap) (void *, dev_mode_t, + io_return_t (*write_trap) (mach_device_t, dev_mode_t, recnum_t, vm_offset_t, vm_size_t); - io_return_t (*writev_trap) (void *, dev_mode_t, + io_return_t (*writev_trap) (mach_device_t, dev_mode_t, recnum_t, io_buf_vec_t *, vm_size_t); }; diff --git a/device/ds_routines.c b/device/ds_routines.c index a68dc7a..6915260 100644 --- a/device/ds_routines.c +++ b/device/ds_routines.c @@ -1808,9 +1808,9 @@ device_writev_trap (mach_device_t device, dev_mode_t mode, struct device_emulation_ops mach_device_emulation_ops = { - (void*) mach_device_reference, - (void*) mach_device_deallocate, - (void*) mach_convert_device_to_port, + mach_device_reference, + mach_device_deallocate, + mach_convert_device_to_port, device_open, device_close, device_write, @@ -1822,6 +1822,6 @@ struct device_emulation_ops mach_device_emulation_ops = device_set_filter, device_map, ds_no_senders, - (void*) device_write_trap, - (void*) device_writev_trap + device_write_trap, + device_writev_trap }; -- 1.8.1.4