mark_exclusive notifies the CPU that another CPU has marked the address range as exclusive. The CPU must then probe all CPUs in the CPU group for exclusive address ranges using probe_exclusive and possibly invalidate them using clear_exclusive before accessing the address range.
clear_and_probe_exclusive notifies the CPU to invalidate any exclusive address ranges that it has overlapping the specified clear address range. Also returns true if the CPU still has any exclusive address ranges overlapping the specified probe address range.
SIM_INTERFACE(arm_cpu_group_exclusive) { void (*mark_exclusive)( conf_object_t *obj, physical_address_t address, physical_address_t size); bool (*clear_and_probe_exclusive)( conf_object_t *obj, physical_address_t clear_address, physical_address_t clear_size, physical_address_t probe_address, physical_address_t probe_size); }; #define ARM_CPU_GROUP_EXCLUSIVE_INTERFACE "arm_cpu_group_exclusive"