|
ALWAYS_INLINE NORETURN void | make_current () |
|
|
HOT static NORETURN void | ret_user_sysexit () |
|
static NORETURN void | ret_user_iret () asm("ret_user_iret") |
|
static NORETURN void | idle () |
|
static void | root_setup (mword) |
|
HOT NORETURN static REGPARM_1 void | syscall_handler (uint8 a) asm("syscall_handler") |
| System call handler. More...
|
|
static ALWAYS_INLINE void * | operator new (size_t) |
|
static ALWAYS_INLINE void | operator delete (void *) |
|
◆ syscall_handler()
void Ec::syscall_handler |
( |
uint8 |
a | ) |
|
|
static |
System call handler.
- Parameters
-
[in] | a | Value of the al register before the system call |
21 Syscall_numbers number =
static_cast<Syscall_numbers
> (a);
26 char *data =
reinterpret_cast<char*
>(r->esi);
27 unsigned len = r->edi;
28 for (
unsigned i = 0; i < len; i++)
29 printf(
"%c", data[i]);
34 int first_number = r->esi;
35 int second_number = r->edi;
36 r->eax = first_number + second_number;
41 printf (
"unknown syscall %d\n", number);
The documentation for this class was generated from the following files:
- include/ec.h
- src/ec.cc
- src/ec_syscall.cc