NAME | SYNOPSIS | FEATURES | DESCRIPTION | ALLOWED CALLING CONTEXTS | ATTRIBUTES | SEE ALSO
#include <dki/f_dki.h>uint8_f load_sync_8(uint8_f * addr);
DKI
The UltraSPARC DKI provides specific I/O routines optimized to handle byte swapping. These services are analogous to the generic ones except the membar #Sync instruction is issued each time the data is read/written from/to the memory. Note that this allows recovery from an asynchronous exception caused by these types of service routines.
Typically, these services are intended to be used by a host bus driver to handle different byte ordering between the processor bus and the host bus.
In addtion, the UltraSPARC DKI provides specific synchronized I/O routines. These routines do not perform the byte swapping but they are safe and allow recovery from an asynchronous exception caused by this type of service routine.
Specific I/O services are defined below as sets of routines where the _xx suffix indicates the bit length of the data on which the service applies. This suffix may take one of the following values:
_8 for 8-bit data
_16 for 16-bit data
_32 for 32-bit data
_64 for 64-bit data
Note that the _8 suffix is only applied to the load_sync_xx and store_sync_xx routines.
loadSwap_sync_xx loads data from a given address and returns the corresponding byte swapped value. The membar #Sync instruction is issued once the data has been loaded.
The addr argument specifies the address from which to read.
storeSwap_sync_xx stores into a given address the value byte swapped. The membar #Sync instruction is issued once the data is stored.
The addr argument specifies the address to which to write.
load_sync_xx loads data from a given address. The membar #Sync instruction is issued once the data is loaded.
The addr argument specifies the address from which to read.
storeSwap_sync_xx stores into a given address the value . The membar #Sync instruction is issued once the data is stored.
The addr argument specifies the address to which to write.
The following table specifies the contexts in which a caller is allowed to invoke each service:
Services | Base level | DKI thread | Interrupt | Blocking |
loadSwap_sync_xx | + | + | + | - |
storeSwap_sync_xx | + | + | + | - |
load_sync_xx | + | + | + | - |
store_sync_xx | + | + | + | - |
See attributes(5) for descriptions of the following attributes:
ATTRIBUTE TYPE | ATTRIBUTE VALUE |
---|---|
Interface Stability | Evolving |
NAME | SYNOPSIS | FEATURES | DESCRIPTION | ALLOWED CALLING CONTEXTS | ATTRIBUTES | SEE ALSO