label: .asciz msg; \
.popsection
+#define ASM_INT(label, val) \
+ .p2align 2; \
+label: .long (val); \
+ .size label, . - label; \
+ .type label, %object
+
#endif /* __ARM_ASM_DEFNS_H__ */
/*
* Local variables:
4: .p2align 2 ; \
.popsection
+#define ASM_INT(label, val) \
+ .p2align 2; \
+label: .long (val); \
+ .size label, . - label; \
+ .type label, @object
+
#endif /* __X86_ASM_DEFNS_H__ */
$(AV_H_FILES): $(AV_H_DEPEND)
$(CONFIG_SHELL) policy/mkaccess_vector.sh $(AWK) $(AV_H_DEPEND)
-obj-$(CONFIG_XSM_FLASK_POLICY) += policy.o
+obj-bin-$(CONFIG_XSM_FLASK_POLICY) += flask-policy.o
+flask-policy.o: policy.bin
FLASK_BUILD_DIR := $(CURDIR)
POLICY_SRC := $(FLASK_BUILD_DIR)/xenpolicy-$(XEN_FULLVERSION)
$(MAKE) -f $(XEN_ROOT)/tools/flask/policy/Makefile.common -C $(XEN_ROOT)/tools/flask/policy FLASK_BUILD_DIR=$(FLASK_BUILD_DIR)
cmp -s $(POLICY_SRC) $@ || cp $(POLICY_SRC) $@
-policy.c: policy.bin gen-policy.py
- $(PYTHON) gen-policy.py < $< > $@
-
.PHONY: clean
clean::
rm -f $(ALL_H_FILES) *.o $(DEPS_RM) policy.* $(POLICY_SRC)
--- /dev/null
+#include <asm/asm_defns.h>
+
+ .section .init.rodata, "a", %progbits
+
+/* const unsigned char xsm_flask_init_policy[] __initconst */
+ .global xsm_flask_init_policy
+xsm_flask_init_policy:
+ .incbin "policy.bin"
+.Lend:
+
+ .type xsm_flask_init_policy, %object
+ .size xsm_flask_init_policy, . - xsm_flask_init_policy
+
+/* const unsigned int __initconst xsm_flask_init_policy_size */
+ .global xsm_flask_init_policy_size
+ ASM_INT(xsm_flask_init_policy_size, .Lend - xsm_flask_init_policy)
+++ /dev/null
-#!/usr/bin/env python
-import sys
-
-policy_size = 0
-
-sys.stdout.write("""
-/* This file is autogenerated by gen_policy.py */
-#include <xen/init.h>
-#include <xsm/xsm.h>
-
-const unsigned char xsm_flask_init_policy[] __initconst = {
-""")
-
-for char in sys.stdin.read():
- sys.stdout.write(" 0x%02x," % ord(char))
- policy_size = policy_size + 1
- if policy_size % 13 == 0:
- sys.stdout.write("\n")
-
-sys.stdout.write("""
-};
-const unsigned int __initconst xsm_flask_init_policy_size = %d;
-""" % policy_size)