+++ /dev/null
-/* This is taken straight from Appendix C of the specification */
-
-typedef long Device_Link;
-
-enum Device_AddrFamily {
- DEVICE_TCP,
- DEVICE_UDP
-};
-
-typedef long Device_Flags;
-
-typedef long Device_ErrorCode;
-
-struct Device_Error {
- Device_ErrorCode error;
-};
-
-struct Create_LinkParms {
- long clientId; /* implementation specific value */
- bool lockDevice; /* attempt to lock the device */
- unsigned long lock_timeout; /* time to wait on a lock */
- string device<>; /* name of device */
-};
-
-struct Create_LinkResp {
- Device_ErrorCode error;
- Device_Link lid;
- unsigned short abortPort; /* for the abort RPC */
- unsigned long maxRecvSize; /* specifies max data size in bytes
- device will accept on a write */
-};
-
-struct Device_WriteParms {
- Device_Link lid; /* link id from create_link */
- unsigned long io_timeout; /* time to wait for I/O */
- unsigned long lock_timeout; /* time to wait for lock */
- Device_Flags flags;
- opaque data<>; /* data length and the data itself */
-};
-
-struct Device_WriteResp {
- Device_ErrorCode error;
- unsigned long size; /* number of bytes written */
-};
-
-struct Device_ReadParms {
- Device_Link lid; /* link id from create_link */
- unsigned long requestSize; /* bytes requested */
- unsigned long io_timeout; /* time to wait for I/O */
- unsigned long lock_timeout; /* time to wait for lock */
- Device_Flags flags;
- char termChar; /* valid if flags & termchrset */
-};
-
-struct Device_ReadResp {
- Device_ErrorCode error;
- long reason; /* reason(s) read completed */
- opaque data<>; /* data.len and data.val */
-};
-
-struct Device_ReadStbResp {
- Device_ErrorCode error; /* error code */
- unsigned char stb; /* the returned status byte */
-};
-
-struct Device_GenericParms {
- Device_Link lid; /* Device_Link id from connect call */
- Device_Flags flags; /* flags with options */
- unsigned long lock_timeout; /* time to wait for lock */
- unsigned long io_timeout; /* time to wait for I/O */
-};
-
-struct Device_RemoteFunc {
- unsigned long hostAddr; /* host servicing interrupt */
- unsigned short hostPort; /* valid port # on client */
- unsigned long progNum; /* DEVICE_INTR */
- unsigned long progVers; /* DEVICE_INTR_VERSION */
- Device_AddrFamily progFamily; /* DEVICE_UDP | DEVICE_TCP */
-};
-
-struct Device_EnableSrqParms {
- Device_Link lid;
- bool enable; /* enable or disable interrupts */
- opaque handle<40>; /* host specific data */
-};
-
-struct Device_LockParms {
- Device_Link lid; /* link id from create_link */
- Device_Flags flags; /* contains the waitlock flag */
- unsigned long lock_timeout; /* time to wait to acquire lock */
-};
-
-struct Device_DocmdParms {
- Device_Link lid; /* link id from create_link */
- Device_Flags flags; /* flags specifying various options */
- unsigned long io_timeout; /* time to wait for I/O to complete */
- unsigned long lock_timeout; /* time to wait on a lock */
- long cmd; /* which command to execute */
- bool network_order; /* client's byte order */
- long datasize; /* size of individual data elements */
- opaque data_in<>; /* docmd data parameters */
-};
-
-struct Device_DocmdResp {
- Device_ErrorCode error; /* returned status */
- opaque data_out<>; /* returned data parameter */
-};
-
-struct Device_SrqParms {
- opaque handle<>;
-};
-
-program DEVICE_ASYNC{
- version DEVICE_ASYNC_VERSION {
- Device_Error device_abort(Device_Link) = 1;
- } = 1;
-} = 0x0607B0;
-
-program DEVICE_CORE {
- version DEVICE_CORE_VERSION {
- Create_LinkResp create_link(Create_LinkParms) = 10;
- Device_WriteResp device_write(Device_WriteParms) = 11;
- Device_ReadResp device_read(Device_ReadParms) = 12;
- Device_ReadStbResp device_readstb(Device_GenericParms) = 13;
- Device_Error device_trigger(Device_GenericParms) = 14;
- Device_Error device_clear(Device_GenericParms) = 15;
- Device_Error device_remote(Device_GenericParms) = 16;
- Device_Error device_local(Device_GenericParms) = 17;
- Device_Error device_lock(Device_LockParms) = 18;
- Device_Error device_unlock(Device_Link) = 19;
- Device_Error device_enable_srq(Device_EnableSrqParms)= 20;
- Device_DocmdResp device_docmd(Device_DocmdParms) = 22;
- Device_Error destroy_link(Device_Link) = 23;
- Device_Error create_intr_chan(Device_RemoteFunc) = 25;
- Device_Error destroy_intr_chan(void) = 26;
- } = 1;
-} = 0x0607AF;
-
-program DEVICE_INTR {
- version DEVICE_INTR_VERSION {
- void device_intr_srq(Device_SrqParms) = 30;
- } = 1;
-} = 0x0607B1;