119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* 219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * profile.h 319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * 419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Copyright (C) 2005 by Theodore Ts'o. 519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * 619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * %Begin-Header% 719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * This file may be redistributed under the terms of the GNU Public 819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * License. 919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * %End-Header% 103984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt * 1119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Copyright (C) 1985-2005 by the Massachusetts Institute of Technology. 123984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt * 1319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * All rights reserved. 143984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt * 1519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Export of this software from the United States of America may require 1619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * a specific license from the United States Government. It is the 1719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * responsibility of any person or organization contemplating export to 1819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * obtain such a license before exporting. 193984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt * 2019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * WITHIN THAT CONSTRAINT, permission to use, copy, modify, and 2119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * distribute this software and its documentation for any purpose and 2219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * without fee is hereby granted, provided that the above copyright 2319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * notice appear in all copies and that both that copyright notice and 2419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * this permission notice appear in supporting documentation, and that 2519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * the name of M.I.T. not be used in advertising or publicity pertaining 2619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * to distribution of the software without specific, written prior 2719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * permission. Furthermore if you modify this software you must label 2819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * your software as modified software and not distribute it in such a 2919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * fashion that it might be confused with the original MIT software. 3019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * M.I.T. makes no representations about the suitability of this software 3119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * for any purpose. It is provided "as is" without express or implied 3219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * warranty. 333984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt * 3419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 3519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 3619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 3719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */ 3819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 3919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifndef _PROFILE_H 4019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define _PROFILE_H 4119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projecttypedef struct _profile_t *profile_t; 4319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 443984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidttypedef void (*profile_syntax_err_cb_t)(const char *file, long err, 4519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int line_num); 4619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 4719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project/* 4819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project * Used by the profile iterator in prof_get.c 4919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project */ 5019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define PROFILE_ITER_LIST_SECTION 0x0001 5119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define PROFILE_ITER_SECTIONS_ONLY 0x0002 5219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#define PROFILE_ITER_RELATIONS_ONLY 0x0004 5319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __cplusplus 5519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectextern "C" { 5619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* __cplusplus */ 5719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 5819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_init 5919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (const char * *files, profile_t *ret_profile); 6019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 6119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectvoid profile_release 6219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile); 6319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 6419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_set_default 6519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile, const char *def_string); 6619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 6719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_get_string 683984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt (profile_t profile, const char *name, const char *subname, 6919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *subsubname, const char *def_val, 7019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project char **ret_string); 7119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_get_integer 7219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile, const char *name, const char *subname, 7319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *subsubname, int def_val, 7419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int *ret_default); 7519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 7619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_get_uint 7719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile, const char *name, const char *subname, 783984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt const char *subsubname, unsigned int def_val, 7919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project unsigned int *ret_int); 8019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 8119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_get_boolean 8219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile, const char *name, const char *subname, 8319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project const char *subsubname, int def_val, 8419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int *ret_default); 8519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 8619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_iterator_create 8719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (profile_t profile, const char *const *names, 8819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project int flags, void **ret_iter); 8919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectvoid profile_iterator_free 9119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (void **iter_p); 923984b61df41c68966bdfbb2a5e5a45ef4b9a536cDmitry Shmidt 9319dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectlong profile_iterator 9419dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project (void **iter_p, char **ret_name, char **ret_value); 9519dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9619dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Projectprofile_syntax_err_cb_t profile_set_syntax_err_cb(profile_syntax_err_cb_t hook); 9719dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 9819dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#ifdef __cplusplus 9919dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project} 10019dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* __cplusplus */ 10119dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project 10219dacda2b02bb08c0ffb649f84526b249c749279The Android Open Source Project#endif /* _KRB5_H */ 103