taglinefilesource code
sock42net/kern_sock.hint (*create)(struct socket *sock, int protocol);
sock44net/kern_sock.hint (*release)(struct socket *sock, struct socket *peer);
sock45net/kern_sock.hint (*bind)(struct socket *sock, struct sockaddr *umyaddr,
sock47net/kern_sock.hint (*connect)(struct socket *sock, struct sockaddr *uservaddr,
sock50net/kern_sock.hint (*accept)(struct socket *sock, struct socket *newsock);
sock51net/kern_sock.hint (*getname)(struct socket *sock, struct sockaddr *uaddr,
sock53net/kern_sock.hint (*read)(struct socket *sock, char *ubuf, int size, int nonblock);
sock54net/kern_sock.hint (*write)(struct socket *sock, char *ubuf, int size, int nonblock);
sock55net/kern_sock.hint (*select)(struct socket *sock, int sel_type, select_table * wait);
sock56net/kern_sock.hint (*ioctl)(struct socket *sock, unsigned int cmd, unsigned long arg);
sock118net/socket.cstruct socket *sock;
sock120net/socket.cfor (sock = sockets; sock <= last_socket; ++sock)
sock121net/socket.cif (sock->state != SS_FREE && SOCK_INODE(sock) == inode)
sock122net/socket.creturn sock;
sock141net/socket.cstruct socket *sock;
sock145net/socket.cfor (sock = sockets; sock <= last_socket; ++sock)
sock146net/socket.cif (sock->state == SS_FREE) {
sock147net/socket.csock->state = SS_UNCONNECTED;
sock149net/socket.csock->flags = 0;
sock150net/socket.csock->ops = NULL;
sock151net/socket.csock->data = NULL;
sock152net/socket.csock->conn = NULL;
sock153net/socket.csock->iconn = NULL;
sock163net/socket.cif (!(SOCK_INODE(sock) = get_empty_inode())) {
sock165net/socket.csock->state = SS_FREE;
sock168net/socket.cSOCK_INODE(sock)->i_mode = S_IFSOCK;
sock169net/socket.csock->wait = &SOCK_INODE(sock)->i_wait;
sock171net/socket.csock, SOCK_INODE(sock));
sock172net/socket.creturn sock;
sock195net/socket.csock_release(struct socket *sock)
sock200net/socket.cPRINTK("sock_release: socket 0x%x, inode 0x%x\n", sock,
sock201net/socket.cSOCK_INODE(sock));
sock202net/socket.cif ((oldstate = sock->state) != SS_UNCONNECTED)
sock203net/socket.csock->state = SS_DISCONNECTING;
sock207net/socket.cfor (peersock = sock->iconn; peersock; peersock = nextsock) {
sock215net/socket.cpeersock = (oldstate == SS_CONNECTED) ? sock->conn : NULL;
sock216net/socket.cif (sock->ops)
sock217net/socket.csock->ops->release(sock, peersock);
sock220net/socket.csock->state = SS_FREE;    /* this really releases us */
sock234net/socket.cstruct socket *sock;
sock237net/socket.cif (!(sock = socki_lookup(inode))) {
sock241net/socket.cif (sock->flags & SO_ACCEPTCON)
sock243net/socket.creturn sock->ops->read(sock, ubuf, size, (file->f_flags & O_NONBLOCK));
sock249net/socket.cstruct socket *sock;
sock252net/socket.cif (!(sock = socki_lookup(inode))) {
sock256net/socket.cif (sock->flags & SO_ACCEPTCON)
sock258net/socket.creturn sock->ops->write(sock, ubuf, size,(file->f_flags & O_NONBLOCK));
sock273net/socket.cstruct socket *sock;
sock276net/socket.cif (!(sock = socki_lookup(inode))) {
sock283net/socket.cif (sock->flags & SO_ACCEPTCON)
sock290net/socket.creturn sock->ops->ioctl(sock, cmd, arg);
sock296net/socket.cstruct socket *sock;
sock301net/socket.cif (!(sock = socki_lookup(inode))) {
sock309net/socket.cif (sock->flags & SO_ACCEPTCON) {
sock312net/socket.csock->iconn ? "" : "no ");
sock313net/socket.cif (sock->iconn)
sock316net/socket.creturn sock->iconn ? 1 : 0;
sock325net/socket.cif (sock->ops && sock->ops->select)
sock326net/socket.creturn sock->ops->select(sock, sel_type, wait);
sock333net/socket.cstruct socket *sock;
sock342net/socket.cif (!(sock = socki_lookup(inode))) {
sock346net/socket.csock_release(sock);
sock417net/socket.cstruct socket *sock;
sock452net/socket.cif (!(sock = sock_alloc(1))) {
sock456net/socket.csock->type = type;
sock457net/socket.csock->ops = ops;
sock458net/socket.cif ((i = sock->ops->create(sock, protocol)) < 0) {
sock459net/socket.csock_release(sock);
sock463net/socket.cif ((fd = get_fd(SOCK_INODE(sock))) < 0) {
sock464net/socket.csock_release(sock);
sock524net/socket.cstruct socket *sock;
sock528net/socket.cif (!(sock = sockfd_lookup(fd, NULL)))
sock530net/socket.cif ((i = sock->ops->bind(sock, umyaddr, addrlen)) < 0) {
sock545net/socket.cstruct socket *sock;
sock548net/socket.cif (!(sock = sockfd_lookup(fd, NULL)))
sock550net/socket.cif (sock->state != SS_UNCONNECTED) {
sock554net/socket.cif (sock->flags & SO_ACCEPTCON) {
sock558net/socket.csock->flags |= SO_ACCEPTCON;
sock570net/socket.cstruct socket *sock, *clientsock, *newsock;
sock574net/socket.cif (!(sock = sockfd_lookup(fd, &file)))
sock576net/socket.cif (sock->state != SS_UNCONNECTED) {
sock580net/socket.cif (!(sock->flags & SO_ACCEPTCON)) {
sock589net/socket.cwhile (!(clientsock = sock->iconn)) {
sock592net/socket.cinterruptible_sleep_on(sock->wait);
sock603net/socket.cnewsock->type = sock->type;
sock604net/socket.cnewsock->ops = sock->ops;
sock605net/socket.cif ((i = sock->ops->dup(newsock, sock)) < 0) {
sock619net/socket.csock->iconn = clientsock->next;
sock625net/socket.cnewsock->ops->accept(sock, newsock);
sock627net/socket.csock, newsock, clientsock);
sock642net/socket.cstruct socket *sock;
sock646net/socket.cif (!(sock = sockfd_lookup(fd, NULL)))
sock648net/socket.cif (sock->state != SS_UNCONNECTED) {
sock652net/socket.cif ((i = sock->ops->connect(sock, uservaddr, addrlen)) < 0) {
sock662net/socket.cstruct socket *sock;
sock665net/socket.cif (!(sock = sockfd_lookup(fd, NULL)))
sock667net/socket.creturn sock->ops->getname(sock, usockaddr, usockaddr_len, 0);
sock673net/socket.cstruct socket *sock;
sock676net/socket.cif (!(sock = sockfd_lookup(fd, NULL)))
sock678net/socket.creturn sock->ops->getname(sock, usockaddr, usockaddr_len, 1);
sock746net/socket.cstruct socket *sock;
sock749net/socket.cfor (sock = sockets; sock <= last_socket; ++sock)
sock750net/socket.csock->state = SS_FREE;
sock43net/unix.cstatic int unix_proto_create(struct socket *sock, int protocol);
sock45net/unix.cstatic int unix_proto_release(struct socket *sock, struct socket *peer);
sock46net/unix.cstatic int unix_proto_bind(struct socket *sock, struct sockaddr *umyaddr,
sock48net/unix.cstatic int unix_proto_connect(struct socket *sock, struct sockaddr *uservaddr,
sock51net/unix.cstatic int unix_proto_accept(struct socket *sock, struct socket *newsock);
sock52net/unix.cstatic int unix_proto_getname(struct socket *sock, struct sockaddr *usockaddr,
sock54net/unix.cstatic int unix_proto_read(struct socket *sock, char *ubuf, int size,
sock56net/unix.cstatic int unix_proto_write(struct socket *sock, char *ubuf, int size,
sock58net/unix.cstatic int unix_proto_select(struct socket *sock, int sel_type, select_table * wait);
sock59net/unix.cstatic int unix_proto_ioctl(struct socket *sock, unsigned int cmd,
sock161net/unix.cunix_proto_create(struct socket *sock, int protocol)
sock165net/unix.cPRINTK("unix_proto_create: socket 0x%x, proto %d\n", sock, protocol);
sock180net/unix.cupd->socket = sock;
sock181net/unix.cUN_DATA(sock) = upd;
sock195net/unix.cunix_proto_release(struct socket *sock, struct socket *peer)
sock197net/unix.cstruct unix_proto_data *upd = UN_DATA(sock);
sock200net/unix.csock, upd);
sock203net/unix.cif (upd->socket != sock) {
sock213net/unix.cUN_DATA(sock) = NULL;
sock231net/unix.cunix_proto_bind(struct socket *sock, struct sockaddr *umyaddr,
sock234net/unix.cstruct unix_proto_data *upd = UN_DATA(sock);
sock239net/unix.cPRINTK("unix_proto_bind: socket 0x%x, len=%d\n", sock,
sock284net/unix.cunix_proto_connect(struct socket *sock, struct sockaddr *uservaddr,
sock291net/unix.cPRINTK("unix_proto_connect: socket 0x%x, servlen=%d\n", sock,
sock309net/unix.cif ((i = sock_awaitconn(sock, serv_upd->socket)) < 0) {
sock313net/unix.cunix_data_ref(UN_DATA(sock->conn));
sock314net/unix.cUN_DATA(sock)->peerupd = UN_DATA(sock->conn); /* ref server */
sock340net/unix.cunix_proto_accept(struct socket *sock, struct socket *newsock)
sock343net/unix.csock, newsock);
sock353net/unix.cunix_proto_getname(struct socket *sock, struct sockaddr *usockaddr,
sock359net/unix.cPRINTK("unix_proto_getname: socket 0x%x for %s\n", sock,
sock362net/unix.cif (sock->state != SS_CONNECTED) {
sock366net/unix.cupd = UN_DATA(sock->conn);
sock369net/unix.cupd = UN_DATA(sock);
sock387net/unix.cunix_proto_read(struct socket *sock, char *ubuf, int size, int nonblock)
sock394net/unix.cupd = UN_DATA(sock);
sock396net/unix.cif (sock->state != SS_CONNECTED) {
sock398net/unix.creturn (sock->state == SS_DISCONNECTING) ? 0 : -EINVAL;
sock403net/unix.cinterruptible_sleep_on(sock->wait);
sock408net/unix.cif (sock->state == SS_DISCONNECTING) {
sock438net/unix.cif (sock->state == SS_CONNECTED)
sock439net/unix.cwake_up(sock->conn->wait);
sock451net/unix.cunix_proto_write(struct socket *sock, char *ubuf, int size, int nonblock)
sock458net/unix.cif (sock->state != SS_CONNECTED) {
sock460net/unix.cif (sock->state == SS_DISCONNECTING) {
sock466net/unix.cpupd = UN_DATA(sock)->peerupd;  /* safer than sock->conn */
sock472net/unix.cinterruptible_sleep_on(sock->wait);
sock477net/unix.cif (sock->state == SS_DISCONNECTING) {
sock501net/unix.cif (sock->state == SS_DISCONNECTING) {
sock516net/unix.cif (sock->state == SS_CONNECTED)
sock517net/unix.cwake_up(sock->conn->wait);
sock524net/unix.cunix_proto_select(struct socket *sock, int sel_type, select_table * wait)
sock529net/unix.cupd = UN_DATA(sock);
sock534net/unix.celse if (sock->state != SS_CONNECTED) {
sock538net/unix.cselect_wait(sock->wait,wait);
sock542net/unix.cif (sock->state != SS_CONNECTED) {
sock546net/unix.cpeerupd = UN_DATA(sock->conn);
sock551net/unix.cselect_wait(sock->wait,wait);
sock560net/unix.cunix_proto_ioctl(struct socket *sock, unsigned int cmd, unsigned long arg)
sock564net/unix.cupd = UN_DATA(sock);
sock565net/unix.cpeerupd = (sock->state == SS_CONNECTED) ? UN_DATA(sock->conn) : NULL;