mirror of
https://github.com/drasko/codezero.git
synced 2026-03-04 03:23:16 +01:00
Preparing to add utcbs at disjoint virtual addresses.
This will help when syscalls have long arguments individual utcbs can be mapped to server tasks and kept mapped in until the tasks die, as opposed to map requests every time a server task maps a different utcb at the same virtual address. The changes have preparation code to also passing the utcb info through the stack as part of the environment. To sum up env and arg regions have also been added above the stack and env region is to be used to pass on the utcb address information at task startup.
This commit is contained in:
@@ -26,7 +26,7 @@ extern __l4_thread_switch_t __l4_thread_switch;
|
||||
unsigned int l4_thread_switch (u32 dest);
|
||||
|
||||
typedef int (*__l4_getid_t)(struct task_ids *ids);
|
||||
extern __l4_getid_t __l4_getpid;
|
||||
extern __l4_getid_t __l4_getid;
|
||||
int l4_getid(struct task_ids *ids);
|
||||
|
||||
typedef int (*__l4_ipc_t)(l4id_t to, l4id_t from);
|
||||
|
||||
@@ -21,15 +21,17 @@ struct utcb {
|
||||
u32 tid; /* Thread id */
|
||||
|
||||
/*
|
||||
* This field is used by servers as the ptr to current tcb,
|
||||
* i.e. the task that this server is serving to.
|
||||
* For passing ipc data larger than mrs,
|
||||
* that is, if the callee is allowed to map it
|
||||
*/
|
||||
unsigned long usr_handle;
|
||||
char userbuf[];
|
||||
};
|
||||
extern struct utcb *utcb;
|
||||
|
||||
static inline struct utcb *l4_get_utcb()
|
||||
{
|
||||
return *(struct utcb **)USER_UTCB_REF;
|
||||
return utcb;
|
||||
// (struct utcb **)USER_UTCB_REF;
|
||||
}
|
||||
|
||||
/* Functions to read/write utcb registers */
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
/* SHMID used betweeen FS0 and BLKDEV0 servers */
|
||||
#define FS_BLKDEV_SHMID 0
|
||||
|
||||
|
||||
/*** IPC Tags used between server tasks ***/
|
||||
|
||||
/* For ping ponging */
|
||||
|
||||
Reference in New Issue
Block a user