summaryrefslogtreecommitdiff
path: root/kernel/network/arp.c
diff options
context:
space:
mode:
authorAnton Kling <anton@kling.gg>2023-11-10 15:47:08 +0100
committerAnton Kling <anton@kling.gg>2023-11-10 15:47:08 +0100
commit9a1f977e39d8e9fcb6a9cb2a612f4743e802221d (patch)
tree1fc53f6e80eb40d24274f2f8967d584b88c6d664 /kernel/network/arp.c
parent0cb4afef6da5488a128e5aaece435e9aa5f5797e (diff)
Kernel Style: Change uint*_t -> u*
Diffstat (limited to 'kernel/network/arp.c')
-rw-r--r--kernel/network/arp.c68
1 files changed, 34 insertions, 34 deletions
diff --git a/kernel/network/arp.c b/kernel/network/arp.c
index 179f6c1..ddeb553 100644
--- a/kernel/network/arp.c
+++ b/kernel/network/arp.c
@@ -7,29 +7,29 @@
#include <string.h>
struct ARP_DATA {
- uint16_t htype; // Hardware type
- uint16_t ptype; // Protocol type
- uint8_t hlen; // Hardware address length (Ethernet = 6)
- uint8_t plen; // Protocol address length (IPv4 = 4)
- uint16_t opcode; // ARP Operation Code
- uint8_t srchw[6]; // Source hardware address - hlen bytes (see above)
- uint8_t srcpr[4]; // Source protocol address - plen bytes (see above).
+ u16 htype; // Hardware type
+ u16 ptype; // Protocol type
+ u8 hlen; // Hardware address length (Ethernet = 6)
+ u8 plen; // Protocol address length (IPv4 = 4)
+ u16 opcode; // ARP Operation Code
+ u8 srchw[6]; // Source hardware address - hlen bytes (see above)
+ u8 srcpr[4]; // Source protocol address - plen bytes (see above).
// If IPv4 can just be a "u32" type.
- uint8_t dsthw[6]; // Destination hardware address - hlen bytes (see above)
- uint8_t dstpr[4]; // Destination protocol address - plen bytes (see
+ u8 dsthw[6]; // Destination hardware address - hlen bytes (see above)
+ u8 dstpr[4]; // Destination protocol address - plen bytes (see
// above). If IPv4 can just be a "u32" type.
};
struct ARP_TABLE_ENTRY {
- uint8_t is_used;
- uint8_t mac[6];
- uint8_t ip[4];
+ u8 is_used;
+ u8 mac[6];
+ u8 ip[4];
};
struct ARP_TABLE_ENTRY arp_table[10] = {0};
// FIXME: This is hardcoded, don't do this.
-uint8_t ip_address[4] = {10, 0, 2, 15};
+u8 ip_address[4] = {10, 0, 2, 15};
struct ARP_TABLE_ENTRY *find_arp_entry_to_use(void) {
// This does not need to find a "free" entry as a ARP table is
@@ -42,7 +42,7 @@ struct ARP_TABLE_ENTRY *find_arp_entry_to_use(void) {
return &arp_table[0];
}
-void print_mac(const char *str, uint8_t *mac) {
+void print_mac(const char *str, u8 *mac) {
kprintf("%s: ", str);
for (int i = 0; i < 6; i++) {
kprintf("%x", mac[i]);
@@ -52,7 +52,7 @@ void print_mac(const char *str, uint8_t *mac) {
kprintf("\n");
}
-void print_ip(const char *str, const uint8_t *ip) {
+void print_ip(const char *str, const u8 *ip) {
kprintf("%s: ", str);
for (int i = 0; i < 4; i++) {
kprintf("%d", ip[i]);
@@ -62,7 +62,7 @@ void print_ip(const char *str, const uint8_t *ip) {
kprintf("\n");
}
-void send_arp_request(const uint8_t ip[4]) {
+void send_arp_request(const u8 ip[4]) {
struct ARP_DATA data;
data.htype = htons(1);
data.ptype = htons(0x0800);
@@ -72,37 +72,37 @@ void send_arp_request(const uint8_t ip[4]) {
data.opcode = htons(0x0001);
get_mac_address(data.srchw);
- memcpy(data.srcpr, ip_address, sizeof(uint8_t[4]));
+ memcpy(data.srcpr, ip_address, sizeof(u8[4]));
- memset(data.dsthw, 0, sizeof(uint8_t[6]));
- memcpy(data.dstpr, ip, sizeof(uint8_t[4]));
+ memset(data.dsthw, 0, sizeof(u8[6]));
+ memcpy(data.dstpr, ip, sizeof(u8[4]));
- uint8_t broadcast[6];
+ u8 broadcast[6];
memset(broadcast, 0xFF, sizeof(broadcast));
- send_ethernet_packet(broadcast, 0x0806, (uint8_t *)&data, sizeof(data));
+ send_ethernet_packet(broadcast, 0x0806, (u8 *)&data, sizeof(data));
}
-int get_mac_from_ip(const uint8_t ip[4], uint8_t mac[6]) {
+int get_mac_from_ip(const u8 ip[4], u8 mac[6]) {
print_ip("ARP GETTING MAC FROM IP: ", ip);
for (int i = 0; i < 10; i++) {
- if (0 != memcmp(arp_table[i].ip, ip, sizeof(uint8_t[4])))
+ if (0 != memcmp(arp_table[i].ip, ip, sizeof(u8[4])))
continue;
- memcpy(mac, arp_table[i].mac, sizeof(uint8_t[6]));
+ memcpy(mac, arp_table[i].mac, sizeof(u8[6]));
return 1;
}
klog("ARP cache miss", LOG_NOTE);
send_arp_request(ip);
// TODO: Maybe wait a bit?
for (int i = 0; i < 10; i++) {
- if (0 != memcmp(arp_table[i].ip, ip, sizeof(uint8_t[4])))
+ if (0 != memcmp(arp_table[i].ip, ip, sizeof(u8[4])))
continue;
- memcpy(mac, arp_table[i].mac, sizeof(uint8_t[6]));
+ memcpy(mac, arp_table[i].mac, sizeof(u8[6]));
return 1;
}
return 0;
}
-void handle_arp(const uint8_t *payload) {
+void handle_arp(const u8 *payload) {
struct ARP_DATA *data = (struct ARP_DATA *)payload;
// Assert that communication is over ethernet
@@ -120,7 +120,7 @@ void handle_arp(const uint8_t *payload) {
print_mac("dsthw: ", data->dsthw);
print_ip("dstpr: ", data->dstpr);
- assert(0 == memcmp(data->dstpr, ip_address, sizeof(uint8_t[4])));
+ assert(0 == memcmp(data->dstpr, ip_address, sizeof(u8[4])));
// Now we have to construct a ARP response
struct ARP_DATA response;
@@ -130,19 +130,19 @@ void handle_arp(const uint8_t *payload) {
response.hlen = 6;
response.plen = 4;
get_mac_address(response.srchw);
- memcpy(response.srcpr, ip_address, sizeof(uint8_t[4]));
+ memcpy(response.srcpr, ip_address, sizeof(u8[4]));
- memcpy(response.dsthw, data->srchw, sizeof(uint8_t[6]));
- memcpy(response.dstpr, data->srcpr, sizeof(uint8_t[4]));
+ memcpy(response.dsthw, data->srchw, sizeof(u8[6]));
+ memcpy(response.dstpr, data->srcpr, sizeof(u8[4]));
- send_ethernet_packet(data->srchw, 0x0806, (uint8_t *)&response,
+ send_ethernet_packet(data->srchw, 0x0806, (u8 *)&response,
sizeof(response));
} else if (0x0002 /*arp_response*/ == ntohs(data->opcode)) {
// Find a entry to fill
struct ARP_TABLE_ENTRY *entry = find_arp_entry_to_use();
entry->is_used = 1;
- memcpy(entry->mac, data->srchw, sizeof(uint8_t[6]));
- memcpy(entry->ip, data->srcpr, sizeof(uint8_t[4]));
+ memcpy(entry->mac, data->srchw, sizeof(u8[6]));
+ memcpy(entry->ip, data->srcpr, sizeof(u8[4]));
print_ip("Added ip: ", entry->ip);
} else {
kprintf("GOT A ARP REQEUST WITH TYPE: %x\n", ntohs(data->opcode));