$(INSTALL_DATA) libflask.a $(DESTDIR)/usr/$(LIBDIR)
ln -sf libflask.so.$(MAJOR).$(MINOR) $(DESTDIR)/usr/$(LIBDIR)/libflask.so.$(MAJOR)
ln -sf libflask.so.$(MAJOR) $(DESTDIR)/usr/$(LIBDIR)/libflask.so
- $(INSTALL_DATA) include/flask_op.h $(DESTDIR)/usr/include
+ $(INSTALL_DATA) include/flask.h $(DESTDIR)/usr/include
.PHONY: TAGS
TAGS:
#include <sys/types.h>
#include <sys/stat.h>
#include <stdlib.h>
+#include <stdint.h>
#include <sys/ioctl.h>
-
-#include <xc_private.h>
-
-#include <flask_op.h>
+#include <flask.h>
+#include <xenctrl.h>
int flask_load(int xc_handle, char *buf, int size)
{
op.buf = buf;
op.size = size;
- if ( (err = do_flask_op(xc_handle, &op)) != 0 )
+ if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
return err;
return 0;
op.buf = buf;
op.size = size;
- if ( (err = do_flask_op(xc_handle, &op)) != 0 )
+ if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
return err;
sscanf(buf, "%u", sid);
snprintf(buf, size, "%u", sid);
- if ( (err = do_flask_op(xc_handle, &op)) != 0 )
+ if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
return err;
return 0;
}
-
-int do_flask_op(int xc_handle, flask_op_t *op)
-{
- int ret = -1;
- DECLARE_HYPERCALL;
-
- hypercall.op = __HYPERVISOR_xsm_op;
- hypercall.arg[0] = (unsigned long)op;
-
- if ( mlock(op, sizeof(*op)) != 0 )
- {
- PERROR("Could not lock memory for Xen hypercall");
- goto out;
- }
-
- if ( (ret = do_xen_hypercall(xc_handle, &hypercall)) < 0 )
- {
- if ( errno == EACCES )
- fprintf(stderr, "XSM operation failed!\n");
- }
-
- safe_munlock(op, sizeof(*op));
-
- out:
- return ret;
-}
-
--- /dev/null
+/*
+ *
+ * Authors: Michael LeMay, <mdlemay@epoch.ncsc.mil>
+ * George Coker, <gscoker@alpha.ncsc.mil>
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2,
+ * as published by the Free Software Foundation.
+ */
+
+#ifndef __FLASK_H__
+#define __FLASK_H__
+
+#include <stdint.h>
+#include <xen/xen.h>
+#include <xen/xsm/flask_op.h>
+
+int flask_load(int xc_handle, char *buf, int size);
+int flask_context_to_sid(int xc_handle, char *buf, int size, uint32_t *sid);
+int flask_sid_to_context(int xc_handle, int sid, char *buf, int size);
+
+#endif /* __FLASK_H__ */
+++ /dev/null
-/*
- *
- * Authors: Michael LeMay, <mdlemay@epoch.ncsc.mil>
- * George Coker, <gscoker@alpha.ncsc.mil>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2,
- * as published by the Free Software Foundation.
- */
-
-#ifndef __FLASK_OP_H
-#define __FLASK_OP_H
-
-#define FLASK_LOAD 1
-#define FLASK_GETENFORCE 2
-#define FLASK_SETENFORCE 3
-#define FLASK_CONTEXT_TO_SID 4
-#define FLASK_SID_TO_CONTEXT 5
-#define FLASK_ACCESS 6
-#define FLASK_CREATE 7
-#define FLASK_RELABEL 8
-#define FLASK_USER 9
-#define FLASK_POLICYVERS 10
-#define FLASK_GETBOOL 11
-#define FLASK_SETBOOL 12
-#define FLASK_COMMITBOOLS 13
-#define FLASK_MLS 14
-#define FLASK_DISABLE 15
-#define FLASK_GETAVC_THRESHOLD 16
-#define FLASK_SETAVC_THRESHOLD 17
-#define FLASK_AVC_HASHSTATS 18
-#define FLASK_AVC_CACHESTATS 19
-#define FLASK_MEMBER 20
-
-typedef struct flask_op {
- int cmd;
- int size;
- char *buf;
-} flask_op_t;
-
-int flask_load(int xc_handle, char *buf, int size);
-int flask_context_to_sid(int xc_handle, char *buf, int size, uint32_t *sid);
-int flask_sid_to_context(int xc_handle, int sid, char *buf, int size);
-int do_flask_op(int xc_handle, flask_op_t *op);
-
-#endif
#include <sys/stat.h>
#include <string.h>
#include <unistd.h>
-
-#include <flask_op.h>
+#include <flask.h>
#define USE_MMAP
#include "vl.h"
#include <xenguest.h>
-#include <xc_private.h>
extern FILE *logfile;
CTRL_SRCS-y += xc_domain.c
CTRL_SRCS-y += xc_evtchn.c
CTRL_SRCS-y += xc_misc.c
-CTRL_SRCS-y += xc_acm.c
+CTRL_SRCS-y += xc_acm.c
+CTRL_SRCS-y += xc_flask.c
CTRL_SRCS-y += xc_physdev.c
CTRL_SRCS-y += xc_private.c
CTRL_SRCS-y += xc_sedf.c
--- /dev/null
+/******************************************************************************
+ * xc_flask.c
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, version 2 of the
+ * License.
+ */
+
+#include "xc_private.h"
+
+int xc_flask_op(int xc_handle, flask_op_t *op)
+{
+ int ret = -1;
+ DECLARE_HYPERCALL;
+
+ hypercall.op = __HYPERVISOR_xsm_op;
+ hypercall.arg[0] = (unsigned long)op;
+
+ if ( mlock(op, sizeof(*op)) != 0 )
+ {
+ PERROR("Could not lock memory for Xen hypercall");
+ goto out;
+ }
+
+ if ( (ret = do_xen_hypercall(xc_handle, &hypercall)) < 0 )
+ {
+ if ( errno == EACCES )
+ fprintf(stderr, "XSM operation failed!\n");
+ }
+
+ safe_munlock(op, sizeof(*op));
+
+ out:
+ return ret;
+}
+
+/*
+ * Local variables:
+ * mode: C
+ * c-set-style: "BSD"
+ * c-basic-offset: 4
+ * tab-width: 4
+ * indent-tabs-mode: nil
+ * End:
+ */
#include <xen/memory.h>
#include <xen/xsm/acm.h>
#include <xen/xsm/acm_ops.h>
+#include <xen/xsm/flask_op.h>
#ifdef __ia64__
#define XC_PAGE_SHIFT 14
int xc_acm_op(int xc_handle, int cmd, void *arg, unsigned long arg_size);
+int xc_flask_op(int xc_handle, flask_op_t *op);
+
/**************************
* GRANT TABLE OPERATIONS *
**************************/
#include <Python.h>
#include <xenctrl.h>
-
-#include <flask_op.h>
+#include <flask.h>
#define PKG "xen.lowlevel.flask"
#define CLS "flask"