OutBuff8, OutBuff16, and OutBuff32

Takes a bus identifier, an I/O address in that bus's I/O address space, a source buffer in the CPU's logical address space, and a count of transfer data units to perform whatever operations are necessary to output the specified number of data units from the source buffer to the I/O address.

Thread Context:Non-Blocking

Syntax

    LONG OutBuff8 (
       LONG   busTag,
       void  *ioAddress,
       void  *buffer,
       LONG   count);
    
    LONG OutBuff16 (
       LONG   busTag,
       void  *ioAddress,
       void  *buffer,
       LONG   count);
    
    LONG OutBuff32 (
       LONG   busTag,
       void  *ioAddress,
       void  *buffer,
       LONG   count
    );
    

Parameters

busTag
(IN) A value returned by NPAB_Search_Adapter or by parsing the Product ID option of the NPAOptionStruct. This value specifies the bus on which the operation is to be performed.
ioAddress
(IN) The I/O address in the bus architecture of the adapter where the output is to occur.
buffer
(IN) The logical memory address of the source buffer. This address is in the CPU's logical address space.
count
(IN) The number of transfer units in the specified data size.

Return Values

The following table lists return values and descriptions.

0

Successful

1

Memory protection prevented the completion of the requested operation.

3

Memory error occurred while attempting to perform the requested operation.

4

One of the parameters was invalid.

5

The requested operation could not be completed.

Remarks

These functions are used only by HAMs written for adapters intended for bus architectures that have an I/O address space. The HAM is expected to use the function appropriate to the data width of the port where the output is to occur. The specified number of data units from the source buffer is output to the specified I/O address.

The value of ioAddress should be the port address the HAM would normally expect for the given bus architecture. For example, if an ISA board with a base port address of 300h is placed on an EISA bus, the HAM sets ioAddress to 300h when it wants to output to that base port.