Files
inetutils/ifconfig/system.h
2025-11-27 00:33:35 +01:00

107 lines
3.3 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*
Copyright (C) 2001-2025 Free Software Foundation, Inc.
This file is part of GNU Inetutils.
GNU Inetutils is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or (at
your option) any later version.
GNU Inetutils is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see `http://www.gnu.org/licenses/'. */
/* Written by Marcus Brinkmann. */
#ifndef IFCONFIG_SYSTEM_H
# define IFCONFIG_SYSTEM_H
/* Option parsing. */
extern struct argp_child system_argp_child;
/* Define this if ifconfig supports parsing the remaining non-option
arguments on the command line (see system_parse_opt_rest) to a string
usable in the help info. Like " <addr> [ netmask <mask> ]" */
extern const char *system_help;
/* Hooked into a struct ifconfig (setting the flag IF_VALID_SYSTEM),
to store system specific configurations from the command line
arguments. */
/* struct system_ifconfig; */
/* Parse option OPTION, with argument OPTARG (may be NULL), and store
it in IFP. You may create a new struct ifconfig if appropriate,
and store its pointer in IFP to make it the current one.
Return 0 if option was not recognized, otherwise 1. */
extern int system_parse_opt (struct ifconfig **ifp, char option,
char *optarg);
/* Parse remaining ARGC arguments ARGV on the command line. IFP has
the same meaning as in system_parse_opt. (There is some
post-processing, so you are not relieved from setting IPF is
appropriate.)
Return 0 if all options were not recognized, otherwise 1. */
extern int system_parse_opt_rest (struct ifconfig **ifp, int argc,
char *argv[]);
/* Output format support. */
/* Define this if you want to set a system specific default output
format. Possible value is a string with the same meaning as an
argument to the --format option, e.g. `"gnu"', or `"${name}:"'. */
extern const char *system_default_format;
/* Define this to a list of struct format_handler items. Add a
trailing comma, too. */
# undef SYSTEM_FORMAT_HANDLER
int system_preconfigure (int sfd, struct ifreq *ifr);
int system_configure (int sfd, struct ifreq *ifr,
struct system_ifconfig *__ifs);
/* For systems which loose. */
# ifndef HAVE_STRUCT_IFREQ_IFR_INDEX
# define ifr_index ifr_ifindex
# endif
# ifndef HAVE_STRUCT_IFREQ_IFR_NETMASK
# define ifr_netmask ifr_addr
# endif
# ifndef HAVE_STRUCT_IFREQ_IFR_BROADADDR
# define ifr_broadaddr ifr_addr
# endif
extern struct if_nameindex *(*system_if_nameindex) (void);
# if defined __linux__
# include "system/linux.h"
# elif defined __sun
# include "system/solaris.h"
# elif defined __QNX__
# include "system/qnx.h"
# elif defined __DragonFly__ || defined __FreeBSD__ || \
defined __FreeBSD_kernel__ || \
defined __NetBSD__ || defined __OpenBSD__
# include "system/bsd.h"
# elif defined __GNU__
# include "system/hurd.h"
# else
# include "system/generic.h"
# endif
#endif