aboutsummaryrefslogtreecommitdiff
path: root/drivers/lguest/lg.h
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-01-07 11:05:34 -0200
committerRusty Russell <rusty@rustcorp.com.au>2008-01-30 22:50:12 +1100
commit66686c2ab08feb721ca4d98285fba64acdf6017f (patch)
treebae76c0e0dc78809abc83b8f0dc9f84dca702de0 /drivers/lguest/lg.h
parentfc708b3e407dfd2e12ba9a6cf35bd0bffad1796d (diff)
lguest: per-vcpu lguest task management
lguest uses tasks to control its running behaviour (like sending breaks, controlling halted state, etc). In a per-vcpu environment, each vcpu will have its own underlying task. So this patch makes the infrastructure for that possible Signed-off-by: Glauber de Oliveira Costa <gcosta@redhat.com> Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Diffstat (limited to 'drivers/lguest/lg.h')
-rw-r--r--drivers/lguest/lg.h14
1 files changed, 7 insertions, 7 deletions
diff --git a/drivers/lguest/lg.h b/drivers/lguest/lg.h
index d08b85342b9..e7123fa6127 100644
--- a/drivers/lguest/lg.h
+++ b/drivers/lguest/lg.h
@@ -43,6 +43,8 @@ struct lguest;
struct lg_cpu {
unsigned int id;
struct lguest *lg;
+ struct task_struct *tsk;
+ struct mm_struct *mm; /* == tsk->mm, but that becomes NULL on exit */
/* At end of a page shared mapped over lguest_pages in guest. */
unsigned long regs_page;
@@ -55,6 +57,11 @@ struct lg_cpu {
/* Virtual clock device */
struct hrtimer hrt;
+ /* Do we need to stop what we're doing and return to userspace? */
+ int break_out;
+ wait_queue_head_t break_wq;
+ int halted;
+
/* Pending virtual interrupts */
DECLARE_BITMAP(irqs_pending, LGUEST_IRQS);
@@ -65,8 +72,6 @@ struct lg_cpu {
struct lguest
{
struct lguest_data __user *lguest_data;
- struct task_struct *tsk;
- struct mm_struct *mm; /* == tsk->mm, but that becomes NULL on exit */
struct lg_cpu cpus[NR_CPUS];
unsigned int nr_cpus;
@@ -76,15 +81,10 @@ struct lguest
void __user *mem_base;
unsigned long kernel_address;
u32 cr2;
- int halted;
int ts;
u32 esp1;
u8 ss1;
- /* Do we need to stop what we're doing and return to userspace? */
- int break_out;
- wait_queue_head_t break_wq;
-
/* Bitmap of what has changed: see CHANGED_* above. */
int changed;
struct lguest_pages *last_pages;