X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=drivers%2Flguest%2Flg.h;h=c9d1dc29490d374b5185daeab9789b148e10cf6f;hb=48245cc0708d49d1d0566b9fa617ad6c5f4c6934;hp=269116eee85f93944485270e06933c8653861ee3;hpb=d941cf5e373c356723fa648b9f0302a11c9b1770;p=linux-2.6 diff --git a/drivers/lguest/lg.h b/drivers/lguest/lg.h index 269116eee8..c9d1dc2949 100644 --- a/drivers/lguest/lg.h +++ b/drivers/lguest/lg.h @@ -12,7 +12,6 @@ #include #include #include -#include #include #include #include @@ -52,9 +51,9 @@ struct lguest_dma_info struct list_head list; union futex_key key; unsigned long dmas; + struct lguest *owner; u16 next_dma; u16 num_dmas; - u16 guestid; u8 interrupt; /* 0 when not registered */ }; @@ -141,8 +140,10 @@ struct lguest struct lguest_data __user *lguest_data; struct task_struct *tsk; struct mm_struct *mm; /* == tsk->mm, but that becomes NULL on exit */ - u16 guestid; u32 pfn_limit; + /* This provides the offset to the base of guest-physical + * memory in the Launcher. */ + void __user *mem_base; u32 page_offset; u32 cr2; int halted; @@ -193,7 +194,6 @@ struct lguest DECLARE_BITMAP(irqs_pending, LGUEST_IRQS); }; -extern struct lguest lguests[]; extern struct mutex lguest_lock; /* core.c: */ @@ -201,7 +201,6 @@ u32 lgread_u32(struct lguest *lg, unsigned long addr); void lgwrite_u32(struct lguest *lg, unsigned long addr, u32 val); void lgread(struct lguest *lg, void *buf, unsigned long addr, unsigned len); void lgwrite(struct lguest *lg, unsigned long, const void *buf, unsigned len); -int find_free_guest(void); int lguest_address_ok(const struct lguest *lg, unsigned long addr, unsigned long len); int run_guest(struct lguest *lg, unsigned long __user *user); @@ -256,6 +255,7 @@ unsigned long get_dma_buffer(struct lguest *lg, unsigned long key, /* hypercalls.c: */ void do_hypercalls(struct lguest *lg); +void write_timestamp(struct lguest *lg); /*L:035 * Let's step aside for the moment, to study one important routine that's used