Blame include/nss_files.h

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