1#ifndef _NET_H
2#define _NET_H
3
4#include <stdint.h>
5#include <stdbool.h>
6#include <stddef.h>
7
8void net_core_init(void);
9void net_parse_dhcp(void);
10
11struct pxe_pvt_inode;
12
13int core_udp_open(struct pxe_pvt_inode *socket);
14void core_udp_close(struct pxe_pvt_inode *socket);
15
16void core_udp_connect(struct pxe_pvt_inode *socket,
17		      uint32_t ip, uint16_t port);
18void core_udp_disconnect(struct pxe_pvt_inode *socket);
19
20int core_udp_recv(struct pxe_pvt_inode *socket, void *buf, uint16_t *buf_len,
21		  uint32_t *src_ip, uint16_t *src_port);
22
23void core_udp_send(struct pxe_pvt_inode *socket,
24		   const void *data, size_t len);
25
26void core_udp_sendto(struct pxe_pvt_inode *socket, const void *data, size_t len,
27		     uint32_t ip, uint16_t port);
28
29void probe_undi(void);
30void pxe_init_isr(void);
31
32struct inode;
33
34int core_tcp_open(struct pxe_pvt_inode *socket);
35int core_tcp_connect(struct pxe_pvt_inode *socket, uint32_t ip, uint16_t port);
36bool core_tcp_is_connected(struct pxe_pvt_inode *socket);
37int core_tcp_write(struct pxe_pvt_inode *socket, const void *data,
38		   size_t len, bool copy);
39void core_tcp_close_file(struct inode *inode);
40void core_tcp_fill_buffer(struct inode *inode);
41
42#endif /* _NET_H */
43