15#ifndef __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
16#define __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
60l4_mem_read(
unsigned long virtaddress,
unsigned width);
80 L4_MEM_OP_MEM_READ = 0x10,
81 L4_MEM_OP_MEM_WRITE = 0x11,
101 register unsigned long _op __asm__ (
"r0") = op;
102 register unsigned long _va __asm__ (
"r1") = va;
103 register unsigned long _width __asm__ (
"r2") = width;
104 register unsigned long _value __asm__ (
"r3") = value;
107 (
"@ l4_cache_op_arm_call(start) \n\t"
109 "blx __l4_sys_syscall \n\t"
110 "@ l4_cache_op_arm_call(end) \n\t"
117 [sc]
"i" (L4_SYSCALL_MEM_OP),
123 "cc",
"memory",
"r5",
"ip",
"lr"
L4 compiler related defines.
void l4_mem_write(unsigned long virtaddress, unsigned width, unsigned long value)
Write user task memory from kernel privilege level.
unsigned long l4_mem_read(unsigned long virtaddress, unsigned width)
Read user task memory from kernel privilege level.
L4_mem_op_widths
Memory access width definitions.
@ L4_MEM_WIDTH_4BYTE
Access four bytes (32-bit width)
@ L4_MEM_WIDTH_2BYTE
Access two bytes (16-bit width)
@ L4_MEM_WIDTH_1BYTE
Access one byte (8-bit width)
#define __END_DECLS
End section with C types and functions.
#define L4_INLINE
L4 Inline function attribute.
#define __BEGIN_DECLS
Start section with C types and functions.
unsigned long l4_mem_arm_op_call(unsigned long op, unsigned long va, unsigned long width, unsigned long value)
Implementations.
Syscall entry definitions.