Skip to content

Commit c9a802c

Browse files
committed
Add Linux LSM UAPI bindings
Include linux/lsm.h for Linux 6.8 and later so the general module exports lsm_ctx and the LSM ID, attribute, and flag constants on all 20 generated architectures. This adds raw UAPI definitions only. It does not add syscall wrappers or runtime behavior.
1 parent 3b15c17 commit c9a802c

21 files changed

Lines changed: 644 additions & 0 deletions

File tree

‎gen/modules/general.h‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,10 @@
4747
#include <linux/openat2.h>
4848
#endif
4949

50+
#if LINUX_VERSION_CODE >= KERNEL_VERSION(6,8,0)
51+
#include <linux/lsm.h>
52+
#endif
53+
5054
#if LINUX_VERSION_CODE >= KERNEL_VERSION(4,3,0)
5155
#include <linux/userfaultfd.h>
5256
#endif

‎src/aarch64/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -849,6 +849,15 @@ pub value: __u64,
849849
pub size: __u32,
850850
pub flags: __u32,
851851
}
852+
#[repr(C)]
853+
#[derive(Debug)]
854+
pub struct lsm_ctx {
855+
pub id: __u64,
856+
pub flags: __u64,
857+
pub len: __u64,
858+
pub ctx_len: __u64,
859+
pub ctx: __IncompleteArrayField<__u8>,
860+
}
852861
#[repr(C, packed)]
853862
#[derive(Copy, Clone)]
854863
pub struct uffd_msg {
@@ -2711,6 +2720,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
27112720
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
27122721
pub const TFD_CLOEXEC: u32 = 524288;
27132722
pub const TFD_NONBLOCK: u32 = 2048;
2723+
pub const LSM_ID_UNDEF: u32 = 0;
2724+
pub const LSM_ID_CAPABILITY: u32 = 100;
2725+
pub const LSM_ID_SELINUX: u32 = 101;
2726+
pub const LSM_ID_SMACK: u32 = 102;
2727+
pub const LSM_ID_TOMOYO: u32 = 103;
2728+
pub const LSM_ID_APPARMOR: u32 = 104;
2729+
pub const LSM_ID_YAMA: u32 = 105;
2730+
pub const LSM_ID_LOADPIN: u32 = 106;
2731+
pub const LSM_ID_SAFESETID: u32 = 107;
2732+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2733+
pub const LSM_ID_BPF: u32 = 109;
2734+
pub const LSM_ID_LANDLOCK: u32 = 110;
2735+
pub const LSM_ID_IMA: u32 = 111;
2736+
pub const LSM_ID_EVM: u32 = 112;
2737+
pub const LSM_ID_IPE: u32 = 113;
2738+
pub const LSM_ATTR_UNDEF: u32 = 0;
2739+
pub const LSM_ATTR_CURRENT: u32 = 100;
2740+
pub const LSM_ATTR_EXEC: u32 = 101;
2741+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2742+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2743+
pub const LSM_ATTR_PREV: u32 = 104;
2744+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2745+
pub const LSM_FLAG_SINGLE: u32 = 1;
27142746
pub const USERFAULTFD_IOC: u32 = 170;
27152747
pub const _UFFDIO_REGISTER: u32 = 0;
27162748
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/arm/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,15 @@ pub value: __u64,
842842
pub size: __u32,
843843
pub flags: __u32,
844844
}
845+
#[repr(C)]
846+
#[derive(Debug)]
847+
pub struct lsm_ctx {
848+
pub id: __u64,
849+
pub flags: __u64,
850+
pub len: __u64,
851+
pub ctx_len: __u64,
852+
pub ctx: __IncompleteArrayField<__u8>,
853+
}
845854
#[repr(C, packed)]
846855
#[derive(Copy, Clone)]
847856
pub struct uffd_msg {
@@ -2846,6 +2855,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
28462855
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
28472856
pub const TFD_CLOEXEC: u32 = 524288;
28482857
pub const TFD_NONBLOCK: u32 = 2048;
2858+
pub const LSM_ID_UNDEF: u32 = 0;
2859+
pub const LSM_ID_CAPABILITY: u32 = 100;
2860+
pub const LSM_ID_SELINUX: u32 = 101;
2861+
pub const LSM_ID_SMACK: u32 = 102;
2862+
pub const LSM_ID_TOMOYO: u32 = 103;
2863+
pub const LSM_ID_APPARMOR: u32 = 104;
2864+
pub const LSM_ID_YAMA: u32 = 105;
2865+
pub const LSM_ID_LOADPIN: u32 = 106;
2866+
pub const LSM_ID_SAFESETID: u32 = 107;
2867+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2868+
pub const LSM_ID_BPF: u32 = 109;
2869+
pub const LSM_ID_LANDLOCK: u32 = 110;
2870+
pub const LSM_ID_IMA: u32 = 111;
2871+
pub const LSM_ID_EVM: u32 = 112;
2872+
pub const LSM_ID_IPE: u32 = 113;
2873+
pub const LSM_ATTR_UNDEF: u32 = 0;
2874+
pub const LSM_ATTR_CURRENT: u32 = 100;
2875+
pub const LSM_ATTR_EXEC: u32 = 101;
2876+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2877+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2878+
pub const LSM_ATTR_PREV: u32 = 104;
2879+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2880+
pub const LSM_FLAG_SINGLE: u32 = 1;
28492881
pub const USERFAULTFD_IOC: u32 = 170;
28502882
pub const _UFFDIO_REGISTER: u32 = 0;
28512883
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/csky/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,15 @@ pub value: __u64,
848848
pub size: __u32,
849849
pub flags: __u32,
850850
}
851+
#[repr(C)]
852+
#[derive(Debug)]
853+
pub struct lsm_ctx {
854+
pub id: __u64,
855+
pub flags: __u64,
856+
pub len: __u64,
857+
pub ctx_len: __u64,
858+
pub ctx: __IncompleteArrayField<__u8>,
859+
}
851860
#[repr(C, packed)]
852861
#[derive(Copy, Clone)]
853862
pub struct uffd_msg {
@@ -2750,6 +2759,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
27502759
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
27512760
pub const TFD_CLOEXEC: u32 = 524288;
27522761
pub const TFD_NONBLOCK: u32 = 2048;
2762+
pub const LSM_ID_UNDEF: u32 = 0;
2763+
pub const LSM_ID_CAPABILITY: u32 = 100;
2764+
pub const LSM_ID_SELINUX: u32 = 101;
2765+
pub const LSM_ID_SMACK: u32 = 102;
2766+
pub const LSM_ID_TOMOYO: u32 = 103;
2767+
pub const LSM_ID_APPARMOR: u32 = 104;
2768+
pub const LSM_ID_YAMA: u32 = 105;
2769+
pub const LSM_ID_LOADPIN: u32 = 106;
2770+
pub const LSM_ID_SAFESETID: u32 = 107;
2771+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2772+
pub const LSM_ID_BPF: u32 = 109;
2773+
pub const LSM_ID_LANDLOCK: u32 = 110;
2774+
pub const LSM_ID_IMA: u32 = 111;
2775+
pub const LSM_ID_EVM: u32 = 112;
2776+
pub const LSM_ID_IPE: u32 = 113;
2777+
pub const LSM_ATTR_UNDEF: u32 = 0;
2778+
pub const LSM_ATTR_CURRENT: u32 = 100;
2779+
pub const LSM_ATTR_EXEC: u32 = 101;
2780+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2781+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2782+
pub const LSM_ATTR_PREV: u32 = 104;
2783+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2784+
pub const LSM_FLAG_SINGLE: u32 = 1;
27532785
pub const USERFAULTFD_IOC: u32 = 170;
27542786
pub const _UFFDIO_REGISTER: u32 = 0;
27552787
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/hexagon/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -851,6 +851,15 @@ pub value: __u64,
851851
pub size: __u32,
852852
pub flags: __u32,
853853
}
854+
#[repr(C)]
855+
#[derive(Debug)]
856+
pub struct lsm_ctx {
857+
pub id: __u64,
858+
pub flags: __u64,
859+
pub len: __u64,
860+
pub ctx_len: __u64,
861+
pub ctx: __IncompleteArrayField<__u8>,
862+
}
854863
#[repr(C, packed)]
855864
#[derive(Copy, Clone)]
856865
pub struct uffd_msg {
@@ -2752,6 +2761,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
27522761
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
27532762
pub const TFD_CLOEXEC: u32 = 524288;
27542763
pub const TFD_NONBLOCK: u32 = 2048;
2764+
pub const LSM_ID_UNDEF: u32 = 0;
2765+
pub const LSM_ID_CAPABILITY: u32 = 100;
2766+
pub const LSM_ID_SELINUX: u32 = 101;
2767+
pub const LSM_ID_SMACK: u32 = 102;
2768+
pub const LSM_ID_TOMOYO: u32 = 103;
2769+
pub const LSM_ID_APPARMOR: u32 = 104;
2770+
pub const LSM_ID_YAMA: u32 = 105;
2771+
pub const LSM_ID_LOADPIN: u32 = 106;
2772+
pub const LSM_ID_SAFESETID: u32 = 107;
2773+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2774+
pub const LSM_ID_BPF: u32 = 109;
2775+
pub const LSM_ID_LANDLOCK: u32 = 110;
2776+
pub const LSM_ID_IMA: u32 = 111;
2777+
pub const LSM_ID_EVM: u32 = 112;
2778+
pub const LSM_ID_IPE: u32 = 113;
2779+
pub const LSM_ATTR_UNDEF: u32 = 0;
2780+
pub const LSM_ATTR_CURRENT: u32 = 100;
2781+
pub const LSM_ATTR_EXEC: u32 = 101;
2782+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2783+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2784+
pub const LSM_ATTR_PREV: u32 = 104;
2785+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2786+
pub const LSM_FLAG_SINGLE: u32 = 1;
27552787
pub const USERFAULTFD_IOC: u32 = 170;
27562788
pub const _UFFDIO_REGISTER: u32 = 0;
27572789
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/loongarch64/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -848,6 +848,15 @@ pub value: __u64,
848848
pub size: __u32,
849849
pub flags: __u32,
850850
}
851+
#[repr(C)]
852+
#[derive(Debug)]
853+
pub struct lsm_ctx {
854+
pub id: __u64,
855+
pub flags: __u64,
856+
pub len: __u64,
857+
pub ctx_len: __u64,
858+
pub ctx: __IncompleteArrayField<__u8>,
859+
}
851860
#[repr(C, packed)]
852861
#[derive(Copy, Clone)]
853862
pub struct uffd_msg {
@@ -2698,6 +2707,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
26982707
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
26992708
pub const TFD_CLOEXEC: u32 = 524288;
27002709
pub const TFD_NONBLOCK: u32 = 2048;
2710+
pub const LSM_ID_UNDEF: u32 = 0;
2711+
pub const LSM_ID_CAPABILITY: u32 = 100;
2712+
pub const LSM_ID_SELINUX: u32 = 101;
2713+
pub const LSM_ID_SMACK: u32 = 102;
2714+
pub const LSM_ID_TOMOYO: u32 = 103;
2715+
pub const LSM_ID_APPARMOR: u32 = 104;
2716+
pub const LSM_ID_YAMA: u32 = 105;
2717+
pub const LSM_ID_LOADPIN: u32 = 106;
2718+
pub const LSM_ID_SAFESETID: u32 = 107;
2719+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2720+
pub const LSM_ID_BPF: u32 = 109;
2721+
pub const LSM_ID_LANDLOCK: u32 = 110;
2722+
pub const LSM_ID_IMA: u32 = 111;
2723+
pub const LSM_ID_EVM: u32 = 112;
2724+
pub const LSM_ID_IPE: u32 = 113;
2725+
pub const LSM_ATTR_UNDEF: u32 = 0;
2726+
pub const LSM_ATTR_CURRENT: u32 = 100;
2727+
pub const LSM_ATTR_EXEC: u32 = 101;
2728+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2729+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2730+
pub const LSM_ATTR_PREV: u32 = 104;
2731+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2732+
pub const LSM_FLAG_SINGLE: u32 = 1;
27012733
pub const USERFAULTFD_IOC: u32 = 170;
27022734
pub const _UFFDIO_REGISTER: u32 = 0;
27032735
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/m68k/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -842,6 +842,15 @@ pub value: __u64,
842842
pub size: __u32,
843843
pub flags: __u32,
844844
}
845+
#[repr(C)]
846+
#[derive(Debug)]
847+
pub struct lsm_ctx {
848+
pub id: __u64,
849+
pub flags: __u64,
850+
pub len: __u64,
851+
pub ctx_len: __u64,
852+
pub ctx: __IncompleteArrayField<__u8>,
853+
}
845854
#[repr(C, packed)]
846855
#[derive(Copy, Clone)]
847856
pub struct uffd_msg {
@@ -2851,6 +2860,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
28512860
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
28522861
pub const TFD_CLOEXEC: u32 = 524288;
28532862
pub const TFD_NONBLOCK: u32 = 2048;
2863+
pub const LSM_ID_UNDEF: u32 = 0;
2864+
pub const LSM_ID_CAPABILITY: u32 = 100;
2865+
pub const LSM_ID_SELINUX: u32 = 101;
2866+
pub const LSM_ID_SMACK: u32 = 102;
2867+
pub const LSM_ID_TOMOYO: u32 = 103;
2868+
pub const LSM_ID_APPARMOR: u32 = 104;
2869+
pub const LSM_ID_YAMA: u32 = 105;
2870+
pub const LSM_ID_LOADPIN: u32 = 106;
2871+
pub const LSM_ID_SAFESETID: u32 = 107;
2872+
pub const LSM_ID_LOCKDOWN: u32 = 108;
2873+
pub const LSM_ID_BPF: u32 = 109;
2874+
pub const LSM_ID_LANDLOCK: u32 = 110;
2875+
pub const LSM_ID_IMA: u32 = 111;
2876+
pub const LSM_ID_EVM: u32 = 112;
2877+
pub const LSM_ID_IPE: u32 = 113;
2878+
pub const LSM_ATTR_UNDEF: u32 = 0;
2879+
pub const LSM_ATTR_CURRENT: u32 = 100;
2880+
pub const LSM_ATTR_EXEC: u32 = 101;
2881+
pub const LSM_ATTR_FSCREATE: u32 = 102;
2882+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
2883+
pub const LSM_ATTR_PREV: u32 = 104;
2884+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
2885+
pub const LSM_FLAG_SINGLE: u32 = 1;
28542886
pub const USERFAULTFD_IOC: u32 = 170;
28552887
pub const _UFFDIO_REGISTER: u32 = 0;
28562888
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/mips/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,15 @@ pub value: __u64,
878878
pub size: __u32,
879879
pub flags: __u32,
880880
}
881+
#[repr(C)]
882+
#[derive(Debug)]
883+
pub struct lsm_ctx {
884+
pub id: __u64,
885+
pub flags: __u64,
886+
pub len: __u64,
887+
pub ctx_len: __u64,
888+
pub ctx: __IncompleteArrayField<__u8>,
889+
}
881890
#[repr(C, packed)]
882891
#[derive(Copy, Clone)]
883892
pub struct uffd_msg {
@@ -3008,6 +3017,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
30083017
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
30093018
pub const TFD_CLOEXEC: u32 = 524288;
30103019
pub const TFD_NONBLOCK: u32 = 128;
3020+
pub const LSM_ID_UNDEF: u32 = 0;
3021+
pub const LSM_ID_CAPABILITY: u32 = 100;
3022+
pub const LSM_ID_SELINUX: u32 = 101;
3023+
pub const LSM_ID_SMACK: u32 = 102;
3024+
pub const LSM_ID_TOMOYO: u32 = 103;
3025+
pub const LSM_ID_APPARMOR: u32 = 104;
3026+
pub const LSM_ID_YAMA: u32 = 105;
3027+
pub const LSM_ID_LOADPIN: u32 = 106;
3028+
pub const LSM_ID_SAFESETID: u32 = 107;
3029+
pub const LSM_ID_LOCKDOWN: u32 = 108;
3030+
pub const LSM_ID_BPF: u32 = 109;
3031+
pub const LSM_ID_LANDLOCK: u32 = 110;
3032+
pub const LSM_ID_IMA: u32 = 111;
3033+
pub const LSM_ID_EVM: u32 = 112;
3034+
pub const LSM_ID_IPE: u32 = 113;
3035+
pub const LSM_ATTR_UNDEF: u32 = 0;
3036+
pub const LSM_ATTR_CURRENT: u32 = 100;
3037+
pub const LSM_ATTR_EXEC: u32 = 101;
3038+
pub const LSM_ATTR_FSCREATE: u32 = 102;
3039+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
3040+
pub const LSM_ATTR_PREV: u32 = 104;
3041+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
3042+
pub const LSM_FLAG_SINGLE: u32 = 1;
30113043
pub const USERFAULTFD_IOC: u32 = 170;
30123044
pub const _UFFDIO_REGISTER: u32 = 0;
30133045
pub const _UFFDIO_UNREGISTER: u32 = 1;

‎src/mips32r6/general.rs‎

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -878,6 +878,15 @@ pub value: __u64,
878878
pub size: __u32,
879879
pub flags: __u32,
880880
}
881+
#[repr(C)]
882+
#[derive(Debug)]
883+
pub struct lsm_ctx {
884+
pub id: __u64,
885+
pub flags: __u64,
886+
pub len: __u64,
887+
pub ctx_len: __u64,
888+
pub ctx: __IncompleteArrayField<__u8>,
889+
}
881890
#[repr(C, packed)]
882891
#[derive(Copy, Clone)]
883892
pub struct uffd_msg {
@@ -3008,6 +3017,29 @@ pub const TFD_TIMER_ABSTIME: u32 = 1;
30083017
pub const TFD_TIMER_CANCEL_ON_SET: u32 = 2;
30093018
pub const TFD_CLOEXEC: u32 = 524288;
30103019
pub const TFD_NONBLOCK: u32 = 128;
3020+
pub const LSM_ID_UNDEF: u32 = 0;
3021+
pub const LSM_ID_CAPABILITY: u32 = 100;
3022+
pub const LSM_ID_SELINUX: u32 = 101;
3023+
pub const LSM_ID_SMACK: u32 = 102;
3024+
pub const LSM_ID_TOMOYO: u32 = 103;
3025+
pub const LSM_ID_APPARMOR: u32 = 104;
3026+
pub const LSM_ID_YAMA: u32 = 105;
3027+
pub const LSM_ID_LOADPIN: u32 = 106;
3028+
pub const LSM_ID_SAFESETID: u32 = 107;
3029+
pub const LSM_ID_LOCKDOWN: u32 = 108;
3030+
pub const LSM_ID_BPF: u32 = 109;
3031+
pub const LSM_ID_LANDLOCK: u32 = 110;
3032+
pub const LSM_ID_IMA: u32 = 111;
3033+
pub const LSM_ID_EVM: u32 = 112;
3034+
pub const LSM_ID_IPE: u32 = 113;
3035+
pub const LSM_ATTR_UNDEF: u32 = 0;
3036+
pub const LSM_ATTR_CURRENT: u32 = 100;
3037+
pub const LSM_ATTR_EXEC: u32 = 101;
3038+
pub const LSM_ATTR_FSCREATE: u32 = 102;
3039+
pub const LSM_ATTR_KEYCREATE: u32 = 103;
3040+
pub const LSM_ATTR_PREV: u32 = 104;
3041+
pub const LSM_ATTR_SOCKCREATE: u32 = 105;
3042+
pub const LSM_FLAG_SINGLE: u32 = 1;
30113043
pub const USERFAULTFD_IOC: u32 = 170;
30123044
pub const _UFFDIO_REGISTER: u32 = 0;
30133045
pub const _UFFDIO_UNREGISTER: u32 = 1;

0 commit comments

Comments
 (0)