1505d05c7Sgtb /*
2bfc032a1SShawn Emery  * Copyright (c) 1999, 2010, Oracle and/or its affiliates. All rights reserved.
3505d05c7Sgtb  */
4505d05c7Sgtb 
57c478bd9Sstevel@tonic-gate /*
67c478bd9Sstevel@tonic-gate  * profile.h
77c478bd9Sstevel@tonic-gate  */
87c478bd9Sstevel@tonic-gate 
97c478bd9Sstevel@tonic-gate #ifndef _KRB5_PROFILE_H
107c478bd9Sstevel@tonic-gate #define _KRB5_PROFILE_H
117c478bd9Sstevel@tonic-gate 
12505d05c7Sgtb #if defined(_WIN32)
137c478bd9Sstevel@tonic-gate #include <win-mac.h>
147c478bd9Sstevel@tonic-gate #endif
157c478bd9Sstevel@tonic-gate 
16505d05c7Sgtb #if defined(__MACH__) && defined(__APPLE__)
17505d05c7Sgtb #    include <TargetConditionals.h>
18505d05c7Sgtb #    if TARGET_RT_MAC_CFM
19505d05c7Sgtb #        error "Use KfM 4.0 SDK headers for CFM compilation."
20505d05c7Sgtb #    endif
21505d05c7Sgtb #endif
22505d05c7Sgtb 
237c478bd9Sstevel@tonic-gate #ifndef KRB5_CALLCONV
247c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV
257c478bd9Sstevel@tonic-gate #define KRB5_CALLCONV_C
267c478bd9Sstevel@tonic-gate #endif
277c478bd9Sstevel@tonic-gate 
287c478bd9Sstevel@tonic-gate typedef struct _profile_t *profile_t;
297c478bd9Sstevel@tonic-gate 
307c478bd9Sstevel@tonic-gate /*
317c478bd9Sstevel@tonic-gate  * Used by the profile iterator in prof_get.c
327c478bd9Sstevel@tonic-gate  */
337c478bd9Sstevel@tonic-gate #define PROFILE_ITER_LIST_SECTION	0x0001
347c478bd9Sstevel@tonic-gate #define PROFILE_ITER_SECTIONS_ONLY	0x0002
357c478bd9Sstevel@tonic-gate #define PROFILE_ITER_RELATIONS_ONLY	0x0004
367c478bd9Sstevel@tonic-gate 
377c478bd9Sstevel@tonic-gate #ifdef __cplusplus
387c478bd9Sstevel@tonic-gate extern "C" {
39bfc032a1SShawn Emery #endif
407c478bd9Sstevel@tonic-gate 
417c478bd9Sstevel@tonic-gate typedef char* profile_filespec_t;	/* path as C string */
427c478bd9Sstevel@tonic-gate typedef char* profile_filespec_list_t;	/* list of : separated paths, C string */
43505d05c7Sgtb typedef const char * const_profile_filespec_t;	/* path as C string */
44505d05c7Sgtb typedef const char * const_profile_filespec_list_t;	/* list of : separated paths, C string */
457c478bd9Sstevel@tonic-gate 
46505d05c7Sgtb long KRB5_CALLCONV profile_init
47505d05c7Sgtb 	(const_profile_filespec_t *files, profile_t *ret_profile);
487c478bd9Sstevel@tonic-gate 
49505d05c7Sgtb long KRB5_CALLCONV profile_init_path
50505d05c7Sgtb 	(const_profile_filespec_list_t filelist, profile_t *ret_profile);
517c478bd9Sstevel@tonic-gate 
52505d05c7Sgtb long KRB5_CALLCONV profile_flush
53505d05c7Sgtb 	(profile_t profile);
54505d05c7Sgtb long KRB5_CALLCONV profile_flush_to_file
55505d05c7Sgtb 	(profile_t profile, const_profile_filespec_t outfile);
56505d05c7Sgtb long KRB5_CALLCONV profile_flush_to_buffer
57505d05c7Sgtb 	(profile_t profile, char **bufp);
58505d05c7Sgtb void KRB5_CALLCONV profile_free_buffer
59505d05c7Sgtb 	(profile_t profile, char *buf);
607c478bd9Sstevel@tonic-gate 
61505d05c7Sgtb long KRB5_CALLCONV profile_is_writable
62505d05c7Sgtb 	(profile_t profile, int *writable);
63505d05c7Sgtb long KRB5_CALLCONV profile_is_modified
64505d05c7Sgtb 	(profile_t profile, int *modified);
657c478bd9Sstevel@tonic-gate 
66505d05c7Sgtb void KRB5_CALLCONV profile_abandon
67505d05c7Sgtb 	(profile_t profile);
687c478bd9Sstevel@tonic-gate 
69505d05c7Sgtb void KRB5_CALLCONV profile_release
70505d05c7Sgtb 	(profile_t profile);
717c478bd9Sstevel@tonic-gate 
72505d05c7Sgtb long KRB5_CALLCONV profile_get_values
73505d05c7Sgtb 	(profile_t profile, const char *const *names, char ***ret_values);
747c478bd9Sstevel@tonic-gate 
75505d05c7Sgtb void KRB5_CALLCONV profile_free_list
76505d05c7Sgtb 	(char **list);
77505d05c7Sgtb 
78505d05c7Sgtb long KRB5_CALLCONV profile_get_string
79*55fea89dSDan Cross 	(profile_t profile, const char *name, const char *subname,
807c478bd9Sstevel@tonic-gate 			const char *subsubname, const char *def_val,
81505d05c7Sgtb 			char **ret_string);
82505d05c7Sgtb long KRB5_CALLCONV profile_get_integer
83505d05c7Sgtb 	(profile_t profile, const char *name, const char *subname,
84505d05c7Sgtb 			const char *subsubname, int def_val,
85505d05c7Sgtb 			int *ret_default);
86505d05c7Sgtb 
87505d05c7Sgtb long KRB5_CALLCONV profile_get_boolean
88505d05c7Sgtb 	(profile_t profile, const char *name, const char *subname,
897c478bd9Sstevel@tonic-gate 			const char *subsubname, int def_val,
90505d05c7Sgtb 			int *ret_default);
917c478bd9Sstevel@tonic-gate 
92505d05c7Sgtb long KRB5_CALLCONV profile_get_relation_names
93505d05c7Sgtb 	(profile_t profile, const char **names, char ***ret_names);
947c478bd9Sstevel@tonic-gate 
95505d05c7Sgtb long KRB5_CALLCONV profile_get_subsection_names
96505d05c7Sgtb 	(profile_t profile, const char **names, char ***ret_names);
977c478bd9Sstevel@tonic-gate 
98505d05c7Sgtb long KRB5_CALLCONV profile_iterator_create
99505d05c7Sgtb 	(profile_t profile, const char *const *names,
100505d05c7Sgtb 		   int flags, void **ret_iter);
1017c478bd9Sstevel@tonic-gate 
102505d05c7Sgtb void KRB5_CALLCONV profile_iterator_free
103505d05c7Sgtb 	(void **iter_p);
104*55fea89dSDan Cross 
105505d05c7Sgtb long KRB5_CALLCONV profile_iterator
106505d05c7Sgtb 	(void	**iter_p, char **ret_name, char **ret_value);
1077c478bd9Sstevel@tonic-gate 
108505d05c7Sgtb void KRB5_CALLCONV profile_release_string (char *str);
1097c478bd9Sstevel@tonic-gate 
110505d05c7Sgtb long KRB5_CALLCONV profile_update_relation
111*55fea89dSDan Cross 	(profile_t profile, const char **names,
112505d05c7Sgtb 		   const char *old_value, const char *new_value);
1137c478bd9Sstevel@tonic-gate 
114505d05c7Sgtb long KRB5_CALLCONV profile_clear_relation
115505d05c7Sgtb 	(profile_t profile, const char **names);
1167c478bd9Sstevel@tonic-gate 
117505d05c7Sgtb long KRB5_CALLCONV profile_rename_section
118*55fea89dSDan Cross 	(profile_t profile, const char **names,
119505d05c7Sgtb 		   const char *new_name);
1207c478bd9Sstevel@tonic-gate 
121505d05c7Sgtb long KRB5_CALLCONV profile_add_relation
122*55fea89dSDan Cross 	(profile_t profile, const char **names,
123505d05c7Sgtb 		   const char *new_value);
1247c478bd9Sstevel@tonic-gate 
125bfc032a1SShawn Emery /*
126bfc032a1SShawn Emery  * Solaris Kerberos: Provide abstract declarations for applications, such as
127bfc032a1SShawn Emery  * kconf and smb.
128bfc032a1SShawn Emery  */
129bfc032a1SShawn Emery long __profile_init(char *filename, profile_t *profile);
130bfc032a1SShawn Emery long __profile_release(profile_t profile);
131bfc032a1SShawn Emery void __profile_abandon(profile_t profile);
132bfc032a1SShawn Emery long __profile_add_domain_mapping(profile_t profile, char *domain, char *realm);
133bfc032a1SShawn Emery long __profile_remove_domain_mapping(profile_t profile, char *realm);
134bfc032a1SShawn Emery long __profile_get_realm_entry(profile_t profile, char *realm, char *name,
135bfc032a1SShawn Emery     char ***ret_value);
136bfc032a1SShawn Emery long __profile_add_realm_entry(profile_t profile, char *realm, char *name,
137bfc032a1SShawn Emery     char **values);
138bfc032a1SShawn Emery long __profile_get_default_realm(profile_t profile, char **realm);
139bfc032a1SShawn Emery long __profile_get_realms(profile_t profile, char ***realms);
140bfc032a1SShawn Emery long __profile_add_realm(profile_t profile, char *realm, char *master,
141bfc032a1SShawn Emery     char **kdcs, boolean_t set_change, boolean_t default_realm);
142bfc032a1SShawn Emery long __profile_remove_xrealm_mapping(profile_t profile, char *realm);
143bfc032a1SShawn Emery long __profile_remove_realm(profile_t profile, char *realm);
144bfc032a1SShawn Emery long __profile_add_xrealm_mapping(profile_t profile, char *source, char *target,
145bfc032a1SShawn Emery     char *inter);
146bfc032a1SShawn Emery long __profile_validate(profile_t profile, int *val_err, char **val);
147bfc032a1SShawn Emery 
1487c478bd9Sstevel@tonic-gate #ifdef __cplusplus
1497c478bd9Sstevel@tonic-gate }
150bfc032a1SShawn Emery #endif
1517c478bd9Sstevel@tonic-gate 
1527c478bd9Sstevel@tonic-gate #endif /* _KRB5_PROFILE_H */
15310db1377Sgtb 
15410db1377Sgtb /*
15510db1377Sgtb  * ettmp22072.h:
15610db1377Sgtb  * This file is automatically generated; please do not edit it.
15710db1377Sgtb  */
15810db1377Sgtb 
15910db1377Sgtb #include <com_err.h>
16010db1377Sgtb 
16110db1377Sgtb #define PROF_VERSION                             (-1429577728L)
16210db1377Sgtb #define PROF_MAGIC_NODE                          (-1429577727L)
16310db1377Sgtb #define PROF_NO_SECTION                          (-1429577726L)
16410db1377Sgtb #define PROF_NO_RELATION                         (-1429577725L)
16510db1377Sgtb #define PROF_ADD_NOT_SECTION                     (-1429577724L)
16610db1377Sgtb #define PROF_SECTION_WITH_VALUE                  (-1429577723L)
16710db1377Sgtb #define PROF_BAD_LINK_LIST                       (-1429577722L)
16810db1377Sgtb #define PROF_BAD_GROUP_LVL                       (-1429577721L)
16910db1377Sgtb #define PROF_BAD_PARENT_PTR                      (-1429577720L)
17010db1377Sgtb #define PROF_MAGIC_ITERATOR                      (-1429577719L)
17110db1377Sgtb #define PROF_SET_SECTION_VALUE                   (-1429577718L)
17210db1377Sgtb #define PROF_EINVAL                              (-1429577717L)
17310db1377Sgtb #define PROF_READ_ONLY                           (-1429577716L)
17410db1377Sgtb #define PROF_SECTION_NOTOP                       (-1429577715L)
17510db1377Sgtb #define PROF_SECTION_SYNTAX                      (-1429577714L)
17610db1377Sgtb #define PROF_RELATION_SYNTAX                     (-1429577713L)
17710db1377Sgtb #define PROF_EXTRA_CBRACE                        (-1429577712L)
17810db1377Sgtb #define PROF_MISSING_OBRACE                      (-1429577711L)
17910db1377Sgtb #define PROF_MAGIC_PROFILE                       (-1429577710L)
18010db1377Sgtb #define PROF_MAGIC_SECTION                       (-1429577709L)
18110db1377Sgtb #define PROF_TOPSECTION_ITER_NOSUPP              (-1429577708L)
18210db1377Sgtb #define PROF_INVALID_SECTION                     (-1429577707L)
18310db1377Sgtb #define PROF_END_OF_SECTIONS                     (-1429577706L)
18410db1377Sgtb #define PROF_BAD_NAMESET                         (-1429577705L)
18510db1377Sgtb #define PROF_NO_PROFILE                          (-1429577704L)
18610db1377Sgtb #define PROF_MAGIC_FILE                          (-1429577703L)
18710db1377Sgtb #define PROF_FAIL_OPEN                           (-1429577702L)
18810db1377Sgtb #define PROF_EXISTS                              (-1429577701L)
18910db1377Sgtb #define PROF_BAD_BOOLEAN                         (-1429577700L)
19010db1377Sgtb #define PROF_BAD_INTEGER                         (-1429577699L)
19110db1377Sgtb #define PROF_MAGIC_FILE_DATA                     (-1429577698L)
19210db1377Sgtb 
19310db1377Sgtb #define ERROR_TABLE_BASE_prof (-1429577728L)
19410db1377Sgtb 
19510db1377Sgtb /* for compatibility with older versions... */
19610db1377Sgtb #define prof_err_base ERROR_TABLE_BASE_prof
197