1/* Copyright (C) 1996, 1997, 1999, 2008 Free Software Foundation, Inc.
2   This file is part of the GNU C Library.
3
4   The GNU C Library is free software; you can redistribute it and/or
5   modify it under the terms of the GNU Lesser General Public
6   License as published by the Free Software Foundation; either
7   version 2.1 of the License, or (at your option) any later version.
8
9   The GNU C Library is distributed in the hope that it will be useful,
10   but WITHOUT ANY WARRANTY; without even the implied warranty of
11   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12   Lesser General Public License for more details.
13
14   You should have received a copy of the GNU Lesser General Public
15   License along with the GNU C Library; if not, write to the Free
16   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
17   02111-1307 USA.  */
18
19/* Define interface to NSS.  This is meant for the interface functions
20   and for implementors of new services.  */
21
22#ifndef _NSS_H
23#define _NSS_H	1
24
25#include <features.h>
26#include <stdint.h>
27
28
29__BEGIN_DECLS
30
31/* Possible results of lookup using a nss_* function.  */
32enum nss_status
33{
34  NSS_STATUS_TRYAGAIN = -2,
35  NSS_STATUS_UNAVAIL,
36  NSS_STATUS_NOTFOUND,
37  NSS_STATUS_SUCCESS,
38  NSS_STATUS_RETURN
39};
40
41
42/* Data structure used for the 'gethostbyname4_r' function.  */
43struct gaih_addrtuple
44  {
45    struct gaih_addrtuple *next;
46    char *name;
47    int family;
48    uint32_t addr[4];
49    uint32_t scopeid;
50  };
51
52
53/* Overwrite service selection for database DBNAME using specification
54   in STRING.
55   This function should only be used by system programs which have to
56   work around non-existing services (e.e., while booting).
57   Attention: Using this function repeatedly will slowly eat up the
58   whole memory since previous selection data cannot be freed.  */
59extern int __nss_configure_lookup (__const char *__dbname,
60				   __const char *__string) __THROW;
61
62__END_DECLS
63
64#endif /* nss.h */
65