]> git.proxmox.com Git - mirror_ubuntu-artful-kernel.git/blame - security/apparmor/include/policy_unpack.h
Merge branches 'for-4.11/upstream-fixes', 'for-4.12/accutouch', 'for-4.12/cp2112...
[mirror_ubuntu-artful-kernel.git] / security / apparmor / include / policy_unpack.h
CommitLineData
736ec752
JJ
1/*
2 * AppArmor security module
3 *
4 * This file contains AppArmor policy loading interface function definitions.
5 *
6 * Copyright (C) 1998-2008 Novell/SUSE
7 * Copyright 2009-2010 Canonical Ltd.
8 *
9 * This program is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU General Public License as
11 * published by the Free Software Foundation, version 2 of the
12 * License.
13 */
14
15#ifndef __POLICY_INTERFACE_H
16#define __POLICY_INTERFACE_H
17
dd51c848 18#include <linux/list.h>
5ac8c355 19#include <linux/kref.h>
dd51c848
JJ
20
21struct aa_load_ent {
22 struct list_head list;
23 struct aa_profile *new;
24 struct aa_profile *old;
25 struct aa_profile *rename;
04dc715e 26 const char *ns_name;
dd51c848
JJ
27};
28
29void aa_load_ent_free(struct aa_load_ent *ent);
30struct aa_load_ent *aa_load_ent_alloc(void);
31
03816507
JJ
32#define PACKED_FLAG_HAT 1
33
34#define PACKED_MODE_ENFORCE 0
35#define PACKED_MODE_COMPLAIN 1
36#define PACKED_MODE_KILL 2
37#define PACKED_MODE_UNCONFINED 3
38
5ac8c355
JJ
39/* struct aa_loaddata - buffer of policy load data set */
40struct aa_loaddata {
41 struct kref count;
42 size_t size;
43 int abi;
44 unsigned char *hash;
45 char data[];
46};
47
48int aa_unpack(struct aa_loaddata *udata, struct list_head *lh, const char **ns);
49
50static inline struct aa_loaddata *
51aa_get_loaddata(struct aa_loaddata *data)
52{
53 if (data)
54 kref_get(&(data->count));
55 return data;
56}
57
58void aa_loaddata_kref(struct kref *kref);
59static inline void aa_put_loaddata(struct aa_loaddata *data)
60{
61 if (data)
62 kref_put(&data->count, aa_loaddata_kref);
63}
736ec752
JJ
64
65#endif /* __POLICY_INTERFACE_H */