quinn-os/socket.h
2015-09-10 16:51:02 +10:00

32 lines
913 B
C

#ifndef __SOCKET_H
#define __SOCKET_H
#include "ether.h"
#include "tcp.h"
struct socket_t {
struct ether_t *ether;
unsigned char status;
unsigned int addr;
unsigned int port_dest;
unsigned int port_recv;
unsigned int bytes_available;
unsigned int bytes_read;
unsigned int offset;
unsigned char socket_type;
struct tcp_socket_t tcp_sock;
struct tcp_data_t *tcp_curr_packet;
struct tcp_data_t **tcp_packets;
unsigned int tcp_packet_count;
};
extern struct socket_t *socket_find(unsigned int dport);
extern void socket_close(struct socket_t *sock);
extern struct socket_t *socket_open(unsigned char type);
extern int socket_write(struct socket_t* sock, unsigned char* payload, unsigned int len);
extern int socket_connect(struct socket_t* sock, unsigned int dest_ip, unsigned short dest_port);
extern int socket_read(struct socket_t *sock, char *buffer, int len);
extern void init_sockets();
#endif