31 lines
799 B
C
31 lines
799 B
C
#ifndef _ELIBC_KCALL_H
|
|
#define _ELIBC_KCALL_H
|
|
|
|
/* Elyz kernel-call abstraction.
|
|
*
|
|
* Elyz has NO syscall instruction. Communication with the kernel and PM
|
|
* actors happens through capability invocation — a mechanism defined by the
|
|
* kernel ABI (not finalised yet). This header describes the abstract
|
|
* interface; the arch-specific implementation (arch/<arch>/kcall.h) fills in
|
|
* the concrete mechanism.
|
|
*
|
|
* Current state: STUB — returns -ENOSYS until the Elyz kernel ABI is
|
|
* stabilised.
|
|
*/
|
|
|
|
#define ELYZ_OP_ALLOCATE 1
|
|
#define ELYZ_OP_FREE 2
|
|
#define ELYZ_OP_CARVE 3
|
|
#define ELYZ_OP_EXIT 4
|
|
|
|
struct elyz_kcall {
|
|
unsigned long opcode;
|
|
unsigned long arg1;
|
|
unsigned long arg2;
|
|
unsigned short channel_id;
|
|
};
|
|
|
|
long __kcall(struct elyz_kcall *msg);
|
|
|
|
#endif
|