aboutsummaryrefslogtreecommitdiffstats
path: root/xen/xsm/flask/include
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2011-12-18 14:33:48 +0000
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2011-12-18 14:33:48 +0000
commit875756ca34fabc7243c4a682ffd7008710a907e2 (patch)
treec4992e378b41a03f691fe756a5c3343b62381db9 /xen/xsm/flask/include
parent4c1b911bbcd97fb68b4a9e0903a6644e50adda01 (diff)
downloadxen-875756ca34fabc7243c4a682ffd7008710a907e2.tar.gz
xen-875756ca34fabc7243c4a682ffd7008710a907e2.tar.bz2
xen-875756ca34fabc7243c4a682ffd7008710a907e2.zip
xsm: Add missing access checks
Actions requiring IS_PRIV should also require some XSM access control in order for XSM to be useful in confining multiple privileged domains. Add XSM hooks for new hypercalls and sub-commands that are under IS_PRIV but not currently under any access checks. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov>
Diffstat (limited to 'xen/xsm/flask/include')
-rw-r--r--xen/xsm/flask/include/av_perm_to_string.h14
-rw-r--r--xen/xsm/flask/include/av_permissions.h14
2 files changed, 28 insertions, 0 deletions
diff --git a/xen/xsm/flask/include/av_perm_to_string.h b/xen/xsm/flask/include/av_perm_to_string.h
index 56572a76b6..85cbffc817 100644
--- a/xen/xsm/flask/include/av_perm_to_string.h
+++ b/xen/xsm/flask/include/av_perm_to_string.h
@@ -24,6 +24,11 @@
S_(SECCLASS_XEN, XEN__DEBUG, "debug")
S_(SECCLASS_XEN, XEN__GETCPUINFO, "getcpuinfo")
S_(SECCLASS_XEN, XEN__HEAP, "heap")
+ S_(SECCLASS_XEN, XEN__PM_OP, "pm_op")
+ S_(SECCLASS_XEN, XEN__MCA_OP, "mca_op")
+ S_(SECCLASS_XEN, XEN__LOCKPROF, "lockprof")
+ S_(SECCLASS_XEN, XEN__CPUPOOL_OP, "cpupool_op")
+ S_(SECCLASS_XEN, XEN__SCHED_OP, "sched_op")
S_(SECCLASS_DOMAIN, DOMAIN__SETVCPUCONTEXT, "setvcpucontext")
S_(SECCLASS_DOMAIN, DOMAIN__PAUSE, "pause")
S_(SECCLASS_DOMAIN, DOMAIN__UNPAUSE, "unpause")
@@ -52,6 +57,9 @@
S_(SECCLASS_DOMAIN, DOMAIN__SETEXTVCPUCONTEXT, "setextvcpucontext")
S_(SECCLASS_DOMAIN, DOMAIN__GETVCPUEXTSTATE, "getvcpuextstate")
S_(SECCLASS_DOMAIN, DOMAIN__SETVCPUEXTSTATE, "setvcpuextstate")
+ S_(SECCLASS_DOMAIN, DOMAIN__GETPODTARGET, "getpodtarget")
+ S_(SECCLASS_DOMAIN, DOMAIN__SETPODTARGET, "setpodtarget")
+ S_(SECCLASS_DOMAIN, DOMAIN__SET_MISC_INFO, "set_misc_info")
S_(SECCLASS_HVM, HVM__SETHVMC, "sethvmc")
S_(SECCLASS_HVM, HVM__GETHVMC, "gethvmc")
S_(SECCLASS_HVM, HVM__SETPARAM, "setparam")
@@ -62,6 +70,9 @@
S_(SECCLASS_HVM, HVM__BIND_IRQ, "bind_irq")
S_(SECCLASS_HVM, HVM__CACHEATTR, "cacheattr")
S_(SECCLASS_HVM, HVM__TRACKDIRTYVRAM, "trackdirtyvram")
+ S_(SECCLASS_HVM, HVM__HVMCTL, "hvmctl")
+ S_(SECCLASS_HVM, HVM__MEM_EVENT, "mem_event")
+ S_(SECCLASS_HVM, HVM__MEM_SHARING, "mem_sharing")
S_(SECCLASS_EVENT, EVENT__BIND, "bind")
S_(SECCLASS_EVENT, EVENT__SEND, "send")
S_(SECCLASS_EVENT, EVENT__STATUS, "status")
@@ -103,6 +114,9 @@
S_(SECCLASS_RESOURCE, RESOURCE__STAT_DEVICE, "stat_device")
S_(SECCLASS_RESOURCE, RESOURCE__ADD_DEVICE, "add_device")
S_(SECCLASS_RESOURCE, RESOURCE__REMOVE_DEVICE, "remove_device")
+ S_(SECCLASS_RESOURCE, RESOURCE__PLUG, "plug")
+ S_(SECCLASS_RESOURCE, RESOURCE__UNPLUG, "unplug")
+ S_(SECCLASS_RESOURCE, RESOURCE__SETUP, "setup")
S_(SECCLASS_SECURITY, SECURITY__COMPUTE_AV, "compute_av")
S_(SECCLASS_SECURITY, SECURITY__COMPUTE_CREATE, "compute_create")
S_(SECCLASS_SECURITY, SECURITY__COMPUTE_MEMBER, "compute_member")
diff --git a/xen/xsm/flask/include/av_permissions.h b/xen/xsm/flask/include/av_permissions.h
index 67511adae5..9e55a863a4 100644
--- a/xen/xsm/flask/include/av_permissions.h
+++ b/xen/xsm/flask/include/av_permissions.h
@@ -24,6 +24,11 @@
#define XEN__DEBUG 0x00400000UL
#define XEN__GETCPUINFO 0x00800000UL
#define XEN__HEAP 0x01000000UL
+#define XEN__PM_OP 0x02000000UL
+#define XEN__MCA_OP 0x04000000UL
+#define XEN__LOCKPROF 0x08000000UL
+#define XEN__CPUPOOL_OP 0x10000000UL
+#define XEN__SCHED_OP 0x20000000UL
#define DOMAIN__SETVCPUCONTEXT 0x00000001UL
#define DOMAIN__PAUSE 0x00000002UL
@@ -53,6 +58,9 @@
#define DOMAIN__SETEXTVCPUCONTEXT 0x02000000UL
#define DOMAIN__GETVCPUEXTSTATE 0x04000000UL
#define DOMAIN__SETVCPUEXTSTATE 0x08000000UL
+#define DOMAIN__GETPODTARGET 0x10000000UL
+#define DOMAIN__SETPODTARGET 0x20000000UL
+#define DOMAIN__SET_MISC_INFO 0x40000000UL
#define HVM__SETHVMC 0x00000001UL
#define HVM__GETHVMC 0x00000002UL
@@ -64,6 +72,9 @@
#define HVM__BIND_IRQ 0x00000080UL
#define HVM__CACHEATTR 0x00000100UL
#define HVM__TRACKDIRTYVRAM 0x00000200UL
+#define HVM__HVMCTL 0x00000400UL
+#define HVM__MEM_EVENT 0x00000800UL
+#define HVM__MEM_SHARING 0x00001000UL
#define EVENT__BIND 0x00000001UL
#define EVENT__SEND 0x00000002UL
@@ -110,6 +121,9 @@
#define RESOURCE__STAT_DEVICE 0x00000200UL
#define RESOURCE__ADD_DEVICE 0x00000400UL
#define RESOURCE__REMOVE_DEVICE 0x00000800UL
+#define RESOURCE__PLUG 0x00001000UL
+#define RESOURCE__UNPLUG 0x00002000UL
+#define RESOURCE__SETUP 0x00004000UL
#define SECURITY__COMPUTE_AV 0x00000001UL
#define SECURITY__COMPUTE_CREATE 0x00000002UL