mirror of
https://github.com/drasko/codezero.git
synced 2026-01-16 21:03:16 +01:00
Towards finishing exchange_registers()
- Added mutex_trylock() - Implemented most of exchange_registers() - thread_control() now needs a lock for operations that can modify thread context. - thread_start() does not initialise scheduler flags, now done in thread_create. TODO: - Fork/clone'ed threads should retain their context in tcb, not syscall stack. - exchange_registers() calls in userspace need cleaning up.
This commit is contained in:
@@ -144,6 +144,9 @@
|
||||
#define EOWNERDEAD 130 /* Owner died */
|
||||
#define ENOTRECOVERABLE 131 /* State not recoverable */
|
||||
|
||||
/* Codezero specific error codes */
|
||||
#define EACTIVE 132 /* Task active */
|
||||
|
||||
#ifdef __KERNEL__
|
||||
|
||||
/* Should never be seen by user programs */
|
||||
|
||||
22
include/l4/api/exregs.h
Normal file
22
include/l4/api/exregs.h
Normal file
@@ -0,0 +1,22 @@
|
||||
/*
|
||||
* Exchange registers system call data.
|
||||
*
|
||||
* Copyright (C) 2008 Bahadir Balban
|
||||
*/
|
||||
#ifndef __EXREGS_H__
|
||||
#define __EXREGS_H__
|
||||
|
||||
#include <l4/macros.h>
|
||||
#include INC_GLUE(syscall.h)
|
||||
#include INC_GLUE(context.h)
|
||||
#include <l4/types.h>
|
||||
|
||||
/* Structure passed by userspace pagers for exchanging registers */
|
||||
struct exregs_data {
|
||||
exregs_context_t context;
|
||||
u32 valid_vect;
|
||||
};
|
||||
|
||||
|
||||
|
||||
#endif /* __EXREGS_H__ */
|
||||
@@ -1,16 +1,18 @@
|
||||
#ifndef __THREAD_H__
|
||||
#define __THREAD_H__
|
||||
|
||||
#define THREAD_FLAGS_MASK 0x00F0
|
||||
|
||||
/* Create new thread, copy given space */
|
||||
#define THREAD_CREATE_COPYSPC 0x0010
|
||||
#define THREAD_CREATE_MASK 0x00F0
|
||||
|
||||
/* Create new thread and new space */
|
||||
#define THREAD_CREATE_NEWSPC 0x0020
|
||||
#define THREAD_NEW_SPACE 0x0010
|
||||
|
||||
/* Create new thread, copy given space */
|
||||
#define THREAD_COPY_SPACE 0x0020
|
||||
|
||||
/* Create new thread, use given space */
|
||||
#define THREAD_CREATE_SAMESPC 0x0030
|
||||
#define THREAD_SAME_SPACE 0x0030
|
||||
|
||||
|
||||
|
||||
|
||||
#define THREAD_ACTION_MASK 0x000F
|
||||
|
||||
Reference in New Issue
Block a user