aboutsummaryrefslogtreecommitdiffstats
path: root/xen/include
diff options
context:
space:
mode:
Diffstat (limited to 'xen/include')
-rw-r--r--xen/include/xeno/dom0_ops.h34
-rw-r--r--xen/include/xeno/sched.h7
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,