此结构描述设备的字节序和数据顺序要求。驱动程序需要对此结构进行初始化并将其作为一个参数传递给 ddi_regs_map_setup(9F)。
typedef struct ddi_device_acc_attr { ushort_t devacc_attr_version; uchar_t devacc_attr_endian_flags; uchar_t devacc_attr_dataorder; } ddi_device_acc_attr_t;
指定 DDI_DEVICE_ATTR_V0
描述设备的字节序特征。指定为一个位值,其可能值包括:
DDI_NEVERSWAP_ACC-从不交换数据
DDI_STRUCTURE_BE_ACC-设备数据格式为大端字节序
DDI_STRUCTURE_LE_ACC-设备数据格式为小端字节序
描述 CPU 根据设备的要求引用数据时必须遵循的顺序。指定为一个枚举值,其中数据访问限制的排列顺序为最严格到最不严格。
DDI_STRICTORDER_ACC-主机必须按程序员指定的顺序发出引用。此标志为缺省行为。
DDI_UNORDERED_OK_ACC-允许主机重新排列到设备内存的负载和存储。
DDI_MERGING_OK_ACC-允许主机将单个存储合并到连续位置。此设置还表明需要重新排列。
DDI_LOADCACHING_OK_ACC-允许主机从设备读取数据,直到发生存储。
DDI_STORECACHING_OK_ACC-允许主机对写入设备的数据进行高速缓存。然后,主机可以延迟将数据写入设备,直到将来某一时间。
系统对数据的访问可能会比驱动程序在 devacc_attr_dataorder 中所做指定更严格。就数据访问而言,由从必须遵循严格的数据排序到可以执行高速缓存存储操作,驱动程序对主机的限制依次降低。