mirror of
https://git.savannah.gnu.org/git/inetutils.git
synced 2026-01-12 00:19:39 +08:00
107 lines
3.3 KiB
C
107 lines
3.3 KiB
C
/*
|
||
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
|