Added kernel + libl4 changes for full and extended ipc.

- Short ipc working as normal. Full/extended ipc haven't been tested.
- Added automated compilation and inclusion of test executable in test0.
This commit is contained in:
Bahadir Balban
2009-05-15 19:14:40 +03:00
parent 814eba43dd
commit 93368447f9
21 changed files with 289 additions and 49 deletions

View File

@@ -13,8 +13,8 @@
#if defined (__KERNEL__)
/* These are for internally created ipc paths. */
int ipc_send(l4id_t to);
int ipc_sendrecv(l4id_t to, l4id_t from);
int ipc_send(l4id_t to, int full);
int ipc_sendrecv(l4id_t to, l4id_t from, int full);
#endif

View File

@@ -42,7 +42,8 @@ void address_space_remove(struct address_space *space);
void address_space_reference_lock();
void address_space_reference_unlock();
void init_address_space_list(void);
int check_access(unsigned long vaddr, unsigned long size, unsigned int flags);
int check_access(unsigned long vaddr, unsigned long size,
unsigned int flags, int page_in);
#endif
#endif /* __SPACE_H__ */

View File

@@ -26,6 +26,9 @@
#define TASK_SUSPENDING (1 << 1)
#define TASK_RESUMING (1 << 2)
/* IPC resulted in a fault error (For ipcs that cannot page fault) */
#define IPC_EFAULT (1 << 3)
/* Task states */
enum task_state {
TASK_INACTIVE = 0,

View File

@@ -83,4 +83,13 @@
#include INC_GLUE(memlayout.h)
#if defined (__KERNEL__)
struct utcb {
u32 mr[MR_TOTAL]; /* MRs that are mapped to real registers */
u32 saved_tag; /* Saved tag field for stacked ipcs */
u32 saved_sender; /* Saved sender field for stacked ipcs */
u32 mr_rest[MR_REST]; /* Complete the utcb for up to 64 words */
};
#endif
#endif /* __GLUE_ARM_MESSAGE_H__ */