113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle/* Author: Karl MacMillan <kmacmillan@tresys.com>
213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *
313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle * Copyright (C) 2004-2005 Tresys Technology, LLC
413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *
513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  This library is free software; you can redistribute it and/or
613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  modify it under the terms of the GNU Lesser General Public
713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  License as published by the Free Software Foundation; either
813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  version 2.1 of the License, or (at your option) any later version.
913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *
1013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  This library is distributed in the hope that it will be useful,
1113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  but WITHOUT ANY WARRANTY; without even the implied warranty of
1213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
1313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  Lesser General Public License for more details.
1413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *
1513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  You should have received a copy of the GNU Lesser General Public
1613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  License along with this library; if not, write to the Free Software
1713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle *  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
1813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle */
1913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#ifndef _SEPOL_POLICYDB_MODULE_H_
2113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define _SEPOL_POLICYDB_MODULE_H_
2213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <stdlib.h>
2413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <stddef.h>
2513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/module.h>
2713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
2813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/policydb/policydb.h>
2913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#include <sepol/policydb/conditional.h>
30ed7a6ba24ad3241e696fa7bc9bb56bb4f373147bdcashman#include <sys/cdefs.h>
3113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
3213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f
3313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
34ed7a6ba24ad3241e696fa7bc9bb56bb4f373147bdcashman__BEGIN_DECLS
35ed7a6ba24ad3241e696fa7bc9bb56bb4f373147bdcashman
3613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindlestruct sepol_module_package {
3713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	sepol_policydb_t *policy;
3813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	uint32_t version;
3913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	char *file_contexts;
4013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	size_t file_contexts_len;
4113cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	char *seusers;
4213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	size_t seusers_len;
4313cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	char *user_extra;
4413cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	size_t user_extra_len;
4513cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	char *netfilter_contexts;
4613cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle	size_t netfilter_contexts_len;
4713cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle};
4813cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
4913cd4c8960688af11ad23b4c946149015c80d54Joshua Brindleextern int sepol_module_package_init(sepol_module_package_t * p);
5013cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle
51ed7a6ba24ad3241e696fa7bc9bb56bb4f373147bdcashman__END_DECLS
5213cd4c8960688af11ad23b4c946149015c80d54Joshua Brindle#endif
53