| /* |
| * profile.h |
| * |
| * Copyright (C) 2005 by Theodore Ts'o. |
| * |
| * %Begin-Header% |
| * This file may be redistributed under the terms of the GNU Public |
| * License. |
| * %End-Header% |
| * |
| * Copyright (C) 1985-2005 by the Massachusetts Institute of Technology. |
| * |
| * All rights reserved. |
| * |
| * Export of this software from the United States of America may require |
| * a specific license from the United States Government. It is the |
| * responsibility of any person or organization contemplating export to |
| * obtain such a license before exporting. |
| * |
| * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and |
| * distribute this software and its documentation for any purpose and |
| * without fee is hereby granted, provided that the above copyright |
| * notice appear in all copies and that both that copyright notice and |
| * this permission notice appear in supporting documentation, and that |
| * the name of M.I.T. not be used in advertising or publicity pertaining |
| * to distribution of the software without specific, written prior |
| * permission. Furthermore if you modify this software you must label |
| * your software as modified software and not distribute it in such a |
| * fashion that it might be confused with the original MIT software. |
| * M.I.T. makes no representations about the suitability of this software |
| * for any purpose. It is provided "as is" without express or implied |
| * warranty. |
| * |
| * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR |
| * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED |
| * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. |
| */ |
| |
| #ifndef _PROFILE_H |
| #define _PROFILE_H |
| |
| typedef struct _profile_t *profile_t; |
| |
| typedef void (*profile_syntax_err_cb_t)(const char *file, long err, |
| int line_num); |
| |
| /* |
| * Used by the profile iterator in prof_get.c |
| */ |
| #define PROFILE_ITER_LIST_SECTION 0x0001 |
| #define PROFILE_ITER_SECTIONS_ONLY 0x0002 |
| #define PROFILE_ITER_RELATIONS_ONLY 0x0004 |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif /* __cplusplus */ |
| |
| long profile_init |
| (const char * *files, profile_t *ret_profile); |
| |
| void profile_release |
| (profile_t profile); |
| |
| long profile_set_default |
| (profile_t profile, const char *def_string); |
| |
| long profile_get_string |
| (profile_t profile, const char *name, const char *subname, |
| const char *subsubname, const char *def_val, |
| char **ret_string); |
| long profile_get_integer |
| (profile_t profile, const char *name, const char *subname, |
| const char *subsubname, int def_val, |
| int *ret_default); |
| |
| long profile_get_uint |
| (profile_t profile, const char *name, const char *subname, |
| const char *subsubname, unsigned int def_val, |
| unsigned int *ret_int); |
| |
| long profile_get_boolean |
| (profile_t profile, const char *name, const char *subname, |
| const char *subsubname, int def_val, |
| int *ret_default); |
| |
| long profile_iterator_create |
| (profile_t profile, const char *const *names, |
| int flags, void **ret_iter); |
| |
| void profile_iterator_free |
| (void **iter_p); |
| |
| long profile_iterator |
| (void **iter_p, char **ret_name, char **ret_value); |
| |
| profile_syntax_err_cb_t profile_set_syntax_err_cb(profile_syntax_err_cb_t hook); |
| |
| #ifdef __cplusplus |
| } |
| #endif /* __cplusplus */ |
| |
| #endif /* _KRB5_H */ |