Annotation of linux/net/kern_sock.h, revision 1.1.1.2

1.1       root        1: #ifndef _KERN_SOCK_H
                      2: #define _KERN_SOCK_H
                      3: 
                      4: #define NSOCKETS 128                   /* should be dynamic, later... */
                      5: 
                      6: typedef enum {
                      7:        SS_FREE = 0,                    /* not allocated */
                      8:        SS_UNCONNECTED,                 /* unconnected to any socket */
                      9:        SS_CONNECTING,                  /* in process of connecting */
                     10:        SS_CONNECTED,                   /* connected to socket */
                     11:        SS_DISCONNECTING,               /* in process of disconnecting */
                     12: } socket_state;
                     13: 
                     14: #define SO_ACCEPTCON   (1<<16)         /* performed a listen */
                     15: 
                     16: /*
                     17:  * internel representation of a socket. not all the fields are used by
                     18:  * all configurations:
                     19:  *
                     20:  *             server                  client
                     21:  * conn                client connected to     server connected to
                     22:  * iconn       list of clients         -unused-
                     23:  *              awaiting connections
                     24:  * wait                sleep for clients,      sleep for connection,
                     25:  *             sleep for i/o           sleep for i/o
                     26:  */
                     27: struct socket {
                     28:        short type;                     /* SOCK_STREAM, ... */
                     29:        socket_state state;
                     30:        long flags;
                     31:        struct proto_ops *ops;          /* protocols do most everything */
                     32:        char *data;                     /* protocol data */
                     33:        struct socket *conn;            /* server socket connected to */
                     34:        struct socket *iconn;           /* incomplete client connections */
                     35:        struct socket *next;
1.1.1.2 ! root       36:        struct wait_queue **wait;       /* ptr to place to wait on */
1.1       root       37:        void *dummy;
                     38: };
                     39: 
                     40: struct proto_ops {
                     41:        int (*init)(void);
                     42:        int (*create)(struct socket *sock, int protocol);
                     43:        int (*dup)(struct socket *newsock, struct socket *oldsock);
                     44:        int (*release)(struct socket *sock, struct socket *peer);
                     45:        int (*bind)(struct socket *sock, struct sockaddr *umyaddr,
                     46:                    int sockaddr_len);
                     47:        int (*connect)(struct socket *sock, struct sockaddr *uservaddr,
                     48:                       int sockaddr_len);
                     49:        int (*socketpair)(struct socket *sock1, struct socket *sock2);
                     50:        int (*accept)(struct socket *sock, struct socket *newsock);
                     51:        int (*getname)(struct socket *sock, struct sockaddr *uaddr,
                     52:                       int *usockaddr_len, int peer);
                     53:        int (*read)(struct socket *sock, char *ubuf, int size, int nonblock);
                     54:        int (*write)(struct socket *sock, char *ubuf, int size, int nonblock);
1.1.1.2 ! root       55:        int (*select)(struct socket *sock, int sel_type, select_table * wait);
1.1       root       56:        int (*ioctl)(struct socket *sock, unsigned int cmd, unsigned long arg);
                     57: };
                     58: 
                     59: extern int sock_awaitconn(struct socket *mysock, struct socket *servsock);
                     60: 
                     61: #ifdef SOCK_DEBUG
                     62: #define PRINTK printk
                     63: #else
                     64: #define PRINTK (void)
                     65: #endif
                     66: 
                     67: #endif /* _KERN_SOCK_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.