mirror of
https://github.com/drasko/codezero.git
synced 2026-01-13 19:33:15 +01:00
Kernel updates since December 2009
This commit is contained in:
17
include/l4/api/cache.h
Normal file
17
include/l4/api/cache.h
Normal file
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* Generic macros for cache operations
|
||||
*
|
||||
* Copyright (C) 2009 B Labs Ltd.
|
||||
*/
|
||||
#ifndef __CACHE_CONTROL_H__
|
||||
#define __CACHE_CONTROL_H__
|
||||
|
||||
#include INC_GLUE(cache.h)
|
||||
|
||||
#define L4_INVALIDATE_ICACHE ARCH_INVALIDATE_ICACHE
|
||||
#define L4_INVALIDATE_DCACHE ARCH_INVALIDATE_DCACHE
|
||||
#define L4_CLEAN_DCACHE ARCH_CLEAN_DCACHE
|
||||
#define L4_CLEAN_INVALIDATE_DCACHE ARCH_CLEAN_INVALIDATE_DCACHE
|
||||
#define L4_INVALIDATE_TLB ARCH_INVALIDATE_TLB
|
||||
|
||||
#endif /* __CACHE_CONTROL_H__ */
|
||||
@@ -142,5 +142,7 @@
|
||||
#define ENOUTCB 135 /* Task has no utcb set up */
|
||||
#define ENOMAP 136 /* The memory area has unmapped regions */
|
||||
#define ENOIRQ 137 /* Irq cannot be registered */
|
||||
#define EABORT 138 /* Abort cannot be handled */
|
||||
#define ENOCHILD 139 /* Task is not paged by caller */
|
||||
|
||||
#endif /* __ERRNO_H__ */
|
||||
|
||||
@@ -61,7 +61,8 @@ struct kip {
|
||||
u32 schedule;
|
||||
u32 getid;
|
||||
u32 mutex_control;
|
||||
|
||||
u32 cache_control;
|
||||
|
||||
u32 arch_syscall0;
|
||||
u32 arch_syscall1;
|
||||
u32 arch_syscall2;
|
||||
|
||||
@@ -26,7 +26,8 @@
|
||||
#define sys_container_control_offset 0x2C
|
||||
#define sys_time_offset 0x30
|
||||
#define sys_mutex_control_offset 0x34
|
||||
#define syscalls_end_offset sys_mutex_control_offset
|
||||
#define sys_cache_control_offset 0x38
|
||||
#define syscalls_end_offset sys_cache_control_offset
|
||||
#define SYSCALLS_TOTAL ((syscalls_end_offset >> 2) + 1)
|
||||
|
||||
void print_syscall_context(struct ktcb *t);
|
||||
@@ -46,5 +47,7 @@ int sys_capability_control(unsigned int req, unsigned int flags, void *addr);
|
||||
int sys_container_control(unsigned int req, unsigned int flags, void *addr);
|
||||
int sys_time(struct timeval *tv, int set);
|
||||
int sys_mutex_control(unsigned long mutex_address, int mutex_op);
|
||||
int sys_cache_control(unsigned long start, unsigned long end,
|
||||
unsigned int flags);
|
||||
|
||||
#endif /* __SYSCALL_H__ */
|
||||
|
||||
@@ -9,15 +9,17 @@
|
||||
#define THREAD_RECYCLE 0x40000000
|
||||
#define THREAD_WAIT 0x50000000
|
||||
|
||||
#define THREAD_CREATE_MASK 0x0FF00000
|
||||
#define THREAD_SHARE_MASK 0x00F00000
|
||||
#define THREAD_SPACE_MASK 0x0F000000
|
||||
#define THREAD_CREATE_MASK (THREAD_SHARE_MASK | THREAD_SPACE_MASK)
|
||||
#define TC_SHARE_CAPS 0x00100000 /* Share all thread capabilities */
|
||||
#define TC_SHARE_UTCB 0x00200000 /* Share utcb location (same space */
|
||||
#define TC_SHARE_GROUP 0x00400000 /* Share thread group id */
|
||||
#define TC_SHARE_SPACE 0x00800000 /* New thread, use given space */
|
||||
#define TC_COPY_SPACE 0x01000000 /* New thread, copy given space */
|
||||
#define TC_NEW_SPACE 0x02000000 /* New thread, new space */
|
||||
#define TC_SHARE_PAGER 0x04000000 /* New thread, shared pager */
|
||||
#define TC_AS_PAGER 0x08000000 /* Set new thread as child */
|
||||
|
||||
#define TC_SHARE_SPACE 0x01000000 /* New thread, use given space */
|
||||
#define TC_COPY_SPACE 0x02000000 /* New thread, copy given space */
|
||||
#define TC_NEW_SPACE 0x04000000 /* New thread, new space */
|
||||
|
||||
/* #define THREAD_USER_MASK 0x000F0000 Reserved for userspace */
|
||||
#define THREAD_EXIT_MASK 0x0000FFFF /* Thread exit code */
|
||||
#endif /* __API_THREAD_H__ */
|
||||
|
||||
Reference in New Issue
Block a user