aboutsummaryrefslogtreecommitdiffstats
path: root/tools/flask/libflask
diff options
context:
space:
mode:
authorDaniel De Graaf <dgdegra@tycho.nsa.gov>2012-02-06 05:03:32 -0800
committerDaniel De Graaf <dgdegra@tycho.nsa.gov>2012-02-06 05:03:32 -0800
commitde9eedb0d2fec5003e528c8d8b0f772a587c6049 (patch)
treeb3d9016db22e79d1df824a6318abbb4e819cd7b1 /tools/flask/libflask
parent52ff92ec89ea79108bf3347b19eb5d35fac9d2e1 (diff)
downloadxen-de9eedb0d2fec5003e528c8d8b0f772a587c6049.tar.gz
xen-de9eedb0d2fec5003e528c8d8b0f772a587c6049.tar.bz2
xen-de9eedb0d2fec5003e528c8d8b0f772a587c6049.zip
tools/flask: remove libflask
This library has been deprecated since July 2010; remove the in-tree users and library. Signed-off-by: Daniel De Graaf <dgdegra@tycho.nsa.gov> Committed-by: Keir Fraser <keir@xen.org>
Diffstat (limited to 'tools/flask/libflask')
-rw-r--r--tools/flask/libflask/Makefile58
-rw-r--r--tools/flask/libflask/flask_op.c559
-rw-r--r--tools/flask/libflask/include/libflask.h57
3 files changed, 0 insertions, 674 deletions
diff --git a/tools/flask/libflask/Makefile b/tools/flask/libflask/Makefile
deleted file mode 100644
index 12c1c90770..0000000000
--- a/tools/flask/libflask/Makefile
+++ /dev/null
@@ -1,58 +0,0 @@
-MAJOR = 1.0
-MINOR = 0
-
-XEN_ROOT = $(CURDIR)/../../..
-include $(XEN_ROOT)/tools/Rules.mk
-
-SRCS :=
-SRCS += flask_op.c
-
-CFLAGS += -Werror
-CFLAGS += -fno-strict-aliasing
-CFLAGS += -I./include $(CFLAGS_libxenctrl) $(CFLAGS_xeninclude)
-
-LIB_OBJS := $(patsubst %.c,%.o,$(SRCS))
-PIC_OBJS := $(patsubst %.c,%.opic,$(SRCS))
-
-LIB := libflask.a
-LIB += libflask.so libflask.so.$(MAJOR) libflask.so.$(MAJOR).$(MINOR)
-
-.PHONY: all
-all: build
-
-.PHONY: build
-build:
- $(MAKE) $(LIB)
-
-.PHONY: install
-install: build
- $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
- $(INSTALL_DIR) $(DESTDIR)$(INCLUDEDIR)
- $(INSTALL_PROG) libflask.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)
- $(INSTALL_DATA) libflask.a $(DESTDIR)$(LIBDIR)
- ln -sf libflask.so.$(MAJOR).$(MINOR) $(DESTDIR)$(LIBDIR)/libflask.so.$(MAJOR)
- ln -sf libflask.so.$(MAJOR) $(DESTDIR)$(LIBDIR)/libflask.so
- $(INSTALL_DATA) include/libflask.h $(DESTDIR)$(INCLUDEDIR)/xen/xsm
-
-.PHONY: TAGS
-TAGS:
- etags -t *.c *.h
-
-.PHONY: clean
-clean:
- rm -rf *.a *.so* *.o *.opic *.rpm $(LIB) *~ $(DEPS) xen
-
-# libflask
-
-libflask.a: $(LIB_OBJS)
- $(AR) rc $@ $^
-
-libflask.so: libflask.so.$(MAJOR)
- ln -sf $< $@
-libflask.so.$(MAJOR): libflask.so.$(MAJOR).$(MINOR)
- ln -sf $< $@
-
-libflask.so.$(MAJOR).$(MINOR): $(PIC_OBJS)
- $(CC) $(LDFLAGS) -Wl,$(SONAME_LDFLAG) -Wl,libflask.so.$(MAJOR) $(SHLIB_LDFLAGS) -o $@ $^ $(LDLIBS_libxenctrl)
-
--include $(DEPS)
diff --git a/tools/flask/libflask/flask_op.c b/tools/flask/libflask/flask_op.c
deleted file mode 100644
index 412a05d7c5..0000000000
--- a/tools/flask/libflask/flask_op.c
+++ /dev/null
@@ -1,559 +0,0 @@
-/*
- *
- * 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.
- */
-
-#include <unistd.h>
-#include <stdio.h>
-#include <errno.h>
-#include <fcntl.h>
-#include <string.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <stdlib.h>
-#include <stdint.h>
-#include <sys/ioctl.h>
-#include <libflask.h>
-
-int flask_load(xc_interface *xc_handle, char *buf, uint32_t size)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_LOAD;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- return 0;
-}
-
-int flask_context_to_sid(xc_interface *xc_handle, char *buf, uint32_t size, uint32_t *sid)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_CONTEXT_TO_SID;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- sscanf(buf, "%u", sid);
-
- return 0;
-}
-
-int flask_sid_to_context(xc_interface *xc_handle, int sid, char *buf, uint32_t size)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_SID_TO_CONTEXT;
- op.buf = buf;
- op.size = size;
-
- snprintf(buf, size, "%u", sid);
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- return 0;
-}
-
-int flask_getenforce(xc_interface *xc_handle)
-{
- int err;
- flask_op_t op;
- char buf[20];
- int size = 20;
- int mode;
-
- op.cmd = FLASK_GETENFORCE;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- sscanf(buf, "%i", &mode);
-
- return mode;
-}
-
-int flask_setenforce(xc_interface *xc_handle, int mode)
-{
- int err;
- flask_op_t op;
- char buf[20];
- int size = 20;
-
- op.cmd = FLASK_SETENFORCE;
- op.buf = buf;
- op.size = size;
-
- snprintf(buf, size, "%i", mode);
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- return 0;
-}
-
-int flask_getbool_byid(xc_interface *xc_handle, int id, char *name, int *curr, int *pend)
-{
- flask_op_t op;
- char buf[255];
- int rv;
-
- op.cmd = FLASK_GETBOOL2;
- op.buf = buf;
- op.size = 255;
-
- snprintf(buf, sizeof buf, "%i", id);
-
- rv = xc_flask_op(xc_handle, &op);
-
- if ( rv )
- return rv;
-
- sscanf(buf, "%i %i %s", curr, pend, name);
-
- return rv;
-}
-
-int flask_getbool_byname(xc_interface *xc_handle, char *name, int *curr, int *pend)
-{
- flask_op_t op;
- char buf[255];
- int rv;
-
- op.cmd = FLASK_GETBOOL_NAMED;
- op.buf = buf;
- op.size = 255;
-
- strncpy(buf, name, op.size);
-
- rv = xc_flask_op(xc_handle, &op);
-
- if ( rv )
- return rv;
-
- sscanf(buf, "%i %i", curr, pend);
-
- return rv;
-}
-
-int flask_setbool(xc_interface *xc_handle, char *name, int value, int commit)
-{
- flask_op_t op;
- char buf[255];
- int size = 255;
-
- op.cmd = FLASK_SETBOOL_NAMED;
- op.buf = buf;
- op.size = size;
-
- snprintf(buf, size, "%s %i %i", name, value, commit);
-
- return xc_flask_op(xc_handle, &op);
-}
-
-int flask_add_pirq(xc_interface *xc_handle, unsigned int pirq, char *scontext)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *pirq_s = OCON_PIRQ_STR;
- int size = INITCONTEXTLEN + strlen(pirq_s) + (sizeof(unsigned int)) +
- (sizeof(char) * 3);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_ADD_OCONTEXT;
- snprintf(buf, size, "%s %255s %u", pirq_s, scontext, pirq);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_add_ioport(xc_interface *xc_handle, unsigned long low, unsigned long high,
- char *scontext)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *ioport = OCON_IOPORT_STR;
- int size = INITCONTEXTLEN + strlen(ioport) +
- (sizeof(unsigned long) * 2) + (sizeof(char) * 4);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_ADD_OCONTEXT;
- snprintf(buf, size, "%s %255s %lu %lu", ioport, scontext, low, high);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_add_iomem(xc_interface *xc_handle, unsigned long low, unsigned long high,
- char *scontext)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *iomem = OCON_IOMEM_STR;
- int size = INITCONTEXTLEN + strlen(iomem) +
- (sizeof(unsigned long) * 2) + (sizeof(char) * 4);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_ADD_OCONTEXT;
- snprintf(buf, size, "%s %255s %lu %lu", iomem, scontext, low, high);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_add_device(xc_interface *xc_handle, unsigned long device, char *scontext)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *dev = OCON_DEVICE_STR;
- int size = INITCONTEXTLEN + strlen(dev) + (sizeof(unsigned long)) +
- (sizeof(char) * 3);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_ADD_OCONTEXT;
- snprintf(buf, size, "%s %255s %lu", dev, scontext, device);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_del_pirq(xc_interface *xc_handle, unsigned int pirq)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *pirq_s = OCON_PIRQ_STR;
- int size = strlen(pirq_s) + (sizeof(unsigned int)) +
- (sizeof(char) * 2);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_DEL_OCONTEXT;
- snprintf(buf, size, "%s %u", pirq_s, pirq);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_del_ioport(xc_interface *xc_handle, unsigned long low, unsigned long high)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *ioport = OCON_IOPORT_STR;
- int size = strlen(ioport) + (sizeof(unsigned long) * 2) +
- (sizeof(char) * 3);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_DEL_OCONTEXT;
- snprintf(buf, size, "%s %lu %lu", ioport, low, high);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_del_iomem(xc_interface *xc_handle, unsigned long low, unsigned long high)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *iomem = OCON_IOMEM_STR;
- int size = strlen(iomem) + (sizeof(unsigned long) * 2) +
- (sizeof(char) * 3);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_DEL_OCONTEXT;
- snprintf(buf, size, "%s %lu %lu", iomem, low, high);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_del_device(xc_interface *xc_handle, unsigned long device)
-{
- int err;
- flask_op_t op;
- char *buf;
- char *dev = OCON_DEVICE_STR;
- int size = strlen(dev) + (sizeof(unsigned long)) + (sizeof(char) * 2);
-
- if ( (buf = (char *) malloc(size)) == NULL )
- return -ENOMEM;
- memset(buf, 0, size);
-
- op.cmd = FLASK_DEL_OCONTEXT;
- snprintf(buf, size, "%s %lu", dev, device);
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- free(buf);
- return 0;
-
-}
-
-int flask_access(xc_interface *xc_handle, const char *scon, const char *tcon,
- u_int16_t tclass, u_int32_t req,
- u_int32_t *allowed, u_int32_t *decided,
- u_int32_t *auditallow, u_int32_t *auditdeny,
- u_int32_t *seqno)
-{
-/* maximum number of digits in a 16-bit decimal number: */
-#define MAX_SHORT_DEC_LEN 5
-
- char *buf;
- int bufLen;
- int err;
- flask_op_t op;
- u_int32_t dummy_allowed;
- u_int32_t dummy_decided;
- u_int32_t dummy_auditallow;
- u_int32_t dummy_auditdeny;
- u_int32_t dummy_seqno;
-
- if (!allowed)
- allowed = &dummy_allowed;
- if (!decided)
- decided = &dummy_decided;
- if (!auditallow)
- auditallow = &dummy_auditallow;
- if (!auditdeny)
- auditdeny = &dummy_auditdeny;
- if (!seqno)
- seqno = &dummy_seqno;
-
- if (!scon)
- return -EINVAL;
- if (!tcon)
- return -EINVAL;
-
- bufLen = strlen(scon) + 1 + strlen(tcon) + 1 +
- MAX_SHORT_DEC_LEN + 1 +
- sizeof(req)*2 + 1;
- buf = malloc(bufLen);
- snprintf(buf, bufLen, "%s %s %hu %x", scon, tcon, tclass, req);
-
- op.cmd = FLASK_ACCESS;
- op.buf = buf;
- op.size = strlen(buf)+1;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- if (sscanf(op.buf, "%x %x %x %x %u",
- allowed, decided,
- auditallow, auditdeny,
- seqno) != 5) {
- err = -EILSEQ;
- }
-
- err = ((*allowed & req) == req)? 0 : -EPERM;
-
- return err;
-
-}
-
-int flask_avc_hashstats(xc_interface *xc_handle, char *buf, int size)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_AVC_HASHSTATS;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- return 0;
-}
-
-int flask_avc_cachestats(xc_interface *xc_handle, char *buf, int size)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_AVC_CACHESTATS;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- return 0;
-}
-
-int flask_policyvers(xc_interface *xc_handle, char *buf, int size)
-{
- int err;
- flask_op_t op;
-
- op.cmd = FLASK_POLICYVERS;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- {
- free(buf);
- return err;
- }
-
- return 0;
-}
-
-int flask_getavc_threshold(xc_interface *xc_handle)
-{
- int err;
- flask_op_t op;
- char buf[20];
- int size = 20;
- int threshold;
-
- op.cmd = FLASK_GETAVC_THRESHOLD;
- op.buf = buf;
- op.size = size;
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- sscanf(buf, "%i", &threshold);
-
- return threshold;
-}
-
-int flask_setavc_threshold(xc_interface *xc_handle, int threshold)
-{
- int err;
- flask_op_t op;
- char buf[20];
- int size = 20;
-
- op.cmd = FLASK_SETAVC_THRESHOLD;
- op.buf = buf;
- op.size = size;
-
- snprintf(buf, size, "%i", threshold);
-
- if ( (err = xc_flask_op(xc_handle, &op)) != 0 )
- return err;
-
- return 0;
-}
diff --git a/tools/flask/libflask/include/libflask.h b/tools/flask/libflask/include/libflask.h
deleted file mode 100644
index b8a6ca934e..0000000000
--- a/tools/flask/libflask/include/libflask.h
+++ /dev/null
@@ -1,57 +0,0 @@
-/*
- *
- * 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 __LIBFLASK_H__
-#define __LIBFLASK_H__
-
-#include <stdint.h>
-#include <xen/xen.h>
-#include <xen/xsm/flask_op.h>
-#include <xenctrl.h>
-
-int flask_load(xc_interface *xc_handle, char *buf, uint32_t size);
-int flask_context_to_sid(xc_interface *xc_handle, char *buf, uint32_t size, uint32_t *sid);
-int flask_sid_to_context(xc_interface *xc_handle, int sid, char *buf, uint32_t size);
-int flask_getenforce(xc_interface *xc_handle);
-int flask_setenforce(xc_interface *xc_handle, int mode);
-int flask_getbool_byid(xc_interface *xc_handle, int id, char *name, int *curr, int *pend);
-int flask_getbool_byname(xc_interface *xc_handle, char *name, int *curr, int *pend);
-int flask_setbool(xc_interface *xc_handle, char *name, int value, int commit);
-int flask_add_pirq(xc_interface *xc_handle, unsigned int pirq, char *scontext);
-int flask_add_ioport(xc_interface *xc_handle, unsigned long low, unsigned long high,
- char *scontext);
-int flask_add_iomem(xc_interface *xc_handle, unsigned long low, unsigned long high,
- char *scontext);
-int flask_add_device(xc_interface *xc_handle, unsigned long device, char *scontext);
-int flask_del_pirq(xc_interface *xc_handle, unsigned int pirq);
-int flask_del_ioport(xc_interface *xc_handle, unsigned long low, unsigned long high);
-int flask_del_iomem(xc_interface *xc_handle, unsigned long low, unsigned long high);
-int flask_del_device(xc_interface *xc_handle, unsigned long device);
-int flask_access(xc_interface *xc_handle, const char *scon, const char *tcon,
- u_int16_t tclass, u_int32_t req,
- u_int32_t *allowed, u_int32_t *decided,
- u_int32_t *auditallow, u_int32_t *auditdeny,
- u_int32_t *seqno);
-int flask_avc_cachestats(xc_interface *xc_handle, char *buf, int size);
-int flask_policyvers(xc_interface *xc_handle, char *buf, int size);
-int flask_avc_hashstats(xc_interface *xc_handle, char *buf, int size);
-int flask_getavc_threshold(xc_interface *xc_handle);
-int flask_setavc_threshold(xc_interface *xc_handle, int threshold);
-#define flask_add_single_ioport(x, l, s) flask_add_ioport(x, l, l, s)
-#define flask_add_single_iomem(x, l, s) flask_add_iomem(x, l, l, s)
-#define flask_del_single_ioport(x, l) flask_del_ioport(x, l, l)
-#define flask_del_single_iomem(x, l) flask_del_iomem(x, l, l);
-
-#define OCON_PIRQ_STR "pirq"
-#define OCON_IOPORT_STR "ioport"
-#define OCON_IOMEM_STR "iomem"
-#define OCON_DEVICE_STR "pcidevice"
-#define INITCONTEXTLEN 256
-#endif /* __LIBFLASK_H__ */