$save nolist /* * idrinf.lit * Driver information for common and random access devices. * * Written by Paul Pierce, 11-27-79. * Modified 1-21-80 for WORD level. * Modified 6-4-80 to reflect buffers/unit in radev. * Modified 11-18-80 for release III: * move num$buffs to DUIB * remove common driver literals * Modified 20apr86 to include time out for Timed Wait for Interrupt Support * Modified 8-1-86 to include additional fields for message-based devices. * Modified 24 Jan 89 - Optional 32-bit support. */ /* * Random-access driver information * * level: Interrupt level * priority: Priority of interrupt task * stack$size: Stack size for interrupt task * data$size: Device local data size * num$units: Number of units on device * device$init: Init device procedure * device$finish: Finished with device procedure * device$start: Start device procedure * device$stop: Stop device procedure * device$interrupt: Device interrupt procedure * time$limit: Interrupt time out * reserved$a Reserved for future use * reserved$b Reserved for future use */ DECLARE RADEV$DEVICE$INFO LITERALLY 'level WORD, priority BYTE, stack$size SIZE$OF$OFFSET, data$size SIZE$OF$OFFSET, num$units WORD, device$init SIZE$OF$OFFSET, device$finish SIZE$OF$OFFSET, device$start SIZE$OF$OFFSET, device$stop SIZE$OF$OFFSET, device$interrupt SIZE$OF$OFFSET, time$limit WORD, reserved$a WORD, reserved$b WORD'; /* * Begin ZAP XX - Add data structures used by message-based device drivers */ /* * Only Full-Message-Passing device drivers will use the following part of * the device$info structure-- * * queue$size: maximum number of messages to be queued at port for * reception by message task * instance: number of board to be found, starting at lowest card slot * board$id: used to match id read from interconnect space */ DECLARE RADEV$DEVICE$INFO$MSG$MBII LITERALLY 'queue$size WORD, instance BYTE, board$id(10) BYTE'; /* * Additional fields in device info for MBI message-based drivers * * queue$size: max size of PCB/PSB shared-queue * queue$addr: absolute address of the start of the shared-queue * wakeup$port: I/O port address of flag-byte * int$level: encoded interrupt level of device */ DECLARE RADEV$DEVICE$INFO$MSG$MBI LITERALLY 'queue$size WORD, queue$addr DWORD, wakeup$port WORD, int$level WORD'; /* * End ZAP XX */ /* * Unit info for radev * * track$size: Size in bytes of track. Used for calculating * track/sector. Requests to device will not cross * track boundaries. * max$retry: Number of times to retry on a soft IO error. */ DECLARE RAD$UNIT$INFO LITERALLY 'track$size WORD, max$retry WORD, cylinder$size WORD'; $restore