32 Maximum length of entry point names in DDF.
1024 Maximum length of whole DDF.
-1 Indicates no CSR page (version 2).
3 Magtape unit number.
4 Storage module device unit number.
4 Storage module device unit number.
6 Line printer unit number.
6 Internet interface controller unit number.
7 Placeholder for second magtape unit number.
7 Maximum allowable unit number.
8 Minimum VME unit number.
15 Maximum VME unit number.
15 Maximum AT unit number.
1024 Bytes per page.
16#7FFFFFFF Maximum user-space virtual address.
A 4-byte integer. A pointer to an eventcount.
An array of up to 1024 characters. A buffer to be mapped.
A 4-byte integer. A pointer to the CSR page.
An array of up to 1024 characters. A Control and Status Register (CSR) page.
C
C~
(~
\. ./
C~'
o
The name of the driver's interrupt routine entry point. The diagram below illustrates this data type:
Interrupt routine entry point.
flag
predefined byte field
type offset name
14: device_sn
(~
30: ca"-'ib_name
94: int-'ib_name
158: init_ep
190: cleanup_ep
pbu_$ddfJnt-,ist_entry_t 222: int-,ist
("
"---pbu $iova t
- -
478: integer csr _page Jova480: integer stack_size
482: rev
490: sn (~~',
\.
506: userJnfo
570: integer csr _base_offset
pbu_$iova_t 572: integer memoryJova
574: integer memory_size
(-,,-\
pbu2 _ $iova _ t 576: integer32 csr _page Jova2 \, .... -./
pbu2_$iova_t 580: integer32 memory _iova2
584: integer32 memory _size2
588: integer dma_channel
pbu_$iova_t 590: integer at_ csr _high
1
592: int-,ist2pbu_$ddfJnt-,ist_entry_t n:
(-"'\,
I
\ "
o
Bit 1 share Memory-mapped controller mapped in global address space
Pathname of call-side library.
int _lib _name
Pathname of interrupt-side library.
init_ep
Entry point of driver's initialization routine.
cleanup_ep
Entry point of driver's clean-up routine.
int_list
Field Description (cont.) rev
Optional revision number.
sn
User-specified serial number.
user_info
User-specified information.
csr _base_offset
Offset within CSR page of CSR base.
memory _iova
Memory-mapped controller base.
memory_size
Memory-mapped controller memory size.
The following fields are valid in Version 3 DDFs only:
csr -page _iova2
Address of YME device CSR page.
memory _iova2
Memory-mapped controller base.
memory _size2
Memory-mapped controller memory size.
dma_channel
AT-compatible device channel number.
at _ csr _high
High AT-compatible I/O address (if greater than 8-byte area).
int.:....list2
Interrupt request level and name (YME and AT -compatible devices).
A 2-byte integer. The DMA channel number used by AT-compatible devices. Possible values are integers between 0 and 7.
r'
~-....c'
o
o o
o
o
A 2-byte integer. Used with PBU_SDMA_START to specify a read or write DMA operation. One of the following predefined values:
PBU_DMA_READ
The AT-compatible controller reads processor memory.
PBU_DMA_ WRITE
Processor memory writes to the AT-compatible control-ler.
A 2-byte integer. Specifies various DMA modes on the AT-compatible bus. Any combination of the following predefined values:
PBU_DMA_ADR_DECR
DMA hardware decrements the address to or from which data is transferred. The default is to increment.
PBU_DMA_AUTO_INIT
DMA hardware reinitializes itself after completing data transfer.
PBU_DMA_CASCADE
Sets DMA channel in cascade mode; use with devices that can request bus mastership doing DMA with their own DMA hardware.
PBU_DMA_EXT_MEM
DMA to AT-compatible or XT -compatible extension memory.
A 2-byte integer. Specifies the eventcount to get. Cur-rently, only the following predefined value is supported:
PBU_SGET_DEVICE_EC Get device EC.
A 2-byte integer. Flags returned from the device driver's in-terrupt routine specifying actions that the System Inin-terrupt Handler is to perform. One or both of the following predefined values:
PBU_SINTERRUPT_ADVANCE Advance the device's eventcount.
PBU_SINTERRUPT_ENABLE Enable interrupts from the device.
B-7 GPIIO Routines
A 2-byte integer. A set of PBU_$INTERRUPT_FLAGS_T.
A 2-byte integer. A physical address on the I/O bus.
A 4-byte integer. A physical address on the I/O bus.
A 2-byt~ integer. Available byte-swapping options when us-ing PBU_$CONTROL. One or more of the following predefined values:
PBU_MAP_R
Maps pages of processor memory read-only.
PBU_MAP_RW
Maps pages of processor memory read-write.
PBU_SWAP_OFF
Swaps bytes during byte transfers only.
PBU_SWAP_WORDS
Preserves byte order for character string transfers; swaps bytes for integer transfers.
PBU_SWAP_BYTES
Preserves byte order for integer transfers; swaps bytes for character string transfers.
An array of up to 64 UN IV _PTRs. A list of physical ad-dresses locating the buffer in processor memory.
A 2-byte integer. Device unit number. Possible values are integers between 0 and PBU_$MAX_ VME_UNIT.
A 2-byte integer. A set of PBU_$UNIT_T.
A 2-byte integer. Indicates the event that caused PBU_$WAIT to return. Possible values are integers between
o
and 2.A 2-byte integer. Options when wiring an I/O buffer with PBU_$WIRE_SPECIAL. Only one predefined value is cur-rently available:
PBU_$WIRED_BUFFER
Verifies whether the buffer is already wired.
o
0
o
o
o
byte offset
0:
0:
1 :
2:
31
A status code. The diagram below illustrates the this data type:
o
integer OR
0
Field Description all
All 32 bits in the status code.
fail
field name all
fail subsys modc code
The fail bit. If this bit is set, the error was not within the scope of the module invoked, but occurred within a lower-level module (bit 31).
subsys
The subsystem that encountered the error (bits 24-30).
mode
The module that encountered the error (bits 16-23).
code
A signed number that identifies the type of error that oc-curred (bits 0-15).
8-9 GPIIO Routines
byte offset 0:
4:
Unique identifier for an object. The diagram below illustrates the UID _ $T data type:
integer32 integer32
Field Description high
field name high low
The high 4 bytes of the UID.
low
The low 4 bytes of the UID.
A 4-byte integer. A universal pointer type.