Initial efforts to transform utcb handling.

This commit is contained in:
Bahadir Balban
2008-03-18 21:50:47 +00:00
parent 26e6366014
commit ac3935a5d9
4 changed files with 61 additions and 24 deletions

View File

@@ -15,23 +15,20 @@
* needed for all ipcs. Those mrs are defined the kernel message.h
*/
/* Compact utcb for now! :-) */
/*
* This is a per-task private structure where message registers are
* pushed for ipc. Its *not* TLS, but can be part of TLS when it is
* supported.
*/
struct utcb {
u32 mr[MR_TOTAL];
u32 tid; /* Thread id */
/*
* For passing ipc data larger than mrs,
* that is, if the callee is allowed to map it
*/
char buf[];
};
extern struct utcb *utcb;
}; __attribute__((__packed__));
extern struct utcb utcb;
static inline struct utcb *l4_get_utcb()
{
return utcb;
// (struct utcb **)USER_UTCB_REF;
return &utcb;
}
/* Functions to read/write utcb registers */

View File

@@ -19,10 +19,10 @@
/* For ping ponging */
#define L4_IPC_TAG_WAIT 3
/* To negotiate a shared memory mapping */
#define L4_IPC_TAG_SHM 4
/* To obtain utcb address */
#define L4_IPC_TAG_UTCB 4
/* To negotiate a grant mapping */
/* XXX: unused */
#define L4_IPC_TAG_GRANT 5
/* Posix system call tags */