summaryrefslogtreecommitdiff
path: root/src/dev/termdev/ptytermdev.cil
diff options
context:
space:
mode:
Diffstat (limited to 'src/dev/termdev/ptytermdev.cil')
-rw-r--r--src/dev/termdev/ptytermdev.cil125
1 files changed, 125 insertions, 0 deletions
diff --git a/src/dev/termdev/ptytermdev.cil b/src/dev/termdev/ptytermdev.cil
new file mode 100644
index 0000000..4349a93
--- /dev/null
+++ b/src/dev/termdev/ptytermdev.cil
@@ -0,0 +1,125 @@
+;; SPDX-FileCopyrightText: © 2023 Dominick Grift <dominick.grift@defensec.nl>
+;; SPDX-License-Identifier: Unlicense
+
+(block ptytermdev
+
+ (macro appendinherited_all_chr_files ((type ARG1))
+ (allow ARG1 typeattr appendinherited_chr_file)
+ (allowx ARG1 typeattr FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 typeattr IOCTLCONSOLE)
+ (allowx ARG1 typeattr IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 typeattr IOCTLVT))
+
+ (macro readwriteinherited_all_chr_files ((type ARG1))
+ (allow ARG1 typeattr readwriteinherited_chr_file)
+ (allowx ARG1 typeattr FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 typeattr IOCTLCONSOLE)
+ (allowx ARG1 typeattr IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 typeattr IOCTLVT))
+
+ (macro type ((type ARG1))
+ (typeattributeset typeattr ARG1))
+
+ (macro writeinherited_all_chr_files ((type ARG1))
+ (allow ARG1 typeattr writeinherited_chr_file)
+ (allowx ARG1 typeattr FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 typeattr IOCTLCONSOLE)
+ (allowx ARG1 typeattr IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 typeattr IOCTLVT))
+
+ (typeattribute typeattr)
+
+ (blockinherit .file.all_macro_template_chr_files)
+
+ (call .devpts.associate_fs (typeattr))
+
+ (call .termdev.type (typeattr))
+
+ (block base_template
+
+ (blockabstract base_template)
+
+ (context ptytermdev_context (.sys.id .sys.role ptytermdev lowlevelrange))
+
+ (type ptytermdev)
+ (call .ptytermdev.type (ptytermdev)))
+
+ (block macro_template_chr_files
+
+ (blockabstract macro_template_chr_files)
+
+ (macro append_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev append_chr_file))
+
+ (macro appendinherited_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev appendinherited_chr_file)
+ (allowx ARG1 ptytermdev FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 ptytermdev IOCTLCONSOLE)
+ (allowx ARG1 ptytermdev IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 ptytermdev IOCTLVT))
+
+ (macro create_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev create_chr_file))
+
+ (macro delete_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev delete_chr_file))
+
+ (macro manage_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev manage_chr_file))
+
+ (macro mapexecute_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev mapexecute_chr_file))
+
+ (macro read_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev read_chr_file))
+
+ (macro readinherited_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev readinherited_chr_file))
+
+ (macro readwrite_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev readwrite_chr_file))
+
+ (macro readwriteinherited_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev readwriteinherited_chr_file)
+ (allowx ARG1 ptytermdev FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 ptytermdev IOCTLCONSOLE)
+ (allowx ARG1 ptytermdev IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 ptytermdev IOCTLVT))
+
+ (macro relabel_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev relabel_chr_file))
+
+ (macro relabelfrom_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev relabelfrom_chr_file))
+
+ (macro relabelto_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev relabelto_chr_file))
+
+ (macro rename_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev rename_chr_file))
+
+ (macro write_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev write_chr_file))
+
+ (macro writeinherited_ptytermdev_chr_files ((type ARG1))
+ (allow ARG1 ptytermdev writeinherited_chr_file)
+ (allowx ARG1 ptytermdev FIOCLEX_FIONCLEX_CHRFILE)
+ (allowx ARG1 ptytermdev IOCTLCONSOLE)
+ (allowx ARG1 ptytermdev IOCTLTTY_NOT_TIOCSTI)
+ (allowx ARG1 ptytermdev IOCTLVT)))
+
+ (block template
+
+ (blockabstract template)
+
+ (blockinherit .ptytermdev.base_template)
+ (blockinherit .ptytermdev.macro_template_chr_files))
+
+ (block unconfined
+
+ (macro type ((type ARG1))
+ (typeattributeset typeattr ARG1))
+
+ (typeattribute typeattr)
+
+ (allow typeattr ptytermdev.typeattr (chr_file (not (execmod mounton))))))