1 /* net/if.h -- declarations for inquiring about network interfaces 2 Copyright (C) 2000-2021 Free Software Foundation, Inc. 3 This file is part of the GNU C Library. 4 5 The GNU C Library is free software; you can redistribute it and/or 6 modify it under the terms of the GNU Lesser General Public 7 License as published by the Free Software Foundation; either 8 version 2.1 of the License, or (at your option) any later version. 9 10 The GNU C Library is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13 Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public 16 License along with the GNU C Library; if not, see 17 <https://www.gnu.org/licenses/>. */ 18 19 #ifndef _NET_IF_H 20 21 #define _NET_IF_H 1 22 #include <features.h> 23 24 25 __BEGIN_DECLS 26 27 /* Convert an interface name to an index, and vice versa. */ 28 29 extern unsigned int if_nametoindex (const char *__ifname) __THROW; 30 extern char *if_indextoname (unsigned int __ifindex, char *__ifname) __THROW; 31 32 /* Return a list of all interfaces and their indices. */ 33 34 struct if_nameindex 35 { 36 unsigned int if_index; /* 1, 2, ... */ 37 char *if_name; /* null terminated name: "eth0", ... */ 38 }; 39 40 extern struct if_nameindex *if_nameindex (void) __THROW; 41 42 /* Free the data returned from if_nameindex. */ 43 44 extern void if_freenameindex (struct if_nameindex *__ptr) __THROW; 45 46 __END_DECLS 47 48 49 #endif /* net/if.h */ 50