|
|
1.1 ! root 1: /* unpcb.h 6.1 83/07/29 */ ! 2: ! 3: /* ! 4: * Protocol control block for an active ! 5: * instance of a UNIX internal protocol. ! 6: * ! 7: * A socket may be associated with an inode in the ! 8: * file system. If so, the unp_inode pointer holds ! 9: * a reference count to this inode, which should be irele'd ! 10: * when the socket goes away. ! 11: * ! 12: * A socket may be connected to another socket, in which ! 13: * case the control block of the socket to which it is connected ! 14: * is given by unp_conn. ! 15: * ! 16: * A socket may be referenced by a number of sockets (e.g. several ! 17: * sockets may be connected to a datagram socket.) These sockets ! 18: * are in a linked list starting with unp_refs, linked through ! 19: * unp_nextref and null-terminated. Note that a socket may be referenced ! 20: * by a number of other sockets and may also reference a socket (not ! 21: * necessarily one which is referencing it). This generates ! 22: * the need for unp_refs and unp_nextref to be separate fields. ! 23: */ ! 24: struct unpcb { ! 25: struct socket *unp_socket; /* pointer back to socket */ ! 26: struct inode *unp_inode; /* if associated with file */ ! 27: struct unpcb *unp_conn; /* control block of connected socket */ ! 28: struct unpcb *unp_refs; /* referencing socket linked list */ ! 29: struct unpcb *unp_nextref; /* link in unp_refs list */ ! 30: struct mbuf *unp_remaddr; /* address of connected socket */ ! 31: }; ! 32: ! 33: #define sotounpcb(so) ((struct unpcb *)((so)->so_pcb))
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.