26#ifndef __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
27#define __L4SYS__INCLUDE__ARCH_ARM__MEM_OP_H__
71l4_mem_read(
unsigned long virtaddress,
unsigned width);
91 L4_MEM_OP_MEM_READ = 0x10,
92 L4_MEM_OP_MEM_WRITE = 0x11,
102 unsigned long value);
112 register unsigned long _op __asm__ (
"r0") = op;
113 register unsigned long _va __asm__ (
"r1") = va;
114 register unsigned long _width __asm__ (
"r2") = width;
115 register unsigned long _value __asm__ (
"r3") = value;
118 (
"@ l4_cache_op_arm_call(start) \n\t"
120 "blx __l4_sys_syscall \n\t"
121 "@ l4_cache_op_arm_call(end) \n\t"
128 [sc]
"i" (L4_SYSCALL_MEM_OP),
134 "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 L4_INLINE
L4 Inline function attribute.
#define EXTERN_C_BEGIN
Start section with C types and functions.
#define EXTERN_C_END
End 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.