1255e72915d4cbddceb435e13d81601755714e9fSE Android/* Author: Karl MacMillan <kmacmillan@tresys.com>
2255e72915d4cbddceb435e13d81601755714e9fSE Android *
3255e72915d4cbddceb435e13d81601755714e9fSE Android * Copyright (C) 2004-2005 Tresys Technology, LLC
4255e72915d4cbddceb435e13d81601755714e9fSE Android *
5255e72915d4cbddceb435e13d81601755714e9fSE Android *  This library is free software; you can redistribute it and/or
6255e72915d4cbddceb435e13d81601755714e9fSE Android *  modify it under the terms of the GNU Lesser General Public
7255e72915d4cbddceb435e13d81601755714e9fSE Android *  License as published by the Free Software Foundation; either
8255e72915d4cbddceb435e13d81601755714e9fSE Android *  version 2.1 of the License, or (at your option) any later version.
9255e72915d4cbddceb435e13d81601755714e9fSE Android *
10255e72915d4cbddceb435e13d81601755714e9fSE Android *  This library is distributed in the hope that it will be useful,
11255e72915d4cbddceb435e13d81601755714e9fSE Android *  but WITHOUT ANY WARRANTY; without even the implied warranty of
12255e72915d4cbddceb435e13d81601755714e9fSE Android *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13255e72915d4cbddceb435e13d81601755714e9fSE Android *  Lesser General Public License for more details.
14255e72915d4cbddceb435e13d81601755714e9fSE Android *
15255e72915d4cbddceb435e13d81601755714e9fSE Android *  You should have received a copy of the GNU Lesser General Public
16255e72915d4cbddceb435e13d81601755714e9fSE Android *  License along with this library; if not, write to the Free Software
17255e72915d4cbddceb435e13d81601755714e9fSE Android *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18255e72915d4cbddceb435e13d81601755714e9fSE Android */
19255e72915d4cbddceb435e13d81601755714e9fSE Android
20255e72915d4cbddceb435e13d81601755714e9fSE Android#ifndef _SEPOL_POLICYDB_MODULE_H_
21255e72915d4cbddceb435e13d81601755714e9fSE Android#define _SEPOL_POLICYDB_MODULE_H_
22255e72915d4cbddceb435e13d81601755714e9fSE Android
23255e72915d4cbddceb435e13d81601755714e9fSE Android#include <stdlib.h>
24255e72915d4cbddceb435e13d81601755714e9fSE Android#include <stddef.h>
25255e72915d4cbddceb435e13d81601755714e9fSE Android
26255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/module.h>
27255e72915d4cbddceb435e13d81601755714e9fSE Android
28255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/policydb/policydb.h>
29255e72915d4cbddceb435e13d81601755714e9fSE Android#include <sepol/policydb/conditional.h>
30255e72915d4cbddceb435e13d81601755714e9fSE Android
31255e72915d4cbddceb435e13d81601755714e9fSE Android#define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f
32255e72915d4cbddceb435e13d81601755714e9fSE Android
33255e72915d4cbddceb435e13d81601755714e9fSE Androidstruct sepol_module_package {
34255e72915d4cbddceb435e13d81601755714e9fSE Android	sepol_policydb_t *policy;
35255e72915d4cbddceb435e13d81601755714e9fSE Android	uint32_t version;
36255e72915d4cbddceb435e13d81601755714e9fSE Android	char *file_contexts;
37255e72915d4cbddceb435e13d81601755714e9fSE Android	size_t file_contexts_len;
38255e72915d4cbddceb435e13d81601755714e9fSE Android	char *seusers;
39255e72915d4cbddceb435e13d81601755714e9fSE Android	size_t seusers_len;
40255e72915d4cbddceb435e13d81601755714e9fSE Android	char *user_extra;
41255e72915d4cbddceb435e13d81601755714e9fSE Android	size_t user_extra_len;
42255e72915d4cbddceb435e13d81601755714e9fSE Android	char *netfilter_contexts;
43255e72915d4cbddceb435e13d81601755714e9fSE Android	size_t netfilter_contexts_len;
44255e72915d4cbddceb435e13d81601755714e9fSE Android};
45255e72915d4cbddceb435e13d81601755714e9fSE Android
46255e72915d4cbddceb435e13d81601755714e9fSE Androidextern int sepol_module_package_init(sepol_module_package_t * p);
47255e72915d4cbddceb435e13d81601755714e9fSE Android
48255e72915d4cbddceb435e13d81601755714e9fSE Android#endif
49