summaryrefslogtreecommitdiff
path: root/Userland
diff options
context:
space:
mode:
Diffstat (limited to 'Userland')
-rw-r--r--Userland/Libraries/LibC/net/if.h50
-rw-r--r--Userland/Libraries/LibC/net/if_arp.h9
-rw-r--r--Userland/Libraries/LibC/net/route.h21
-rw-r--r--Userland/Utilities/arp.cpp1
4 files changed, 14 insertions, 67 deletions
diff --git a/Userland/Libraries/LibC/net/if.h b/Userland/Libraries/LibC/net/if.h
index e8d1e69f14..ff32ea69fe 100644
--- a/Userland/Libraries/LibC/net/if.h
+++ b/Userland/Libraries/LibC/net/if.h
@@ -1,60 +1,16 @@
/*
- * Copyright (c) 2018-2020, Andreas Kling <kling@serenityos.org>
+ * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
*
* SPDX-License-Identifier: BSD-2-Clause
*/
#pragma once
-#include <sys/cdefs.h>
-#include <sys/socket.h>
+#include <Kernel/API/POSIX/net/if.h>
__BEGIN_DECLS
-struct ifreq {
-#define IFNAMSIZ 16
- char ifr_name[IFNAMSIZ];
- union {
- struct sockaddr ifru_addr;
- struct sockaddr ifru_dstaddr;
- struct sockaddr ifru_broadaddr;
- struct sockaddr ifru_netmask;
- struct sockaddr ifru_hwaddr;
- short ifru_flags;
- int ifru_metric;
- int64_t ifru_vnetid;
- uint64_t ifru_media;
- void* ifru_data;
- unsigned int ifru_index;
- } ifr_ifru;
-
-#define ifr_addr ifr_ifru.ifru_addr // address
-#define ifr_dstaddr ifr_ifru.ifru_dstaddr // other end of p-to-p link
-#define ifr_broadaddr ifr_ifru.ifru_broadaddr // broadcast address
-#define ifr_netmask ifr_ifru.ifru_netmask // network mask
-#define ifr_flags ifr_ifru.ifru_flags // flags
-#define ifr_metric ifr_ifru.ifru_metric // metric
-#define ifr_mtu ifr_ifru.ifru_metric // mtu (overload)
-#define ifr_hardmtu ifr_ifru.ifru_metric // hardmtu (overload)
-#define ifr_media ifr_ifru.ifru_media // media options
-#define ifr_rdomainid ifr_ifru.ifru_metric // VRF instance (overload)
-#define ifr_vnetid ifr_ifru.ifru_vnetid // Virtual Net Id
-#define ifr_ttl ifr_ifru.ifru_metric // tunnel TTL (overload)
-#define ifr_data ifr_ifru.ifru_data // for use by interface
-#define ifr_index ifr_ifru.ifru_index // interface index
-#define ifr_llprio ifr_ifru.ifru_metric // link layer priority
-#define ifr_hwaddr ifr_ifru.ifru_hwaddr // MAC address
-};
-
-struct ifconf {
- int ifc_len;
- union {
- void* ifc_buf;
- struct ifreq* ifc_req;
- };
-};
-
-unsigned int if_nametoindex(const char* ifname);
+unsigned int if_nametoindex(char const* ifname);
char* if_indextoname(unsigned int ifindex, char* ifname);
__END_DECLS
diff --git a/Userland/Libraries/LibC/net/if_arp.h b/Userland/Libraries/LibC/net/if_arp.h
new file mode 100644
index 0000000000..8cfd5037f0
--- /dev/null
+++ b/Userland/Libraries/LibC/net/if_arp.h
@@ -0,0 +1,9 @@
+/*
+ * Copyright (c) 2018-2021, Andreas Kling <kling@serenityos.org>
+ *
+ * SPDX-License-Identifier: BSD-2-Clause
+ */
+
+#pragma once
+
+#include <Kernel/API/POSIX/net/if_arp.h>
diff --git a/Userland/Libraries/LibC/net/route.h b/Userland/Libraries/LibC/net/route.h
index aa82d81c92..cc6c0faa3b 100644
--- a/Userland/Libraries/LibC/net/route.h
+++ b/Userland/Libraries/LibC/net/route.h
@@ -6,23 +6,4 @@
#pragma once
-#include <sys/socket.h>
-
-struct rtentry {
- struct sockaddr rt_gateway; /* the gateway address */
- struct sockaddr rt_genmask; /* the target network mask */
- unsigned short int rt_flags;
- char* rt_dev;
- /* FIXME: complete the struct */
-};
-
-#define RTF_UP 0x1 /* do not delete the route */
-#define RTF_GATEWAY 0x2 /* the route is a gateway and not an end host */
-
-struct arpreq {
- struct sockaddr arp_pa; /* protocol address */
- struct sockaddr arp_ha; /* hardware address */
- struct sockaddr arp_netmask; /* netmask of protocol address */
- int arp_flags; /* flags */
- char arp_dev[16];
-};
+#include <Kernel/API/POSIX/net/route.h>
diff --git a/Userland/Utilities/arp.cpp b/Userland/Utilities/arp.cpp
index 015f1853d4..970174c090 100644
--- a/Userland/Utilities/arp.cpp
+++ b/Userland/Utilities/arp.cpp
@@ -13,6 +13,7 @@
#include <AK/Types.h>
#include <LibCore/ArgsParser.h>
#include <LibCore/File.h>
+#include <net/if_arp.h>
#include <net/route.h>
#include <netinet/in.h>
#include <sys/ioctl.h>