windows-kfw-sdk-20060921
[openafs.git] / src / WINNT / kfw / inc / krb5 / profile.h
1 /*
2  * profile.h
3  */
4
5 #ifndef _KRB5_PROFILE_H
6 #define _KRB5_PROFILE_H
7
8 #if defined(_WIN32)
9 #include <win-mac.h>
10 #endif
11
12 #if defined(__MACH__) && defined(__APPLE__)
13 #    include <TargetConditionals.h>
14 #    if TARGET_RT_MAC_CFM
15 #        error "Use KfM 4.0 SDK headers for CFM compilation."
16 #    endif
17 #endif
18
19 #ifndef KRB5_CALLCONV
20 #define KRB5_CALLCONV
21 #define KRB5_CALLCONV_C
22 #endif
23
24 typedef struct _profile_t *profile_t;
25
26 /*
27  * Used by the profile iterator in prof_get.c
28  */
29 #define PROFILE_ITER_LIST_SECTION       0x0001
30 #define PROFILE_ITER_SECTIONS_ONLY      0x0002
31 #define PROFILE_ITER_RELATIONS_ONLY     0x0004
32
33 #ifdef __cplusplus
34 extern "C" {
35 #endif /* __cplusplus */
36
37 typedef char* profile_filespec_t;       /* path as C string */
38 typedef char* profile_filespec_list_t;  /* list of : separated paths, C string */
39 typedef const char * const_profile_filespec_t;  /* path as C string */
40 typedef const char * const_profile_filespec_list_t;     /* list of : separated paths, C string */
41
42 long KRB5_CALLCONV profile_init
43         (const_profile_filespec_t *files, profile_t *ret_profile);
44
45 long KRB5_CALLCONV profile_init_path
46         (const_profile_filespec_list_t filelist, profile_t *ret_profile);
47
48 long KRB5_CALLCONV profile_flush
49         (profile_t profile);
50 long KRB5_CALLCONV profile_flush_to_file
51         (profile_t profile, const_profile_filespec_t outfile);
52 long KRB5_CALLCONV profile_flush_to_buffer
53         (profile_t profile, char **bufp);
54 void KRB5_CALLCONV profile_free_buffer
55         (profile_t profile, char *buf);
56
57 long KRB5_CALLCONV profile_is_writable
58         (profile_t profile, int *writable);
59 long KRB5_CALLCONV profile_is_modified
60         (profile_t profile, int *modified);
61
62 void KRB5_CALLCONV profile_abandon
63         (profile_t profile);
64
65 void KRB5_CALLCONV profile_release
66         (profile_t profile);
67
68 long KRB5_CALLCONV profile_get_values
69         (profile_t profile, const char *const *names, char ***ret_values);
70
71 void KRB5_CALLCONV profile_free_list
72         (char **list);
73
74 long KRB5_CALLCONV profile_get_string
75         (profile_t profile, const char *name, const char *subname, 
76                         const char *subsubname, const char *def_val,
77                         char **ret_string);
78 long KRB5_CALLCONV profile_get_integer
79         (profile_t profile, const char *name, const char *subname,
80                         const char *subsubname, int def_val,
81                         int *ret_default);
82
83 long KRB5_CALLCONV profile_get_boolean
84         (profile_t profile, const char *name, const char *subname,
85                         const char *subsubname, int def_val,
86                         int *ret_default);
87
88 long KRB5_CALLCONV profile_get_relation_names
89         (profile_t profile, const char **names, char ***ret_names);
90
91 long KRB5_CALLCONV profile_get_subsection_names
92         (profile_t profile, const char **names, char ***ret_names);
93
94 long KRB5_CALLCONV profile_iterator_create
95         (profile_t profile, const char *const *names,
96                    int flags, void **ret_iter);
97
98 void KRB5_CALLCONV profile_iterator_free
99         (void **iter_p);
100         
101 long KRB5_CALLCONV profile_iterator
102         (void   **iter_p, char **ret_name, char **ret_value);
103
104 void KRB5_CALLCONV profile_release_string (char *str);
105
106 long KRB5_CALLCONV profile_update_relation
107         (profile_t profile, const char **names, 
108                    const char *old_value, const char *new_value);
109
110 long KRB5_CALLCONV profile_clear_relation
111         (profile_t profile, const char **names);
112
113 long KRB5_CALLCONV profile_rename_section
114         (profile_t profile, const char **names, 
115                    const char *new_name);
116
117 long KRB5_CALLCONV profile_add_relation
118         (profile_t profile, const char **names, 
119                    const char *new_value);
120
121 #ifdef __cplusplus
122 }
123 #endif /* __cplusplus */
124
125 #endif /* _KRB5_PROFILE_H */
126 /*
127  * util/profile/prof_err.h:
128  * This file is automatically generated; please do not edit it.
129  */
130
131 #include <com_err.h>
132
133 #define PROF_VERSION                             (-1429577728L)
134 #define PROF_MAGIC_NODE                          (-1429577727L)
135 #define PROF_NO_SECTION                          (-1429577726L)
136 #define PROF_NO_RELATION                         (-1429577725L)
137 #define PROF_ADD_NOT_SECTION                     (-1429577724L)
138 #define PROF_SECTION_WITH_VALUE                  (-1429577723L)
139 #define PROF_BAD_LINK_LIST                       (-1429577722L)
140 #define PROF_BAD_GROUP_LVL                       (-1429577721L)
141 #define PROF_BAD_PARENT_PTR                      (-1429577720L)
142 #define PROF_MAGIC_ITERATOR                      (-1429577719L)
143 #define PROF_SET_SECTION_VALUE                   (-1429577718L)
144 #define PROF_EINVAL                              (-1429577717L)
145 #define PROF_READ_ONLY                           (-1429577716L)
146 #define PROF_SECTION_NOTOP                       (-1429577715L)
147 #define PROF_SECTION_SYNTAX                      (-1429577714L)
148 #define PROF_RELATION_SYNTAX                     (-1429577713L)
149 #define PROF_EXTRA_CBRACE                        (-1429577712L)
150 #define PROF_MISSING_OBRACE                      (-1429577711L)
151 #define PROF_MAGIC_PROFILE                       (-1429577710L)
152 #define PROF_MAGIC_SECTION                       (-1429577709L)
153 #define PROF_TOPSECTION_ITER_NOSUPP              (-1429577708L)
154 #define PROF_INVALID_SECTION                     (-1429577707L)
155 #define PROF_END_OF_SECTIONS                     (-1429577706L)
156 #define PROF_BAD_NAMESET                         (-1429577705L)
157 #define PROF_NO_PROFILE                          (-1429577704L)
158 #define PROF_MAGIC_FILE                          (-1429577703L)
159 #define PROF_FAIL_OPEN                           (-1429577702L)
160 #define PROF_EXISTS                              (-1429577701L)
161 #define PROF_BAD_BOOLEAN                         (-1429577700L)
162 #define PROF_BAD_INTEGER                         (-1429577699L)
163 #define PROF_MAGIC_FILE_DATA                     (-1429577698L)
164 #define ERROR_TABLE_BASE_prof (-1429577728L)
165
166 extern const struct error_table et_prof_error_table;
167
168 #if !defined(_WIN32)
169 /* for compatibility with older versions... */
170 extern void initialize_prof_error_table (void) /*@modifies internalState@*/;
171 #else
172 #define initialize_prof_error_table()
173 #endif
174
175 #if !defined(_WIN32)
176 #define init_prof_err_tbl initialize_prof_error_table
177 #define prof_err_base ERROR_TABLE_BASE_prof
178 #endif