Files
kernel/include/sys/net/eth.h
T
2019-11-02 22:48:38 +02:00

27 lines
565 B
C

#pragma once
#include "sys/types.h"
#include "sys/net/netdev.h"
#define ETHERTYPE_ARP 0x0806
#define ETHERTYPE_IPV4 0x0800
struct eth_frame {
uint8_t dst_mac[6];
uint8_t src_mac[6];
uint16_t ethertype;
char payload[];
} __attribute__((packed));
// Packet queue entry
struct ethq {
struct ethq *next;
struct netdev *dev;
char data[];
};
// Ethernet queue stuff
void ethq_handle(void);
// TODO: replace (void *) with (struct netdev *)
void eth_handle_frame(struct netdev *dev, struct eth_frame *frame, size_t packet_size);