Changeset fab2746 in mainline for uspace/lib/c/include/inet/tcp.h
- Timestamp:
- 2015-04-08T21:25:30Z (10 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 99ea91b2
- Parents:
- ba0eac5
- File:
-
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/inet/tcp.h
rba0eac5 rfab2746 1 1 /* 2 * Copyright (c) 20 09 Lukas Mejdrech2 * Copyright (c) 2015 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 28 28 29 29 /** @addtogroup libc 30 * @{ 30 * @{ 31 */ 32 /** @file 31 33 */ 32 34 33 /** @file 34 * Socket codes and definitions. 35 * This is a part of the network application library. 36 */ 35 #ifndef LIBC_INET_TCP_H_ 36 #define LIBC_INET_TCP_H_ 37 37 38 #ifndef LIBC_SOCKET_CODES_H_ 39 #define LIBC_SOCKET_CODES_H_ 38 #include <inet/addr.h> 39 #include <inet/endpoint.h> 40 #include <inet/inet.h> 40 41 41 #include <sys/types.h> 42 typedef struct { 43 } tcp_conn_t; 42 44 43 /** @name Address families definitions */ 44 /*@{*/ 45 typedef struct { 46 } tcp_listener_t; 45 47 46 enum { 47 AF_NONE = 0, 48 AF_INET, /* IPv4 address */ 49 AF_INET6 /* IPv6 address */ 50 }; 48 typedef struct { 49 void (*connected)(tcp_conn_t *); 50 void (*conn_failed)(tcp_conn_t *); 51 void (*conn_reset)(tcp_conn_t *); 52 void (*data_avail)(tcp_conn_t *); 53 void (*urg_data)(tcp_conn_t *); 54 } tcp_cb_t; 51 55 52 /*@}*/ 56 typedef struct { 57 void (*new_conn)(tcp_listener_t *, tcp_conn_t *); 58 } tcp_listen_cb_t; 53 59 54 /** @name Protocol families definitions 55 * Same as address families. 56 */ 57 /*@{*/ 60 typedef struct { 61 } tcp_t; 58 62 59 #define PF_INET AF_INET 60 #define PF_INET6 AF_INET6 63 extern int tcp_create(tcp_t **); 64 extern void tcp_destroy(tcp_t *); 65 extern int tcp_conn_create(tcp_t *, inet_ep2_t *, tcp_cb_t *, void *, 66 tcp_conn_t **); 67 extern void tcp_conn_destroy(tcp_conn_t *); 68 extern void *tcp_conn_userptr(tcp_conn_t *); 69 extern int tcp_listener_create(tcp_t *, inet_ep_t *, tcp_listen_cb_t *, void *, 70 tcp_cb_t *, void *, tcp_listener_t **); 71 extern void tcp_listener_destroy(tcp_listener_t *); 72 extern void *tcp_listener_userptr(tcp_listener_t *); 61 73 62 /*@}*/ 74 extern int tcp_conn_wait_connected(tcp_conn_t *); 75 extern int tcp_conn_send(tcp_conn_t *, const void *, size_t); 76 extern int tcp_conn_send_fin(tcp_conn_t *); 77 extern int tcp_conn_push(tcp_conn_t *); 78 extern void tcp_conn_reset(tcp_conn_t *); 63 79 64 /** Socket types. */ 65 typedef enum sock_type { 66 /** Stream (connection oriented) socket. */ 67 SOCK_STREAM = 1, 68 /** Datagram (connectionless oriented) socket. */ 69 SOCK_DGRAM = 2, 70 /** Raw socket. */ 71 SOCK_RAW = 3 72 } sock_type_t; 80 extern int tcp_conn_recv(tcp_conn_t *, void *, size_t, size_t *); 81 extern int tcp_conn_recv_wait(tcp_conn_t *, void *, size_t, size_t *); 73 82 74 /** Type definition of the socket length. */75 typedef int32_t socklen_t;76 77 /* Socket options */78 79 enum {80 SOL_SOCKET = 1,81 82 /* IP link to transmit on */83 SO_IPLINK84 };85 83 86 84 #endif
Note:
See TracChangeset
for help on using the changeset viewer.