diff options
Diffstat (limited to 'xen/include')
-rw-r--r-- | xen/include/xeno/dom0_ops.h | 34 | ||||
-rw-r--r-- | xen/include/xeno/sched.h | 7 |
2 files changed, 34 insertions, 7 deletions
diff --git a/xen/include/xeno/dom0_ops.h b/xen/include/xeno/dom0_ops.h index ea3f829d73..8737e192aa 100644 --- a/xen/include/xeno/dom0_ops.h +++ b/xen/include/xeno/dom0_ops.h @@ -12,14 +12,18 @@ #ifndef __DOM0_OPS_H__ #define __DOM0_OPS_H__ -#define DOM0_NEWDOMAIN 0 -#define DOM0_KILLDOMAIN 1 -#define DOM0_GETMEMLIST 2 -#define DOM0_STARTDOM 4 -#define DOM0_BVTCTL 6 -#define DOM0_ADJUSTDOM 7 +#define DOM0_GETMEMLIST 2 +#define DOM0_BVTCTL 6 +#define DOM0_ADJUSTDOM 7 +#define DOM0_CREATEDOMAIN 8 +#define DOM0_DESTROYDOMAIN 9 +#define DOM0_STARTDOMAIN 10 +#define DOM0_STOPDOMAIN 11 +#define DOM0_GETDOMAININFO 12 +#define DOM0_BUILDDOMAIN 13 #define MAX_CMD_LEN 256 +#define MAX_DOMAIN_NAME 16 typedef struct dom0_newdomain_st { @@ -27,6 +31,7 @@ typedef struct dom0_newdomain_st unsigned int memory_kb; unsigned int num_vifs; // temporary unsigned long pg_head; // return parameter + char name[MAX_DOMAIN_NAME]; } dom0_newdomain_t; typedef struct dom0_killdomain_st @@ -69,6 +74,20 @@ typedef struct dom0_adjustdom_st unsigned long warpu; /* unwarp time requirement */ } dom0_adjustdom_t; +typedef struct dom0_getdominfo_st +{ + unsigned int domain; /* All returns except domain */ + char name[MAX_DOMAIN_NAME]; + int processor; + int has_cpu; + int state; + int hyp_events; + unsigned long mcu_advance; + unsigned long pg_head; + unsigned int tot_pages; +} dom0_getdominfo_t; + + typedef struct dom0_op_st { unsigned long cmd; @@ -80,7 +99,8 @@ typedef struct dom0_op_st dom0_bvtctl_t bvtctl; dom0_adjustdom_t adjustdom; dom_meminfo_t meminfo; - } + dom0_getdominfo_t getdominfo; + } u; } dom0_op_t; diff --git a/xen/include/xeno/sched.h b/xen/include/xeno/sched.h index d29c7f9e49..fe4c49736e 100644 --- a/xen/include/xeno/sched.h +++ b/xen/include/xeno/sched.h @@ -16,6 +16,8 @@ #include <xeno/time.h> #include <xeno/ac_timer.h> +#define MAX_DOMAIN_NAME 16 + extern unsigned long volatile jiffies; extern rwlock_t tasklist_lock; @@ -51,6 +53,7 @@ extern struct mm_struct init_mm; #define _HYP_EVENT_NEED_RESCHED 0 #define _HYP_EVENT_DIE 1 +#define _HYP_EVENT_STOP 2 #define PF_DONEFPUINIT 0x1 /* Has the FPU been initialised for this task? */ #define PF_USEDFPU 0x2 /* Has this task used the FPU since last save? */ @@ -141,6 +144,8 @@ struct task_struct 0-0xFFFFFFFF for kernel-thread */ + char name[MAX_DOMAIN_NAME]; + /* * active_mm stays for now. It's entangled in the tricky TLB flushing * stuff which I haven't addressed yet. It stays until I'm man enough @@ -223,6 +228,8 @@ extern void __kill_domain(struct task_struct *p); extern void kill_domain(void); extern void kill_domain_with_errmsg(const char *err); extern long kill_other_domain(unsigned int dom, int force); +extern void stop_domain(void); +extern long stop_other_domain(unsigned int dom); /* arch/process.c */ void new_thread(struct task_struct *p, |