Everything

ref_mem

Outline
Reference memory object state.
C format
 ER      ref_mem (VP base, T_RMEM *pk_rmem);
Parameter(s)
I/O
Parameter
Description
I
 VP      base;
Memory object start address.
O
 T_RMEM  *pk_rmem;
Pointer to the packet returning the mutex state.

[Access permission vector : ACVCT]
 typedef struct  acvct {
     ACPTN   acptn1;         /*Access permission pattern for operand-read*/
     ACPTN   acptn2;         /*Access permission pattern for operand-write*/
     ACPTN   acptn3;         /*Access permission pattern for execution*/
 } ACVCT;

[Memory object state packet: T_RMEM]
 typedef struct  t_rmem {
     ACVCT   acvct;          /*Access permission vector*/
 } T_RMEM;

Explanation
This service call stores the information of the memory object started from the address specified by parameter base into the area specified by parameter pk_rmem.
The bit N-1 in the access permission pattern shows whether tasks belonging to the domain ID #N can access the memory object. The bit value 1 means "permitted" and 0 means "not permitted".
Return value
Macro
Value
Description
E_OK
0
Normal completion.
E_PAR
-17
parameter error.
- pk_rmem == NULL
E_CTX
-25
Context error.
- This service call was issued in the CPU locked state.
- This service call was issued from non-task.
- This service call was issued in the status "PSW.IPL > kernel interrupt mask level".
E_MACV
-26
Memory access violation.
- Stack pointer points out of user stack for invoking task.
- The operand-write access to the area indicated by pk_rmem has not been permitted to the invoking task
E_NOEXS
-42
Non-existent object.
- The memory object started from the address specified by base has already been registered.