void fluke_region_set_state(fluke_region_t *region, fluke_region_state *state, fluke_ref_t *task_ref, fluke_ref_t *keeper_ref);
This operation sets the state of a region object.
- region
- The region whose state is to be set.
- state
- If non-null, a pointer to a structure containing the simple (non-reference) state of the region.
- task_ref
- If non-null, the address of a task reference object to be copied into the region's task reference slot.
- keeper_ref
- If non-null, the address of a port reference object to be copied into the region's keeper port reference slot.
If any of the following errors is detected by the Fluke implementation, it causes the current thread to take a synchronous exception with one of the following codes. All of these have an implicit FLUKE_INSANITY_ prefix.
- NO_OBJECT
- region, task_ref or keeper_ref does not point to an object.
- NOT_REGION
- The object pointed to by region is not a region object.
- NOT_REF
- The object at task_ref or keeper_ref is not a reference object.
- NOT_TASK_REF
- The object at task_ref is a reference object, but not a reference to a task.
- NOT_PORT_REF
- The object at keeper_ref is a reference object, but not a reference to a port.
- INVALID_OBJECT
- The state of the region object or one of the reference objects has become invalid.
- INVALID_ADDRESS
- The address range specified in the fluke_region_state structure does not fall within the allowable task address space.
- NOT_ALIGNED
- The start or size fields of the fluke_region_state structure are not aligned as required by the implementation.
fluke_region_get_state