Allow libsepol C++ static library on device.
Change-Id: I7da601767c3a4ebed7274e33304d8b589a9115fe
Signed-off-by: Stephen Smalley <[email protected]>
diff --git a/libsepol/include/sepol/boolean_record.h b/libsepol/include/sepol/boolean_record.h
index 54ca021..9af16be 100644
--- a/libsepol/include/sepol/boolean_record.h
+++ b/libsepol/include/sepol/boolean_record.h
@@ -3,6 +3,9 @@
#include <stddef.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_bool;
struct sepol_bool_key;
@@ -48,4 +51,5 @@
extern void sepol_bool_free(sepol_bool_t * boolean);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/booleans.h b/libsepol/include/sepol/booleans.h
index 95ee7de..7374dde 100644
--- a/libsepol/include/sepol/booleans.h
+++ b/libsepol/include/sepol/booleans.h
@@ -5,6 +5,9 @@
#include <sepol/policydb.h>
#include <sepol/boolean_record.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/*--------------compatibility--------------*/
@@ -56,4 +59,5 @@
int (*fn) (const sepol_bool_t * boolean,
void *fn_arg), void *arg);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/context.h b/libsepol/include/sepol/context.h
index c1eadca..a69e8c9 100644
--- a/libsepol/include/sepol/context.h
+++ b/libsepol/include/sepol/context.h
@@ -4,6 +4,9 @@
#include <sepol/context_record.h>
#include <sepol/policydb.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* -- Deprecated -- */
@@ -22,4 +25,6 @@
extern int sepol_mls_check(sepol_handle_t * handle,
const sepol_policydb_t * policydb, const char *mls);
+
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/context_record.h b/libsepol/include/sepol/context_record.h
index c305480..c07da8f 100644
--- a/libsepol/include/sepol/context_record.h
+++ b/libsepol/include/sepol/context_record.h
@@ -2,6 +2,9 @@
#define _SEPOL_CONTEXT_RECORD_H_
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_context;
typedef struct sepol_context sepol_context_t;
@@ -50,4 +53,5 @@
extern int sepol_context_to_string(sepol_handle_t * handle,
const sepol_context_t * con, char **str_ptr);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/debug.h b/libsepol/include/sepol/debug.h
index 3370845..b852c8d 100644
--- a/libsepol/include/sepol/debug.h
+++ b/libsepol/include/sepol/debug.h
@@ -2,6 +2,9 @@
#define _SEPOL_DEBUG_H_
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* Deprecated */
extern void sepol_debug(int on);
@@ -31,4 +34,6 @@
handle,
const char *fmt, ...),
void *msg_callback_arg);
+
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/errcodes.h b/libsepol/include/sepol/errcodes.h
index c6f3a8b..eba7088 100644
--- a/libsepol/include/sepol/errcodes.h
+++ b/libsepol/include/sepol/errcodes.h
@@ -4,6 +4,9 @@
#define __sepol_errno_h__
#include <errno.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
#define SEPOL_OK 0
@@ -22,4 +25,5 @@
#define SEPOL_EEXIST -EEXIST
#define SEPOL_ENOENT -ENOENT
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/handle.h b/libsepol/include/sepol/handle.h
index 115bda1..00ed0ed 100644
--- a/libsepol/include/sepol/handle.h
+++ b/libsepol/include/sepol/handle.h
@@ -1,6 +1,10 @@
#ifndef _SEPOL_HANDLE_H_
#define _SEPOL_HANDLE_H_
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
struct sepol_handle;
typedef struct sepol_handle sepol_handle_t;
@@ -31,4 +35,5 @@
* 0 is default and discard such branch, 1 preserves them */
void sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/iface_record.h b/libsepol/include/sepol/iface_record.h
index a72678c..81d7027 100644
--- a/libsepol/include/sepol/iface_record.h
+++ b/libsepol/include/sepol/iface_record.h
@@ -3,6 +3,9 @@
#include <sepol/handle.h>
#include <sepol/context_record.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_iface;
struct sepol_iface_key;
@@ -56,4 +59,5 @@
extern void sepol_iface_free(sepol_iface_t * iface);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/interfaces.h b/libsepol/include/sepol/interfaces.h
index 9849e13..3cb5043 100644
--- a/libsepol/include/sepol/interfaces.h
+++ b/libsepol/include/sepol/interfaces.h
@@ -4,6 +4,9 @@
#include <sepol/policydb.h>
#include <sepol/iface_record.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* Return the number of interfaces */
extern int sepol_iface_count(sepol_handle_t * handle,
@@ -40,4 +43,5 @@
int (*fn) (const sepol_iface_t * iface,
void *fn_arg), void *arg);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/module.h b/libsepol/include/sepol/module.h
index 35f5cb7..ff27f96 100644
--- a/libsepol/include/sepol/module.h
+++ b/libsepol/include/sepol/module.h
@@ -7,6 +7,9 @@
#include <sepol/handle.h>
#include <sepol/policydb.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_module_package;
typedef struct sepol_module_package sepol_module_package_t;
@@ -79,4 +82,5 @@
sepol_policydb_t * base,
sepol_policydb_t * out, int verbose, int check);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/node_record.h b/libsepol/include/sepol/node_record.h
index 9f61ac7..e2d3e6d 100644
--- a/libsepol/include/sepol/node_record.h
+++ b/libsepol/include/sepol/node_record.h
@@ -4,6 +4,9 @@
#include <stddef.h>
#include <sepol/context_record.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_node;
struct sepol_node_key;
@@ -89,4 +92,5 @@
extern void sepol_node_free(sepol_node_t * node);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/nodes.h b/libsepol/include/sepol/nodes.h
index 1e0ac4f..6fa534e 100644
--- a/libsepol/include/sepol/nodes.h
+++ b/libsepol/include/sepol/nodes.h
@@ -4,6 +4,9 @@
#include <sepol/handle.h>
#include <sepol/policydb.h>
#include <sepol/node_record.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* Return the number of nodes */
extern int sepol_node_count(sepol_handle_t * handle,
@@ -37,4 +40,5 @@
int (*fn) (const sepol_node_t * node,
void *fn_arg), void *arg);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb.h b/libsepol/include/sepol/policydb.h
index f4ecf57..c3943e9 100644
--- a/libsepol/include/sepol/policydb.h
+++ b/libsepol/include/sepol/policydb.h
@@ -5,6 +5,9 @@
#include <stdio.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_policy_file;
typedef struct sepol_policy_file sepol_policy_file_t;
@@ -141,4 +144,5 @@
*/
extern int sepol_policydb_compat_net(const sepol_policydb_t * p);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/avrule_block.h b/libsepol/include/sepol/policydb/avrule_block.h
index dc926e5..ecd347b 100644
--- a/libsepol/include/sepol/policydb/avrule_block.h
+++ b/libsepol/include/sepol/policydb/avrule_block.h
@@ -21,6 +21,9 @@
#define _SEPOL_AVRULE_BLOCK_H_
#include <sepol/policydb/policydb.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
extern avrule_block_t *avrule_block_create(void);
extern void avrule_block_destroy(avrule_block_t * x);
@@ -34,4 +37,5 @@
extern int is_id_enabled(char *id, policydb_t * p, int symbol_table);
extern int is_perm_enabled(char *class_id, char *perm_id, policydb_t * p);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/avtab.h b/libsepol/include/sepol/policydb/avtab.h
index bb6e79f..3f56a0e 100644
--- a/libsepol/include/sepol/policydb/avtab.h
+++ b/libsepol/include/sepol/policydb/avtab.h
@@ -40,9 +40,12 @@
#ifndef _SEPOL_POLICYDB_AVTAB_H_
#define _SEPOL_POLICYDB_AVTAB_H_
+#include <sys/cdefs.h>
#include <sys/types.h>
#include <stdint.h>
+__BEGIN_DECLS
+
typedef struct avtab_key {
uint16_t source_type;
uint16_t target_type;
@@ -123,6 +126,7 @@
/* avtab_alloc uses one bucket per 2-4 elements, so adjust to get maximum buckets */
#define MAX_AVTAB_SIZE (MAX_AVTAB_HASH_BUCKETS << 1)
+__END_DECLS
#endif /* _AVTAB_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/conditional.h b/libsepol/include/sepol/policydb/conditional.h
index 48ec106..cd2a9a9 100644
--- a/libsepol/include/sepol/policydb/conditional.h
+++ b/libsepol/include/sepol/policydb/conditional.h
@@ -25,6 +25,9 @@
#include <sepol/policydb/avtab.h>
#include <sepol/policydb/symtab.h>
#include <sepol/policydb/policydb.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
#define COND_EXPR_MAXDEPTH 10
@@ -133,4 +136,5 @@
extern void cond_compute_av(avtab_t * ctab, avtab_key_t * key,
struct sepol_av_decision *avd);
+__END_DECLS
#endif /* _CONDITIONAL_H_ */
diff --git a/libsepol/include/sepol/policydb/constraint.h b/libsepol/include/sepol/policydb/constraint.h
index 4c16ab0..ae7034d 100644
--- a/libsepol/include/sepol/policydb/constraint.h
+++ b/libsepol/include/sepol/policydb/constraint.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/* FLASK */
@@ -23,6 +22,8 @@
#include <sepol/policydb/ebitmap.h>
#include <sepol/policydb/flask_types.h>
+__BEGIN_DECLS
+
#define CEXPR_MAXDEPTH 5
struct type_set;
@@ -72,6 +73,7 @@
extern int constraint_expr_init(constraint_expr_t * expr);
extern void constraint_expr_destroy(constraint_expr_t * expr);
+__END_DECLS
#endif /* _CONSTRAINT_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/context.h b/libsepol/include/sepol/policydb/context.h
index 8d74a25..dbb7c3e 100644
--- a/libsepol/include/sepol/policydb/context.h
+++ b/libsepol/include/sepol/policydb/context.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/* FLASK */
@@ -23,6 +22,8 @@
#include <sepol/policydb/ebitmap.h>
#include <sepol/policydb/mls_types.h>
+__BEGIN_DECLS
+
/*
* A security context consists of an authenticated user
* identity, a role, a type and a MLS range.
@@ -94,4 +95,5 @@
(c1->type == c2->type) && mls_context_cmp(c1, c2));
}
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/ebitmap.h b/libsepol/include/sepol/policydb/ebitmap.h
index 214da95..801438c 100644
--- a/libsepol/include/sepol/policydb/ebitmap.h
+++ b/libsepol/include/sepol/policydb/ebitmap.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/* FLASK */
@@ -20,6 +19,9 @@
#include <stdint.h>
#include <string.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
#define MAPTYPE uint64_t /* portion of bitmap in each node */
#define MAPSIZE (sizeof(MAPTYPE) * 8) /* number of bits in node bitmap */
@@ -89,6 +91,7 @@
extern void ebitmap_destroy(ebitmap_t * e);
extern int ebitmap_read(ebitmap_t * e, void *fp);
+__END_DECLS
#endif /* _EBITMAP_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/expand.h b/libsepol/include/sepol/policydb/expand.h
index 31e25ec..a8de41e 100644
--- a/libsepol/include/sepol/policydb/expand.h
+++ b/libsepol/include/sepol/policydb/expand.h
@@ -28,6 +28,9 @@
#include <stddef.h>
#include <sepol/handle.h>
#include <sepol/policydb/conditional.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/*
* Expand only the avrules for a module. It is valid for this function
@@ -76,4 +79,5 @@
extern int expand_cond_av_list(policydb_t * p, cond_av_list_t * l,
cond_av_list_t ** newl, avtab_t * expa);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/flask_types.h b/libsepol/include/sepol/policydb/flask_types.h
index 575c6f2..2a59565 100644
--- a/libsepol/include/sepol/policydb/flask_types.h
+++ b/libsepol/include/sepol/policydb/flask_types.h
@@ -1,4 +1,3 @@
-
/* -*- linux-c -*- */
/*
@@ -14,6 +13,9 @@
#include <sys/types.h>
#include <stdint.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/*
* A security context is a set of security attributes
@@ -59,4 +61,5 @@
uint32_t seqno;
};
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/hashtab.h b/libsepol/include/sepol/policydb/hashtab.h
index 1081ff6..0afc59c 100644
--- a/libsepol/include/sepol/policydb/hashtab.h
+++ b/libsepol/include/sepol/policydb/hashtab.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/* FLASK */
@@ -18,6 +17,9 @@
#include <stdint.h>
#include <stdio.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
typedef char *hashtab_key_t; /* generic key type */
typedef void *hashtab_datum_t; /* generic datum type */
@@ -134,4 +136,5 @@
extern void hashtab_hash_eval(hashtab_t h, char *tag);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/hierarchy.h b/libsepol/include/sepol/policydb/hierarchy.h
index de2dfc7..b4eb9bc 100644
--- a/libsepol/include/sepol/policydb/hierarchy.h
+++ b/libsepol/include/sepol/policydb/hierarchy.h
@@ -26,7 +26,11 @@
#define _SEPOL_POLICYDB_HIERARCHY_H_
#include <sepol/policydb/policydb.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
extern int hierarchy_check_constraints(sepol_handle_t * handle, policydb_t * p);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/link.h b/libsepol/include/sepol/policydb/link.h
index fca9114..7c7c9be 100644
--- a/libsepol/include/sepol/policydb/link.h
+++ b/libsepol/include/sepol/policydb/link.h
@@ -12,9 +12,13 @@
#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
extern int link_modules(sepol_handle_t * handle,
policydb_t * b, policydb_t ** mods, int len,
int verbose);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/mls_types.h b/libsepol/include/sepol/policydb/mls_types.h
index e491209..4bf7367 100644
--- a/libsepol/include/sepol/policydb/mls_types.h
+++ b/libsepol/include/sepol/policydb/mls_types.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/*
* Updated: Trusted Computer Solutions, Inc. <[email protected]>
@@ -35,6 +34,9 @@
#include <stdlib.h>
#include <sepol/policydb/ebitmap.h>
#include <sepol/policydb/flask_types.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
typedef struct mls_level {
uint32_t sens; /* sensitivity */
@@ -150,4 +152,5 @@
extern void mls_semantic_range_destroy(mls_semantic_range_t *r);
extern int mls_semantic_range_cpy(mls_semantic_range_t *dst, mls_semantic_range_t *src);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/module.h b/libsepol/include/sepol/policydb/module.h
index 10403c8..3fe560c 100644
--- a/libsepol/include/sepol/policydb/module.h
+++ b/libsepol/include/sepol/policydb/module.h
@@ -27,9 +27,12 @@
#include <sepol/policydb/policydb.h>
#include <sepol/policydb/conditional.h>
+#include <sys/cdefs.h>
#define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f
+__BEGIN_DECLS
+
struct sepol_module_package {
sepol_policydb_t *policy;
uint32_t version;
@@ -45,4 +48,5 @@
extern int sepol_module_package_init(sepol_module_package_t * p);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/polcaps.h b/libsepol/include/sepol/policydb/polcaps.h
index f90a48d..74b7c9e 100644
--- a/libsepol/include/sepol/policydb/polcaps.h
+++ b/libsepol/include/sepol/policydb/polcaps.h
@@ -1,6 +1,10 @@
#ifndef _SEPOL_POLICYDB_POLCAPS_H_
#define _SEPOL_POLICYDB_POLCAPS_H_
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
/* Policy capabilities */
enum {
POLICYDB_CAPABILITY_NETPEER,
@@ -17,4 +21,5 @@
/* Convert a capability number to name. */
extern const char *sepol_polcap_getname(int capnum);
+__END_DECLS
#endif /* _SEPOL_POLICYDB_POLCAPS_H_ */
diff --git a/libsepol/include/sepol/policydb/policydb.h b/libsepol/include/sepol/policydb/policydb.h
index 20bf759..6254fef 100644
--- a/libsepol/include/sepol/policydb/policydb.h
+++ b/libsepol/include/sepol/policydb/policydb.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/*
@@ -62,6 +61,7 @@
#include <sepol/policydb/context.h>
#include <sepol/policydb/constraint.h>
#include <sepol/policydb/sidtab.h>
+#include <sys/cdefs.h>
#define ERRMSG_LEN 1024
@@ -69,6 +69,8 @@
#define POLICYDB_ERROR -1
#define POLICYDB_UNSUPPORTED -2
+__BEGIN_DECLS
+
/*
* A datum type is defined for each kind of symbol
* in the configuration data: individual permissions,
@@ -234,7 +236,7 @@
struct cond_av_list;
typedef struct class_perm_node {
- uint32_t class;
+ uint32_t tclass;
uint32_t data; /* permissions or new type */
struct class_perm_node *next;
} class_perm_node_t;
@@ -742,7 +744,7 @@
#define POLICYDB_MOD_MAGIC SELINUX_MOD_MAGIC
#define POLICYDB_MOD_STRING "SE Linux Module"
-
+__END_DECLS
#endif /* _POLICYDB_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/services.h b/libsepol/include/sepol/policydb/services.h
index bcde47b..8a5dc9a 100644
--- a/libsepol/include/sepol/policydb/services.h
+++ b/libsepol/include/sepol/policydb/services.h
@@ -15,6 +15,9 @@
#include <sepol/policydb/flask_types.h>
#include <sepol/policydb/policydb.h>
#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* Set the policydb and sidtab structures to be used by
the service functions. If not set, then these default
@@ -227,4 +230,5 @@
sepol_security_class_t sclass, /* IN */
sepol_security_id_t * sid); /* OUT */
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/policydb/sidtab.h b/libsepol/include/sepol/policydb/sidtab.h
index 33c7cb5..4b93567 100644
--- a/libsepol/include/sepol/policydb/sidtab.h
+++ b/libsepol/include/sepol/policydb/sidtab.h
@@ -1,4 +1,3 @@
-
/* Author : Stephen Smalley, <[email protected]> */
/* FLASK */
@@ -12,6 +11,9 @@
#define _SEPOL_POLICYDB_SIDTAB_H_
#include <sepol/policydb/context.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
typedef struct sidtab_node {
sepol_security_id_t sid; /* security identifier */
@@ -67,6 +69,7 @@
extern void sepol_sidtab_shutdown(sidtab_t * s);
+__END_DECLS
#endif /* _SIDTAB_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/symtab.h b/libsepol/include/sepol/policydb/symtab.h
index 490731b..e0da337 100644
--- a/libsepol/include/sepol/policydb/symtab.h
+++ b/libsepol/include/sepol/policydb/symtab.h
@@ -14,6 +14,9 @@
#define _SEPOL_POLICYDB_SYMTAB_H_
#include <sepol/policydb/hashtab.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* The symtab_datum struct stores the common information for
* all symtab datums. It should the first element in every
@@ -34,6 +37,7 @@
extern int symtab_init(symtab_t *, unsigned int size);
extern void symtab_destroy(symtab_t *);
+__END_DECLS
#endif /* _SYMTAB_H_ */
/* FLASK */
diff --git a/libsepol/include/sepol/policydb/util.h b/libsepol/include/sepol/policydb/util.h
index 40bfaa6..ef1c90d 100644
--- a/libsepol/include/sepol/policydb/util.h
+++ b/libsepol/include/sepol/policydb/util.h
@@ -23,9 +23,14 @@
#ifndef __SEPOL_UTIL_H__
#define __SEPOL_UTIL_H__
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
extern int add_i_to_a(uint32_t i, uint32_t * cnt, uint32_t ** a);
extern char *sepol_av_to_string(policydb_t * policydbp, uint32_t tclass,
sepol_access_vector_t av);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/port_record.h b/libsepol/include/sepol/port_record.h
index b347e08..697cea4 100644
--- a/libsepol/include/sepol/port_record.h
+++ b/libsepol/include/sepol/port_record.h
@@ -3,6 +3,9 @@
#include <sepol/context_record.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_port;
struct sepol_port_key;
@@ -63,4 +66,5 @@
extern void sepol_port_free(sepol_port_t * port);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/ports.h b/libsepol/include/sepol/ports.h
index fb94117..b4622ba 100644
--- a/libsepol/include/sepol/ports.h
+++ b/libsepol/include/sepol/ports.h
@@ -4,6 +4,9 @@
#include <sepol/handle.h>
#include <sepol/policydb.h>
#include <sepol/port_record.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/* Return the number of ports */
extern int sepol_port_count(sepol_handle_t * handle,
@@ -37,4 +40,5 @@
int (*fn) (const sepol_port_t * port,
void *fn_arg), void *arg);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/roles.h b/libsepol/include/sepol/roles.h
index 113f9d2..89b3af2 100644
--- a/libsepol/include/sepol/roles.h
+++ b/libsepol/include/sepol/roles.h
@@ -1,10 +1,15 @@
#ifndef _SEPOL_ROLES_H_
#define _SEPOL_ROLES_H_
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
+
extern int sepol_role_exists(const sepol_policydb_t * policydb,
const char *role, int *response);
extern int sepol_role_list(const sepol_policydb_t * policydb,
char ***roles, unsigned int *nroles);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/sepol.h b/libsepol/include/sepol/sepol.h
index c8900d3..00a2129 100644
--- a/libsepol/include/sepol/sepol.h
+++ b/libsepol/include/sepol/sepol.h
@@ -3,6 +3,9 @@
#include <stddef.h>
#include <stdio.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
#include <sepol/user_record.h>
#include <sepol/context_record.h>
@@ -25,4 +28,5 @@
/* Set internal policydb from a file for subsequent service calls. */
extern int sepol_set_policydb_from_file(FILE * fp);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/user_record.h b/libsepol/include/sepol/user_record.h
index c86ad16..9a39526 100644
--- a/libsepol/include/sepol/user_record.h
+++ b/libsepol/include/sepol/user_record.h
@@ -3,6 +3,9 @@
#include <stddef.h>
#include <sepol/handle.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
struct sepol_user;
struct sepol_user_key;
@@ -73,4 +76,5 @@
extern void sepol_user_free(sepol_user_t * user);
+__END_DECLS
#endif
diff --git a/libsepol/include/sepol/users.h b/libsepol/include/sepol/users.h
index 01b0775..0e0f76e 100644
--- a/libsepol/include/sepol/users.h
+++ b/libsepol/include/sepol/users.h
@@ -5,6 +5,9 @@
#include <sepol/user_record.h>
#include <sepol/handle.h>
#include <stddef.h>
+#include <sys/cdefs.h>
+
+__BEGIN_DECLS
/*---------compatibility------------*/
@@ -54,4 +57,5 @@
int (*fn) (const sepol_user_t * user,
void *fn_arg), void *arg);
+__END_DECLS
#endif