#ifndef KRB5_ADM_PROTO_H__
#define KRB5_ADM_PROTO_H__
#ifndef KRB5_KDB5__
struct _krb5_db_entry;
typedef struct _krb5_db_entry krb5_db_entry;
#endif
#ifndef KRB5_KDB5__
struct ___krb5_key_salt_tuple;
typedef struct ___krb5_key_salt_tuple krb5_key_salt_tuple;
#endif
krb5_error_code krb5_klog_init(krb5_context, char *, char *, krb5_boolean);
void krb5_klog_set_context(krb5_context);
void krb5_klog_close(krb5_context);
int krb5_klog_syslog(int, const char *, ...)
#if !defined(__cplusplus) && (__GNUC__ > 2)
__attribute__((__format__(__printf__, 2, 3)))
#endif
;
void krb5_klog_reopen (krb5_context);
krb5_error_code krb5_aprof_getvals(krb5_pointer, const char **, char ***);
krb5_error_code krb5_aprof_get_boolean(krb5_pointer, const char **, int,
krb5_boolean *);
krb5_error_code krb5_aprof_get_deltat(krb5_pointer, const char **,
krb5_boolean, krb5_deltat *);
krb5_error_code krb5_aprof_get_string(krb5_pointer, const char **,
krb5_boolean, char **);
krb5_error_code krb5_aprof_get_string_all(krb5_pointer, const char **,
char **);
krb5_error_code krb5_aprof_get_int32(krb5_pointer, const char **,
krb5_boolean, krb5_int32 *);
krb5_error_code krb5_flagspec_to_mask(const char *,
krb5_flags *, krb5_flags *);
krb5_error_code krb5_flagnum_to_string(int, char **);
krb5_error_code krb5_flags_to_strings(krb5_int32, char ***);
krb5_boolean krb5_keysalt_is_present(krb5_key_salt_tuple *, krb5_int32,
krb5_enctype, krb5_int32);
krb5_error_code krb5_keysalt_iterate(krb5_key_salt_tuple *, krb5_int32,
krb5_boolean,
krb5_error_code (*)(krb5_key_salt_tuple *,
krb5_pointer),
krb5_pointer);
krb5_error_code krb5_string_to_keysalts(const char *, const char *,
const char *, krb5_boolean,
krb5_key_salt_tuple **, krb5_int32 *);
#endif