1 /* Replacement <selinux/selinux.h> for platforms that lack it.
2 Copyright (C) 2008-2025 Free Software Foundation, Inc.
4 This file is free software: you can redistribute it and/or modify
5 it under the terms of the GNU Lesser General Public License as
6 published by the Free Software Foundation; either version 2.1 of the
7 License, or (at your option) any later version.
9 This file is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU Lesser General Public License for more details.
14 You should have received a copy of the GNU Lesser General Public License
15 along with this program. If not, see <https://www.gnu.org/licenses/>. */
18 @PRAGMA_SYSTEM_HEADER@
22 #if @USE_SELINUX_SELINUX_H@
24 #@INCLUDE_NEXT@ @NEXT_SELINUX_SELINUX_H@
27 # if !defined _@GUARD_PREFIX@_SELINUX_SELINUX_H
28 # define _@GUARD_PREFIX@_SELINUX_SELINUX_H
30 /* This file uses _GL_INLINE_HEADER_BEGIN, _GL_INLINE,
31 _GL_ATTRIBUTE_MAYBE_UNUSED. */
32 # if !_GL_CONFIG_H_INCLUDED
33 # error "Please include config.h first."
36 # include <sys/types.h>
39 _GL_INLINE_HEADER_BEGIN
40 # ifndef SE_SELINUX_INLINE
41 # define SE_SELINUX_INLINE _GL_INLINE
44 /* _GL_ATTRIBUTE_MAYBE_UNUSED declares that it is not a programming mistake if
45 the entity is not used. The compiler should not warn if the entity is not
47 # ifndef _GL_ATTRIBUTE_MAYBE_UNUSED
48 # if 0 /* no GCC or clang version supports this yet */
49 # define _GL_ATTRIBUTE_MAYBE_UNUSED [[__maybe_unused__]]
50 # elif defined __GNUC__ || defined __clang__
51 # define _GL_ATTRIBUTE_MAYBE_UNUSED __attribute__ ((__unused__))
53 # define _GL_ATTRIBUTE_MAYBE_UNUSED
57 # if !GNULIB_defined_security_types
59 typedef unsigned short security_class_t
;
61 # define is_selinux_enabled() 0
64 getcon (_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
65 { errno
= ENOTSUP
; return -1; }
67 getcon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
68 { errno
= ENOTSUP
; return -1; }
69 SE_SELINUX_INLINE
void
70 freecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char *con
) {}
73 getfscreatecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
74 { errno
= ENOTSUP
; return -1; }
76 getfscreatecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
77 { errno
= ENOTSUP
; return -1; }
79 setfscreatecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
80 { errno
= ENOTSUP
; return -1; }
82 setfscreatecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
83 { errno
= ENOTSUP
; return -1; }
85 matchpathcon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
86 _GL_ATTRIBUTE_MAYBE_UNUSED mode_t m
,
87 _GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
88 { errno
= ENOTSUP
; return -1; }
90 getfilecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
91 _GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
92 { errno
= ENOTSUP
; return -1; }
94 getfilecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
95 _GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
96 { errno
= ENOTSUP
; return -1; }
98 lgetfilecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
99 _GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
100 { errno
= ENOTSUP
; return -1; }
101 SE_SELINUX_INLINE
int
102 lgetfilecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
103 _GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
104 { errno
= ENOTSUP
; return -1; }
105 SE_SELINUX_INLINE
int
106 fgetfilecon (int fd
,_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
107 { errno
= ENOTSUP
; return -1; }
108 SE_SELINUX_INLINE
int
109 fgetfilecon_raw (int fd
,_GL_ATTRIBUTE_MAYBE_UNUSED
char **con
)
110 { errno
= ENOTSUP
; return -1; }
111 SE_SELINUX_INLINE
int
112 setfilecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
113 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
114 { errno
= ENOTSUP
; return -1; }
115 SE_SELINUX_INLINE
int
116 setfilecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
117 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
118 { errno
= ENOTSUP
; return -1; }
119 SE_SELINUX_INLINE
int
120 lsetfilecon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
121 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
122 { errno
= ENOTSUP
; return -1; }
123 SE_SELINUX_INLINE
int
124 lsetfilecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *file
,
125 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
126 { errno
= ENOTSUP
; return -1; }
127 SE_SELINUX_INLINE
int
128 fsetfilecon (_GL_ATTRIBUTE_MAYBE_UNUSED
int fd
,
129 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
130 { errno
= ENOTSUP
; return -1; }
131 SE_SELINUX_INLINE
int
132 fsetfilecon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
int fd
,
133 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
134 { errno
= ENOTSUP
; return -1; }
136 SE_SELINUX_INLINE
int
137 security_check_context (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
138 { errno
= ENOTSUP
; return -1; }
139 SE_SELINUX_INLINE
int
140 security_check_context_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
141 { errno
= ENOTSUP
; return -1; }
142 SE_SELINUX_INLINE
int
143 setexeccon (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
144 { errno
= ENOTSUP
; return -1; }
145 SE_SELINUX_INLINE
int
146 setexeccon_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *con
)
147 { errno
= ENOTSUP
; return -1; }
148 SE_SELINUX_INLINE
int
149 security_compute_create (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *scon
,
150 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *tcon
,
151 _GL_ATTRIBUTE_MAYBE_UNUSED security_class_t tclass
,
152 _GL_ATTRIBUTE_MAYBE_UNUSED
char **newcon
)
153 { errno
= ENOTSUP
; return -1; }
154 SE_SELINUX_INLINE
int
155 security_compute_create_raw (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *scon
,
156 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *tcon
,
157 _GL_ATTRIBUTE_MAYBE_UNUSED security_class_t tclass
,
158 _GL_ATTRIBUTE_MAYBE_UNUSED
char **newcon
)
159 { errno
= ENOTSUP
; return -1; }
160 SE_SELINUX_INLINE security_class_t
161 string_to_security_class (char const *name
)
162 { errno
= ENOTSUP
; return 0; }
163 SE_SELINUX_INLINE
int
164 matchpathcon_init_prefix (_GL_ATTRIBUTE_MAYBE_UNUSED
char const *path
,
165 _GL_ATTRIBUTE_MAYBE_UNUSED
char const *prefix
)
166 { errno
= ENOTSUP
; return -1; }
168 # define GNULIB_defined_security_types 1
171 _GL_INLINE_HEADER_END
173 # endif /* _@GUARD_PREFIX@_SELINUX_SELINUX_H */