2005-02-05 Zoltan Varga <vargaz@freemail.hu>
[mono.git] / mono / mini / declsec.h
1 /*
2  * declsec.h:  Declarative Security support
3  *
4  * Author:
5  *      Sebastien Pouliot  <sebastien@ximian.com>
6  *
7  * (C) 2004 Novell (http://www.novell.com)
8  */
9
10 #ifndef _MONO_MINI_DECLSEC_H_
11 #define _MONO_MINI_DECLSEC_H_
12
13 #include <string.h>
14
15 #include "mono/metadata/class-internals.h"
16 #include "mono/metadata/domain-internals.h"
17 #include "mono/metadata/object.h"
18 #include "mono/metadata/tabledefs.h"
19 #include "mono/metadata/marshal.h"
20
21
22 /* Definitions */
23
24 typedef struct {
25         MonoObject obj;
26         MonoReflectionMethod *method;
27         MonoDeclSecurityEntry assert;
28         MonoDeclSecurityEntry deny;
29         MonoDeclSecurityEntry permitonly;
30 } MonoSecurityFrame;
31
32
33 /* limited flags used in MonoJitInfo for stack modifiers */
34 enum {
35         MONO_JITINFO_STACKMOD_ASSERT            = 0x01,
36         MONO_JITINFO_STACKMOD_DENY              = 0x02,
37         MONO_JITINFO_STACKMOD_PERMITONLY        = 0x04
38 };
39
40 /* Prototypes */
41 MonoBoolean mono_method_has_declsec (MonoMethod *method);
42 void mono_declsec_cache_stack_modifiers (MonoJitInfo *jinfo);
43 MonoSecurityFrame* mono_declsec_create_frame (MonoDomain *domain, MonoJitInfo *jinfo);
44
45 #endif /* _MONO_MINI_DECLSEC_H_ */