mem_access
union cvmx_npi_mem_access_subidx mem_access;
mem_access.u64 = 0;
mem_access.s.esr = 1; /* Endian-Swap on read. */
mem_access.s.esw = 1; /* Endian-Swap on write. */
mem_access.s.nsr = 0; /* No-Snoop on read. */
mem_access.s.nsw = 0; /* No-Snoop on write. */
mem_access.s.ror = 0; /* Relax Read on read. */
mem_access.s.row = 0; /* Relax Order on write. */
mem_access.s.ba = 0; /* PCI Address bits [63:36]. */
cvmx_write_csr(CVMX_NPI_MEM_ACCESS_SUBID3, mem_access.u64);
GENERIC_EVENT_ATTR(mem_access, MEM_ACCESS);
struct mem_access *ma, int, unsigned long address);
static struct mem_access trapped_io_access = {
struct mem_access *ma)
struct mem_access *ma)
struct mem_access *ma, int expected,
static struct mem_access user_mem_access = {
static struct mem_access kernel_mem_access = {
mutex_lock(&xe->mem_access.vram_userfault.lock);
mutex_unlock(&xe->mem_access.vram_userfault.lock);
mutex_lock(&xe->mem_access.vram_userfault.lock);
&xe->mem_access.vram_userfault.list);
mutex_unlock(&xe->mem_access.vram_userfault.lock);
mutex_lock(&xe->mem_access.vram_userfault.lock);
mutex_unlock(&xe->mem_access.vram_userfault.lock);
} mem_access;
INIT_LIST_HEAD(&xe->mem_access.vram_userfault.list);
err = drmm_mutex_init(&xe->drm, &xe->mem_access.vram_userfault.lock);
mutex_lock(&xe->mem_access.vram_userfault.lock);
&xe->mem_access.vram_userfault.list, vram_userfault_link)
mutex_unlock(&xe->mem_access.vram_userfault.lock);
struct host_cmd_ds_mem_access *mem_access = (void *)&cmd->params.mem;
mem_access->action = cpu_to_le16(cmd_action);
mem_access->addr = cpu_to_le32(mem_rw->addr);
mem_access->value = cpu_to_le32(mem_rw->value);
ARMV8_EVENT_ATTR(mem_access, ARMV8_PMUV3_PERFCTR_MEM_ACCESS),
ARMV7_EVENT_ATTR(mem_access, ARMV7_PERFCTR_MEM_ACCESS);
cs_etm_mem_cb_type mem_access;
return decoder->mem_access(decoder->data, trace_chan_id, address,
decoder->mem_access = cb_func;