Hi, > It's actually very simple to define an RPC, it essentially looks > like a C function declaration, see ./include/device/device.defs > for the device_set_status RPC declaration for instance.
Ahum ... i will have to design such a prototype. > routine device_set_status( > device : device_t; > in flavor : dev_flavor_t; > in status : dev_status_t > ); This gives me new questions. Language: Why no "in" or "out" before parameter "device" ? How to say "in and out" ? Can you give me an URL where the language is documented ? Wiring: I still need to find out how to get the Scsi_Device parameter of gnumach/linux/src/drivers/scsi/scsi_ioctl.c: int scsi_ioctl_send_command(Scsi_Device *dev, void *buffer) from device_t Naming conventions: How to name the function ? device_transact_scsi() ? > What is > a bit more involved will be to add the method to the > device_emulation_ops structure, and the ds_device_foo routine in > device/ds_routines.c just like the ds_device_set_status() one. I found the struct definition in gnumach/device/device_emul.h . There i read /* Each emulation layer provides these operations. */ Does that mean, that all instances of struct device_emulation_ops have to be augmented by a function pointer ? I see 7 of them by grep -r 'struct device_emulation_ops .* =' gnumach | less (ignoring gnumach/device/ds_routines.c:emulation_list) Have a nice day :) Thomas