Lines Matching full:adi

2 Application Data Integrity (ADI)
5 SPARC M7 processor adds the Application Data Integrity (ADI) feature.
6 ADI allows a task to set version tags on any subset of its address
7 space. Once ADI is enabled and version tags are set for ranges of
14 Following steps must be taken by a task to enable ADI fully:
17 the task's entire address space to enable/disable ADI for the task.
20 addresses ADI is being enabled on. MMU checks the version tag only
25 given tag for one ADI block size number of bytes. This step must
28 ADI block size for the platform is provided by the hypervisor to kernel
32 physical memory and the same tag must be present in the ADI version tag
34 SPARC M7 processor, MMU uses bits 63-60 for version tags and ADI block
35 size is same as cacheline size which is 64 bytes. A task that sets ADI
39 ADI is enabled on a set of pages using mprotect() with PROT_ADI flag.
40 When ADI is enabled on a set of pages by a task for the first time,
43 ASI_MCD_PRIMARY or ASI_MCD_ST_BLKINIT_PRIMARY. ADI block size is
45 ADI block size to userspace using auxiliary vector along with other ADI
49 AT_ADI_BLKSZ ADI block size. This is the granularity and
50 alignment, in bytes, of ADI versioning.
51 AT_ADI_NBITS Number of ADI version bits in the VA
73 - ADI tag mismatches are not detected for non-faulting loads.
81 - ADI works for any size pages. A userspace task need not be aware of
82 page size when using ADI. It can simply select a virtual address
83 range, enable ADI on the range using mprotect() and set version tags
87 - ADI tags can only be set on writable memory. For example, ADI tags can
92 ADI related traps
95 With ADI enabled, following new traps may occur:
101 the task is running with ADI enabled (PSTATE.mcde=1), and the ADI
121 the task is running with ADI enabled (PSTATE.mcde=1), and the ADI
136 ADI tag mismatch on a load always results in precise trap.
142 When a task has not enabled ADI and attempts to set ADI version
156 Sample program to use ADI
159 Following sample program is meant to illustrate how to use the ADI
205 fprintf(stderr, "Oops! ADI is not supported\n");
209 printf("ADI capabilities:\n");
231 /* Set the ADI version tag on the shm segment
268 /* Disable ADI and clean up