Skip to content
This repository has been archived by the owner on Sep 11, 2024. It is now read-only.

Commit

Permalink
Kernel/libc: Add some network/route ioctl stuff
Browse files Browse the repository at this point in the history
  • Loading branch information
byteduck committed Mar 20, 2024
1 parent 71c0059 commit bca13ab
Show file tree
Hide file tree
Showing 7 changed files with 73 additions and 2 deletions.
29 changes: 29 additions & 0 deletions kernel/api/if.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
/* SPDX-License-Identifier: GPL-3.0-or-later */
/* Copyright © 2016-2024 Byteduck */

#pragma once

#include "socket.h"
#include "net.h"

__DECL_BEGIN

struct ifreq {
char ifr_name[IFNAMSIZ];
union {
struct sockaddr ifr_addr;
struct sockaddr ifr_dstaddr;
struct sockaddr ifr_broadaddr;
struct sockaddr ifr_netmask;
struct sockaddr ifr_hwaddr;
short ifr_flags;
int ifr_ifindex;
int ifr_metric;
int ifr_mtu;
char ifr_slave[IFNAMSIZ];
char ifr_newname[IFNAMSIZ];
char *ifr_data;
};
};

__DECL_END
6 changes: 5 additions & 1 deletion kernel/api/ioctl.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,4 +15,8 @@
#define TIOCGWINSZ 10
#define TIOCNOTTY 11
#define TIOSGFX 12
#define TIOSNOGFX 13
#define TIOSNOGFX 13

#define SIOCSIFADDR 14
#define SIOCSIFNETMASK 15
#define SIOCADDRT 16
2 changes: 1 addition & 1 deletion kernel/api/ipv4.h
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ class __attribute__((packed)) IPv4Address {
return m_data < other.m_data;
}

inline sockaddr_in as_sockaddr(in_port_t port) {
inline sockaddr_in as_sockaddr(in_port_t port) const {
sockaddr_in ret;
ret.sin_family = AF_INET;
ret.sin_port = as_big_endian(port);
Expand Down
1 change: 1 addition & 0 deletions kernel/api/net.h
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
#include "ipv4.h"

#define IFNAMESIZ 16
#define IFNAMSIZ IFNAMESIZ

__DECL_BEGIN

Expand Down
26 changes: 26 additions & 0 deletions kernel/api/route.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/* SPDX-License-Identifier: GPL-3.0-or-later */
/* Copyright © 2016-2024 Byteduck */

#pragma once

#include "net.h"

__DECL_BEGIN

struct rtentry {
struct sockaddr rt_dst;
struct sockaddr rt_gateway;
struct sockaddr rt_genmask;
unsigned short rt_flags;
unsigned short rt_metric;
char* rt_dev;
long rt_mtu;
long rt_window;
long rt_irtt;
};

// Flags
#define RTF_UP 0x1
#define RTF_GATEWAY 0x2

__DECL_END
5 changes: 5 additions & 0 deletions libraries/libc/net/if.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
/* SPDX-License-Identifier: GPL-3.0-or-later */
/* Copyright © 2016-2024 Byteduck */

#pragma once
#include <kernel/api/if.h>
6 changes: 6 additions & 0 deletions libraries/libc/net/route.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
/* SPDX-License-Identifier: GPL-3.0-or-later */
/* Copyright © 2016-2024 Byteduck */

#pragma once

#include <kernel/api/route.h>

0 comments on commit bca13ab

Please sign in to comment.