toaruos/base/usr/include/kernel/mod/net.h
2018-03-19 11:38:11 +09:00

33 lines
974 B
C

#ifndef KERNEL_MOD_NET_H
#define KERNEL_MOD_NET_H
typedef uint8_t* (*get_mac_func)(void);
typedef struct ethernet_packet* (*get_packet_func)(void);
typedef void (*send_packet_func)(uint8_t*, size_t);
struct netif {
void *extra;
get_mac_func get_mac;
get_packet_func get_packet;
send_packet_func send_packet;
uint8_t hwaddr[6];
uint32_t source;
char * driver;
uint32_t gateway;
};
extern void init_netif_funcs(get_mac_func mac_func, get_packet_func get_func, send_packet_func send_func, char * device);
extern void net_handler(void * data, char * name);
extern size_t write_dhcp_packet(uint8_t * buffer);
extern struct socket* net_open(uint32_t type);
extern int net_send(struct socket* socket, uint8_t* payload, size_t payload_size, int flags);
extern size_t net_recv(struct socket* socket, uint8_t* buffer, size_t len);
extern int net_connect(struct socket* socket, uint32_t dest_ip, uint16_t dest_port);
extern int net_close(struct socket* socket);
#endif