diff --git a/devnode/Makefile b/devnode/Makefile index d9a9c23..9529fa7 100644 --- a/devnode/Makefile +++ b/devnode/Makefile @@ -24,6 +24,7 @@ HURDLIBS = ports trivfs fshelp shouldbeinlibc target = devnode MIGSTUBS = deviceServer.o notifyServer.o MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" OBJS = $(SRCS:.c=.o) $(MIGSTUBS) include ../Makeconf diff --git a/devnode/devnode.c b/devnode/devnode.c index 789bf51..f9f0359 100644 --- a/devnode/devnode.c +++ b/devnode/devnode.c @@ -138,27 +138,6 @@ do_mach_notify_dead_name (struct port_info *pi, } /* Implementation of device interface */ -kern_return_t -ds_xxx_device_set_status (device_t device, dev_flavor_t flavor, - dev_status_t status, size_t statu_cnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_get_status (device_t device, dev_flavor_t flavor, - dev_status_t status, size_t *statuscnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_set_filter (device_t device, mach_port_t rec, - int pri, filter_array_t filt, size_t len) -{ - return D_INVALID_OPERATION; -} - kern_return_t ds_device_open (mach_port_t master_port, mach_port_t reply_port, mach_msg_type_name_t reply_portPoly, diff --git a/devnode/mig-mutate.h b/devnode/mig-mutate.h index f692236..0656014 100644 --- a/devnode/mig-mutate.h +++ b/devnode/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ diff --git a/eth-filter/filter.c b/eth-filter/filter.c index 482b080..13dd03b 100644 --- a/eth-filter/filter.c +++ b/eth-filter/filter.c @@ -294,27 +294,6 @@ do_mach_notify_dead_name (struct port_info *pi, } /* Implementation of device interface */ -kern_return_t -ds_xxx_device_set_status (struct proxy_user *device, dev_flavor_t flavor, - dev_status_t status, size_t statu_cnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_get_status (struct proxy_user *device, dev_flavor_t flavor, - dev_status_t status, size_t *statuscnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_set_filter (struct proxy_user *device, mach_port_t rec, - int pri, filter_array_t filt, size_t len) -{ - return D_INVALID_OPERATION; -} - kern_return_t ds_device_open (mach_port_t master_port, mach_port_t reply_port, mach_msg_type_name_t reply_portPoly, diff --git a/eth-filter/mig-decls.h b/eth-filter/mig-decls.h index 0bb29a6..a3f700c 100644 --- a/eth-filter/mig-decls.h +++ b/eth-filter/mig-decls.h @@ -35,6 +35,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (port_bucket, port, user_portclass); } +static inline struct proxy_user * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (port_bucket, payload, user_portclass); +} + static inline void __attribute__ ((unused)) end_using_device (struct proxy_user *p) { diff --git a/eth-filter/mig-mutate.h b/eth-filter/mig-mutate.h index 388ce09..5c6cde9 100644 --- a/eth-filter/mig-mutate.h +++ b/eth-filter/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ proxy_user_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + proxy_user_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (proxy_user_t) #define DEVICE_IMPORTS \ diff --git a/eth-multiplexer/Makefile b/eth-multiplexer/Makefile index fbee1ca..bfd065a 100644 --- a/eth-multiplexer/Makefile +++ b/eth-multiplexer/Makefile @@ -23,6 +23,7 @@ target = eth-multiplexer SRCS = ethernet.c vdev.c multiplexer.c dev_stat.c netfs_impl.c notify_impl.c device_impl.c demuxer.c MIGSTUBS = deviceServer.o notifyServer.o MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" OBJS = $(SRCS:.c=.o) $(MIGSTUBS) LCLHDRS = ethernet.h util.h vdev.h netfs_impl.h HURDLIBS=ports fshelp shouldbeinlibc netfs bpf diff --git a/eth-multiplexer/device.h b/eth-multiplexer/device.h deleted file mode 100644 index db0798d..0000000 --- a/eth-multiplexer/device.h +++ /dev/null @@ -1,336 +0,0 @@ -#ifndef _device_user_ -#define _device_user_ - -/* Module device */ - -#include -#include -#include - -#include -#include -#include -#include - -/* Routine device_open */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_open -#if defined(LINTLIBRARY) - (master_port, mode, name, device) - mach_port_t master_port; - dev_mode_t mode; - dev_name_t name; - mach_port_t *device; -{ return device_open(master_port, mode, name, device); } -#else -( - mach_port_t master_port, - dev_mode_t mode, - dev_name_t name, - mach_port_t *device -); -#endif - -/* Routine device_close */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_close -#if defined(LINTLIBRARY) - (device) - mach_port_t device; -{ return device_close(device); } -#else -( - mach_port_t device -); -#endif - -/* Routine device_write */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_write -#if defined(LINTLIBRARY) - (device, mode, recnum, data, dataCnt, bytes_written) - mach_port_t device; - dev_mode_t mode; - recnum_t recnum; - io_buf_ptr_t data; - mach_msg_type_number_t dataCnt; - int *bytes_written; -{ return device_write(device, mode, recnum, data, dataCnt, bytes_written); } -#else -( - mach_port_t device, - dev_mode_t mode, - recnum_t recnum, - io_buf_ptr_t data, - mach_msg_type_number_t dataCnt, - int *bytes_written -); -#endif - -/* Routine device_write_inband */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_write_inband -#if defined(LINTLIBRARY) - (device, mode, recnum, data, dataCnt, bytes_written) - mach_port_t device; - dev_mode_t mode; - recnum_t recnum; - io_buf_ptr_inband_t data; - mach_msg_type_number_t dataCnt; - int *bytes_written; -{ return device_write_inband(device, mode, recnum, data, dataCnt, bytes_written); } -#else -( - mach_port_t device, - dev_mode_t mode, - recnum_t recnum, - io_buf_ptr_inband_t data, - mach_msg_type_number_t dataCnt, - int *bytes_written -); -#endif - -/* Routine device_read */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_read -#if defined(LINTLIBRARY) - (device, mode, recnum, bytes_wanted, data, dataCnt) - mach_port_t device; - dev_mode_t mode; - recnum_t recnum; - int bytes_wanted; - io_buf_ptr_t *data; - mach_msg_type_number_t *dataCnt; -{ return device_read(device, mode, recnum, bytes_wanted, data, dataCnt); } -#else -( - mach_port_t device, - dev_mode_t mode, - recnum_t recnum, - int bytes_wanted, - io_buf_ptr_t *data, - mach_msg_type_number_t *dataCnt -); -#endif - -/* Routine device_read_inband */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_read_inband -#if defined(LINTLIBRARY) - (device, mode, recnum, bytes_wanted, data, dataCnt) - mach_port_t device; - dev_mode_t mode; - recnum_t recnum; - int bytes_wanted; - io_buf_ptr_inband_t data; - mach_msg_type_number_t *dataCnt; -{ return device_read_inband(device, mode, recnum, bytes_wanted, data, dataCnt); } -#else -( - mach_port_t device, - dev_mode_t mode, - recnum_t recnum, - int bytes_wanted, - io_buf_ptr_inband_t data, - mach_msg_type_number_t *dataCnt -); -#endif - -/* Routine xxx_device_set_status */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t xxx_device_set_status -#if defined(LINTLIBRARY) - (device, flavor, status, statusCnt) - mach_port_t device; - dev_flavor_t flavor; - dev_status_t status; - mach_msg_type_number_t statusCnt; -{ return xxx_device_set_status(device, flavor, status, statusCnt); } -#else -( - mach_port_t device, - dev_flavor_t flavor, - dev_status_t status, - mach_msg_type_number_t statusCnt -); -#endif - -/* Routine xxx_device_get_status */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t xxx_device_get_status -#if defined(LINTLIBRARY) - (device, flavor, status, statusCnt) - mach_port_t device; - dev_flavor_t flavor; - dev_status_t status; - mach_msg_type_number_t *statusCnt; -{ return xxx_device_get_status(device, flavor, status, statusCnt); } -#else -( - mach_port_t device, - dev_flavor_t flavor, - dev_status_t status, - mach_msg_type_number_t *statusCnt -); -#endif - -/* Routine xxx_device_set_filter */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t xxx_device_set_filter -#if defined(LINTLIBRARY) - (device, receive_port, receive_portPoly, priority, filter, filterCnt) - mach_port_t device; - mach_port_t receive_port; - mach_msg_type_name_t receive_portPoly; - int priority; - filter_array_t filter; - mach_msg_type_number_t filterCnt; -{ return xxx_device_set_filter(device, receive_port, receive_portPoly, priority, filter, filterCnt); } -#else -( - mach_port_t device, - mach_port_t receive_port, - mach_msg_type_name_t receive_portPoly, - int priority, - filter_array_t filter, - mach_msg_type_number_t filterCnt -); -#endif - -/* Routine device_map */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_map -#if defined(LINTLIBRARY) - (device, prot, offset, size, pager, unmap) - mach_port_t device; - vm_prot_t prot; - vm_offset_t offset; - vm_size_t size; - mach_port_t *pager; - int unmap; -{ return device_map(device, prot, offset, size, pager, unmap); } -#else -( - mach_port_t device, - vm_prot_t prot, - vm_offset_t offset, - vm_size_t size, - mach_port_t *pager, - int unmap -); -#endif - -/* Routine device_set_status */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_set_status -#if defined(LINTLIBRARY) - (device, flavor, status, statusCnt) - mach_port_t device; - dev_flavor_t flavor; - dev_status_t status; - mach_msg_type_number_t statusCnt; -{ return device_set_status(device, flavor, status, statusCnt); } -#else -( - mach_port_t device, - dev_flavor_t flavor, - dev_status_t status, - mach_msg_type_number_t statusCnt -); -#endif - -/* Routine device_get_status */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_get_status -#if defined(LINTLIBRARY) - (device, flavor, status, statusCnt) - mach_port_t device; - dev_flavor_t flavor; - dev_status_t status; - mach_msg_type_number_t *statusCnt; -{ return device_get_status(device, flavor, status, statusCnt); } -#else -( - mach_port_t device, - dev_flavor_t flavor, - dev_status_t status, - mach_msg_type_number_t *statusCnt -); -#endif - -/* Routine device_set_filter */ -#ifdef mig_external -mig_external -#else -extern -#endif -kern_return_t device_set_filter -#if defined(LINTLIBRARY) - (device, receive_port, receive_portPoly, priority, filter, filterCnt) - mach_port_t device; - mach_port_t receive_port; - mach_msg_type_name_t receive_portPoly; - int priority; - filter_array_t filter; - mach_msg_type_number_t filterCnt; -{ return device_set_filter(device, receive_port, receive_portPoly, priority, filter, filterCnt); } -#else -( - mach_port_t device, - mach_port_t receive_port, - mach_msg_type_name_t receive_portPoly, - int priority, - filter_array_t filter, - mach_msg_type_number_t filterCnt -); -#endif - -#endif /* not defined(_device_user_) */ diff --git a/eth-multiplexer/device_impl.c b/eth-multiplexer/device_impl.c index 35a4da4..7d82b8d 100644 --- a/eth-multiplexer/device_impl.c +++ b/eth-multiplexer/device_impl.c @@ -39,32 +39,6 @@ extern struct port_class *other_portclass; extern struct port_info *notify_pi; /* Implementation of device interface */ -kern_return_t -ds_xxx_device_set_status (struct vether_device *vdev, dev_flavor_t flavor, - dev_status_t status, size_t statu_cnt) -{ - if (vdev == NULL) - return D_NO_SUCH_DEVICE; - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_get_status (struct vether_device *vdev, dev_flavor_t flavor, - dev_status_t status, size_t *statuscnt) -{ - if (vdev == NULL) - return D_NO_SUCH_DEVICE; - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_set_filter (struct vether_device *vdev, mach_port_t rec, - int pri, filter_array_t filt, size_t len) -{ - if (vdev == NULL) - return D_NO_SUCH_DEVICE; - return D_INVALID_OPERATION; -} /* * This function is currently running in the multithread environment, diff --git a/eth-multiplexer/mig-decls.h b/eth-multiplexer/mig-decls.h index a68e2ec..6ad9ebf 100644 --- a/eth-multiplexer/mig-decls.h +++ b/eth-multiplexer/mig-decls.h @@ -35,6 +35,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (port_bucket, port, vdev_portclass); } +static inline struct vether_device * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (port_bucket, payload, vdev_portclass); +} + static inline void __attribute__ ((unused)) end_using_device (struct vether_device *p) { diff --git a/eth-multiplexer/mig-mutate.h b/eth-multiplexer/mig-mutate.h index 2403c29..55eca31 100644 --- a/eth-multiplexer/mig-mutate.h +++ b/eth-multiplexer/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ vether_device_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + vether_device_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (vether_device_t) #define DEVICE_IMPORTS \ diff --git a/libmachdev/Makefile b/libmachdev/Makefile index a47bf32..734824e 100644 --- a/libmachdev/Makefile +++ b/libmachdev/Makefile @@ -29,6 +29,7 @@ HURDLIBS = ports trivfs ddekit bpf OTHERLIBS = -lpthread OBJS = $(SRCS:.c=.o) $(MIGSTUBS) MIGSFLAGS = -imacros $(srcdir)/mig-mutate.h +device-MIGSFLAGS="-DMACH_PAYLOAD_TO_PORT=ports_payload_get_name" include ../Makeconf diff --git a/libmachdev/ds_routines.c b/libmachdev/ds_routines.c index 6bd5a12..5287bf4 100644 --- a/libmachdev/ds_routines.c +++ b/libmachdev/ds_routines.c @@ -98,41 +98,6 @@ mach_convert_device_to_port (mach_device_t device) } /* Implementation of device interface */ -kern_return_t -ds_xxx_device_set_status (struct mach_device *device, dev_flavor_t flavor, - dev_status_t status, size_t statu_cnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_get_status (struct mach_device *device, dev_flavor_t flavor, - dev_status_t status, size_t *statuscnt) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_xxx_device_set_filter (struct mach_device *device, mach_port_t rec, - int pri, filter_array_t filt, size_t len) -{ - return D_INVALID_OPERATION; -} - -io_return_t -ds_device_intr_register (mach_port_t master_port, int irq, - int flags, int id, mach_port_t receive_port) -{ - return D_INVALID_OPERATION; -} - -kern_return_t -ds_device_intr_enable (mach_port_t master_port, - int line, char status) -{ - return D_INVALID_OPERATION; -} - io_return_t ds_device_open (mach_port_t open_port, mach_port_t reply_port, mach_msg_type_name_t reply_port_type, dev_mode_t mode, diff --git a/libmachdev/mig-decls.h b/libmachdev/mig-decls.h index b3dc43d..8302029 100644 --- a/libmachdev/mig-decls.h +++ b/libmachdev/mig-decls.h @@ -34,6 +34,12 @@ begin_using_device_port (mach_port_t port) return ports_lookup_port (device_bucket, port, dev_class); } +static inline struct mach_device * __attribute__ ((unused)) +begin_using_device_payload (unsigned long payload) +{ + return ports_lookup_payload (device_bucket, payload, dev_class); +} + static inline void __attribute__ ((unused)) end_using_device (struct mach_device *p) { diff --git a/libmachdev/mig-mutate.h b/libmachdev/mig-mutate.h index 56c6965..902ff16 100644 --- a/libmachdev/mig-mutate.h +++ b/libmachdev/mig-mutate.h @@ -19,6 +19,8 @@ #define NOTIFY_INTRAN \ port_info_t begin_using_port_info_port (mach_port_t) +#define NOTIFY_INTRAN_PAYLOAD \ + port_info_t begin_using_port_info_payload #define NOTIFY_DESTRUCTOR \ end_using_port_info (port_info_t) #define NOTIFY_IMPORTS \ @@ -26,6 +28,8 @@ #define DEVICE_INTRAN \ mach_device_t begin_using_device_port (mach_port_t) +#define DEVICE_INTRAN_PAYLOAD \ + mach_device_t begin_using_device_payload #define DEVICE_DESTRUCTOR \ end_using_device (mach_device_t) #define DEVICE_IMPORTS \