Blame include/nss_files.h

Packit Service 1884e5
/* Internal routines for nss_files.
Packit Service 1884e5
   Copyright (C) 2020 Free Software Foundation, Inc.
Packit Service 1884e5
   This file is part of the GNU C Library.
Packit Service 1884e5
Packit Service 1884e5
   The GNU C Library is free software; you can redistribute it and/or
Packit Service 1884e5
   modify it under the terms of the GNU Lesser General Public
Packit Service 1884e5
   License as published by the Free Software Foundation; either
Packit Service 1884e5
   version 2.1 of the License, or (at your option) any later version.
Packit Service 1884e5
Packit Service 1884e5
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service 1884e5
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 1884e5
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service 1884e5
   Lesser General Public License for more details.
Packit Service 1884e5
Packit Service 1884e5
   You should have received a copy of the GNU Lesser General Public
Packit Service 1884e5
   License along with the GNU C Library; if not, see
Packit Service 1884e5
   <https://www.gnu.org/licenses/>.  */
Packit Service 1884e5
Packit Service 1884e5
#ifndef _NSS_FILES_H
Packit Service 1884e5
#define _NSS_FILES_H
Packit Service 1884e5
Packit Service 1884e5
#include <stdio.h>
Packit Service 1884e5
Packit Service 1884e5
/* Open PATH for reading, as a data source for nss_files.  */
Packit Service 1884e5
FILE *__nss_files_fopen (const char *path);
Packit Service 1884e5
libc_hidden_proto (__nss_files_fopen)
Packit Service 1884e5
Packit Service bac6eb
/* Read a line from FP, storing it BUF.  Strip leading blanks and skip
Packit Service bac6eb
   comments.  Sets errno and returns error code on failure.  Special
Packit Service bac6eb
   failure: ERANGE means the buffer is too small.  The function writes
Packit Service bac6eb
   the original offset to *POFFSET (which can be negative in the case
Packit Service bac6eb
   of non-seekable input).  */
Packit Service bac6eb
int __nss_readline (FILE *fp, char *buf, size_t len, off64_t *poffset);
Packit Service bac6eb
libc_hidden_proto (__nss_readline)
Packit Service bac6eb
Packit Service bac6eb
/* Seek FP to OFFSET.  Sets errno and returns error code on failure.
Packit Service bac6eb
   On success, sets errno to ERANGE and returns ERANGE (to indicate
Packit Service bac6eb
   re-reading of the same input line to the caller).  If OFFSET is
Packit Service bac6eb
   negative, fail with ESPIPE without seeking.  Intended to be used
Packit Service bac6eb
   after parsing data read by __nss_readline failed with ERANGE.  */
Packit Service bac6eb
int __nss_readline_seek (FILE *fp, off64_t offset) attribute_hidden;
Packit Service bac6eb
Packit Service bac6eb
/* Handles the result of a parse_line call (as defined by
Packit Service bac6eb
   nss/nss_files/files-parse.c).  Adjusts the file offset of FP as
Packit Service bac6eb
   necessary.  Returns 0 on success, and updates errno on failure (and
Packit Service bac6eb
   returns that error code).  */
Packit Service bac6eb
int __nss_parse_line_result (FILE *fp, off64_t offset, int parse_line_result);
Packit Service bac6eb
libc_hidden_proto (__nss_parse_line_result)
Packit Service bac6eb
Packit Service e7684d
struct parser_data;
Packit Service e7684d
Packit Service e7684d
/* Instances of the parse_line function from
Packit Service e7684d
   nss/nss_files/files-parse.c.  */
Packit Service 322a1d
typedef int nss_files_parse_line (char *line, void *result,
Packit Service 322a1d
                                  struct parser_data *data,
Packit Service 322a1d
                                  size_t datalen, int *errnop);
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_etherent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_grent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_netent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_protoent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_pwent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_rpcent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_servent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_sgent;
Packit Service 322a1d
extern nss_files_parse_line _nss_files_parse_spent;
Packit Service e7684d
Packit Service e7684d
libnss_files_hidden_proto (_nss_files_parse_etherent)
Packit Service e7684d
libc_hidden_proto (_nss_files_parse_grent)
Packit Service e7684d
libnss_files_hidden_proto (_nss_files_parse_netent)
Packit Service e7684d
libnss_files_hidden_proto (_nss_files_parse_protoent)
Packit Service e7684d
libc_hidden_proto (_nss_files_parse_pwent)
Packit Service e7684d
libnss_files_hidden_proto (_nss_files_parse_rpcent)
Packit Service e7684d
libnss_files_hidden_proto (_nss_files_parse_servent)
Packit Service e7684d
libc_hidden_proto (_nss_files_parse_sgent)
Packit Service e7684d
libc_hidden_proto (_nss_files_parse_spent)
Packit Service e7684d
Packit Service bac6eb
/* Generic implementation of fget*ent_r.  Reads lines from FP until
Packit Service bac6eb
   EOF or a successful parse into *RESULT using PARSER.  Returns 0 on
Packit Service bac6eb
   success, ENOENT on EOF, ERANGE on too-small buffer.  */
Packit Service bac6eb
int __nss_fgetent_r (FILE *fp, void *result,
Packit Service bac6eb
                     char *buffer, size_t buffer_length,
Packit Service bac6eb
                     nss_files_parse_line parser) attribute_hidden;
Packit Service bac6eb
Packit Service 1884e5
#endif /* _NSS_FILES_H */