37 lines
1.1 KiB
C
Raw Normal View History

2017-04-15 19:26:29 +08:00
/* sepolicy.h - Header for magiskpolicy non-public APIs
*/
2019-06-30 19:09:31 -07:00
#pragma once
2017-04-15 19:26:29 +08:00
#include <sepol/policydb/policydb.h>
2019-06-30 19:09:31 -07:00
__BEGIN_DECLS
2018-11-08 04:20:16 -05:00
// Global policydb
extern policydb_t *policydb;
2017-04-15 19:26:29 +08:00
2018-12-01 03:53:58 -05:00
// General hash table traversal
#define hash_for_each(table, slots, tab, cur, block) \
for (int __i = 0; __i < (tab)->slots; ++__i) { \
__typeof__(cur) __next; \
for (cur = (tab)->table[__i]; cur; cur = __next) { \
__next = cur->next; \
block \
} \
} \
// hashtab traversal
#define hashtab_for_each(hashtab, cur, block) hash_for_each(htable, size, hashtab, cur, block)
// avtab traversal
#define avtab_for_each(avtab, cur, block) hash_for_each(htable, nslot, avtab, cur, block)
2017-04-15 19:26:29 +08:00
2018-11-08 04:20:16 -05:00
int create_domain(const char *d);
int set_domain_state(const char *s, int state);
int add_typeattribute(const char *domainS, const char *attr);
int add_rule(const char *s, const char *t, const char *c, const char *p, int effect, int n);
int add_xperm_rule(const char *s, const char *t, const char *c, const char *range, int effect, int n);
int add_type_rule(const char *s, const char *t, const char *c, const char *d, int effect);
2018-11-08 04:20:16 -05:00
2019-06-30 19:09:31 -07:00
__END_DECLS