NAME | SYNOPSIS | API RESTRICTIONS | FEATURES | DESCRIPTION | ALLOWED CALLING CONTEXTS | ATTRIBUTES | SEE ALSO
#include <dki/f_dki.h>uint8_f load_sync_8(uint8_f * addr);
The function or functions documented here may not be used safely in all application contexts with all APIs provided in the ChorusOS 5.0 product.
See API(5FEA) for details.
DKI
The 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 data is read from, or written to, the memory.
This allows recovery from an asynchronous exception caused by these types of service routines.
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 addition, the DKI provides specific synchronized I/O routines. These routines do not perform 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
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 the value byte swapped into a given address. 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 after the data is loaded.
The addr argument specifies the address from which to read.
storeSwap_sync_xx() stores the value into a given address. 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 | API RESTRICTIONS | FEATURES | DESCRIPTION | ALLOWED CALLING CONTEXTS | ATTRIBUTES | SEE ALSO