DDI_IO_REP_GET8(9F) Kernel Functions for Drivers DDI_IO_REP_GET8(9F)
ddi_io_rep_get8, ddi_io_rep_get16, ddi_io_rep_get32
- read multiple data from the mapped device register in I/O space
#include <sys/ddi.h>
#include <sys/sunddi.h>
void ddi_io_rep_get8(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount);
void ddi_io_rep_get16(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount);
void ddi_io_rep_get32(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount);
illumos DDI specific (illumos DDI). The ddi_io_rep_get8(),
ddi_io_rep_get16(), ddi_io_rep_get32(), ddi_io_rep_getb(),
ddi_io_rep_getl(), and ddi_io_rep_getw() functions are obsolete. The
ddi_rep_get8(9F) function replaces ddi_io_rep_get8(). The
ddi_rep_get16(9F) function replaces ddi_io_rep_get16(). The
ddi_rep_get32(9F) function replaces ddi_io_rep_get32().
handle
The data access handle returned from setup calls, such
as ddi_regs_map_setup(9F).
host_addr
Base host address.
dev_addr
Base device address.
repcount
Number of data accesses to perform.
These routines generate multiple reads from the device address,
dev_addr, in I/O space. repcount data is copied from the device
address, dev_addr, to the host address, host_addr. For each input
datum, the ddi_io_rep_get8(), ddi_io_rep_get16(), and
ddi_io_rep_get32() functions read 8 bits, 16 bits, and 32 bits of
data, respectively, from the device address. host_addr must be
aligned to the datum boundary described by the function.
Each individual datum will automatically be translated to maintain a
consistent view between the host and the device based on the encoded
information in the data access handle. The translation may involve
byte-swapping if the host and the device have incompatible endian
characteristics.
These functions can be called from user, kernel, or interrupt
context.
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Obsolete |
+--------------------+-----------------+
isa(5), ddi_io_get8(9F), ddi_io_put8(9F), ddi_io_rep_put8(9F),
ddi_regs_map_free(9F), ddi_regs_map_setup(9F), ddi_rep_get16(9F),
ddi_rep_get32(9F), ddi_rep_get8(9F), ddi_device_acc_attr(9S)
August 29, 2021 DDI_IO_REP_GET8(9F)
NAME
ddi_io_rep_get8, ddi_io_rep_get16, ddi_io_rep_get32
- read multiple data from the mapped device register in I/O space
SYNOPSIS
#include <sys/ddi.h>
#include <sys/sunddi.h>
void ddi_io_rep_get8(ddi_acc_handle_t handle, uint8_t *host_addr,
uint8_t *dev_addr, size_t repcount);
void ddi_io_rep_get16(ddi_acc_handle_t handle, uint16_t *host_addr,
uint16_t *dev_addr, size_t repcount);
void ddi_io_rep_get32(ddi_acc_handle_t handle, uint32_t *host_addr,
uint32_t *dev_addr, size_t repcount);
INTERFACE LEVEL
illumos DDI specific (illumos DDI). The ddi_io_rep_get8(),
ddi_io_rep_get16(), ddi_io_rep_get32(), ddi_io_rep_getb(),
ddi_io_rep_getl(), and ddi_io_rep_getw() functions are obsolete. The
ddi_rep_get8(9F) function replaces ddi_io_rep_get8(). The
ddi_rep_get16(9F) function replaces ddi_io_rep_get16(). The
ddi_rep_get32(9F) function replaces ddi_io_rep_get32().
PARAMETERS
handle
The data access handle returned from setup calls, such
as ddi_regs_map_setup(9F).
host_addr
Base host address.
dev_addr
Base device address.
repcount
Number of data accesses to perform.
DESCRIPTION
These routines generate multiple reads from the device address,
dev_addr, in I/O space. repcount data is copied from the device
address, dev_addr, to the host address, host_addr. For each input
datum, the ddi_io_rep_get8(), ddi_io_rep_get16(), and
ddi_io_rep_get32() functions read 8 bits, 16 bits, and 32 bits of
data, respectively, from the device address. host_addr must be
aligned to the datum boundary described by the function.
Each individual datum will automatically be translated to maintain a
consistent view between the host and the device based on the encoded
information in the data access handle. The translation may involve
byte-swapping if the host and the device have incompatible endian
characteristics.
CONTEXT
These functions can be called from user, kernel, or interrupt
context.
ATTRIBUTES
See attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Obsolete |
+--------------------+-----------------+
SEE ALSO
isa(5), ddi_io_get8(9F), ddi_io_put8(9F), ddi_io_rep_put8(9F),
ddi_regs_map_free(9F), ddi_regs_map_setup(9F), ddi_rep_get16(9F),
ddi_rep_get32(9F), ddi_rep_get8(9F), ddi_device_acc_attr(9S)
August 29, 2021 DDI_IO_REP_GET8(9F)