Commit 173b9e47 authored by Charlie Jacobsen's avatar Charlie Jacobsen Committed by Vikram Narayanan

Finished ipc send, recv, call, reply.

parent 5b42e788
......@@ -274,18 +274,29 @@ static inline int __lcd_cnode_is_sync_ep(struct cnode *cnode)
struct sync_endpoint {
struct list_head senders;
struct list_head receivers;
struct list_head proxies;
struct mutex lock;
};
struct sync_endpoint_proxy {
struct lcd *parent;
struct sync_endpoint *endpoint;
struct list_head lcd_active_list;
struct list_head endpoint_active_list;
struct list_head proxies;
};
/**
* Create a synchronous end point, and install it in t's cspace
* Create a synchronous end point, and install it in lcd's cspace
* at location cptr.
*/
int lcd_mk_sync_endpoint(struct task_struct *t, cptr_t cptr);
int lcd_mk_sync_endpoint(struct lcd *lcd, cptr_t cptr);
/**
* Remove synchronous end point identified by cptr in t's cspace.
* Remove synchronous end point identified by cptr in lcd's cspace.
*/
int lcd_rm_sync_endpoint(struct task_struct *t, cptr_t cptr);
int lcd_rm_sync_endpoint(struct lcd *lcd, cptr_t cptr);
#endif /* LCD_PROTOTYPE_API_DEFS_H */
This diff is collapsed.
......@@ -12,16 +12,19 @@
#define LCD_NUM_BOOT_CPTRS 8
struct cspace;
struct dstore;
typedef u64 cptr_t;
struct sync_endpoint;
struct lcd {
/*
* Not accessible in lcd
*/
struct task_struct *parent;
u64 badge;
struct cspace *cspace;
struct list_head
struct list_head sending_eps;
struct list_head recving_eps;
int making_call;
/*
* Accessible in lcd
*/
......@@ -33,10 +36,9 @@ struct lcd {
u8 max_valid_reg_idx;
u8 max_valid_out_cap_reg_idx;
u8 max_valid_in_cap_reg_idx;
cptr_t reply_cap;
u64 reply_badge;
cptr_t call_endpoint_cap;
cptr_t reply_endpoint_cap;
} utcb;
struct dstore *dstore;
};
#endif /* LCD_LCD_H */
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment