Deleted Added
full compact
sys_socket.c (1542) sys_socket.c (1549)
1/*
2 * Copyright (c) 1982, 1986, 1990, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 37 unchanged lines hidden (view full) ---

46
47#include <net/if.h>
48#include <net/route.h>
49
50struct fileops socketops =
51 { soo_read, soo_write, soo_ioctl, soo_select, soo_close };
52
53/* ARGSUSED */
1/*
2 * Copyright (c) 1982, 1986, 1990, 1993
3 * The Regents of the University of California. All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 37 unchanged lines hidden (view full) ---

46
47#include <net/if.h>
48#include <net/route.h>
49
50struct fileops socketops =
51 { soo_read, soo_write, soo_ioctl, soo_select, soo_close };
52
53/* ARGSUSED */
54int
54soo_read(fp, uio, cred)
55 struct file *fp;
56 struct uio *uio;
57 struct ucred *cred;
58{
59
60 return (soreceive((struct socket *)fp->f_data, (struct mbuf **)0,
61 uio, (struct mbuf **)0, (struct mbuf **)0, (int *)0));
62}
63
64/* ARGSUSED */
55soo_read(fp, uio, cred)
56 struct file *fp;
57 struct uio *uio;
58 struct ucred *cred;
59{
60
61 return (soreceive((struct socket *)fp->f_data, (struct mbuf **)0,
62 uio, (struct mbuf **)0, (struct mbuf **)0, (int *)0));
63}
64
65/* ARGSUSED */
66int
65soo_write(fp, uio, cred)
66 struct file *fp;
67 struct uio *uio;
68 struct ucred *cred;
69{
70
71 return (sosend((struct socket *)fp->f_data, (struct mbuf *)0,
72 uio, (struct mbuf *)0, (struct mbuf *)0, 0));
73}
74
67soo_write(fp, uio, cred)
68 struct file *fp;
69 struct uio *uio;
70 struct ucred *cred;
71{
72
73 return (sosend((struct socket *)fp->f_data, (struct mbuf *)0,
74 uio, (struct mbuf *)0, (struct mbuf *)0, 0));
75}
76
77int
75soo_ioctl(fp, cmd, data, p)
76 struct file *fp;
77 int cmd;
78 register caddr_t data;
79 struct proc *p;
80{
81 register struct socket *so = (struct socket *)fp->f_data;
82

--- 42 unchanged lines hidden (view full) ---

125 if (IOCGROUP(cmd) == 'i')
126 return (ifioctl(so, cmd, data, p));
127 if (IOCGROUP(cmd) == 'r')
128 return (rtioctl(cmd, data, p));
129 return ((*so->so_proto->pr_usrreq)(so, PRU_CONTROL,
130 (struct mbuf *)cmd, (struct mbuf *)data, (struct mbuf *)0));
131}
132
78soo_ioctl(fp, cmd, data, p)
79 struct file *fp;
80 int cmd;
81 register caddr_t data;
82 struct proc *p;
83{
84 register struct socket *so = (struct socket *)fp->f_data;
85

--- 42 unchanged lines hidden (view full) ---

128 if (IOCGROUP(cmd) == 'i')
129 return (ifioctl(so, cmd, data, p));
130 if (IOCGROUP(cmd) == 'r')
131 return (rtioctl(cmd, data, p));
132 return ((*so->so_proto->pr_usrreq)(so, PRU_CONTROL,
133 (struct mbuf *)cmd, (struct mbuf *)data, (struct mbuf *)0));
134}
135
136int
133soo_select(fp, which, p)
134 struct file *fp;
135 int which;
136 struct proc *p;
137{
138 register struct socket *so = (struct socket *)fp->f_data;
139 register int s = splnet();
140

--- 25 unchanged lines hidden (view full) ---

166 selrecord(p, &so->so_rcv.sb_sel);
167 so->so_rcv.sb_flags |= SB_SEL;
168 break;
169 }
170 splx(s);
171 return (0);
172}
173
137soo_select(fp, which, p)
138 struct file *fp;
139 int which;
140 struct proc *p;
141{
142 register struct socket *so = (struct socket *)fp->f_data;
143 register int s = splnet();
144

--- 25 unchanged lines hidden (view full) ---

170 selrecord(p, &so->so_rcv.sb_sel);
171 so->so_rcv.sb_flags |= SB_SEL;
172 break;
173 }
174 splx(s);
175 return (0);
176}
177
178int
174soo_stat(so, ub)
175 register struct socket *so;
176 register struct stat *ub;
177{
178
179 bzero((caddr_t)ub, sizeof (*ub));
180 ub->st_mode = S_IFSOCK;
181 return ((*so->so_proto->pr_usrreq)(so, PRU_SENSE,
182 (struct mbuf *)ub, (struct mbuf *)0,
183 (struct mbuf *)0));
184}
185
186/* ARGSUSED */
179soo_stat(so, ub)
180 register struct socket *so;
181 register struct stat *ub;
182{
183
184 bzero((caddr_t)ub, sizeof (*ub));
185 ub->st_mode = S_IFSOCK;
186 return ((*so->so_proto->pr_usrreq)(so, PRU_SENSE,
187 (struct mbuf *)ub, (struct mbuf *)0,
188 (struct mbuf *)0));
189}
190
191/* ARGSUSED */
192int
187soo_close(fp, p)
188 struct file *fp;
189 struct proc *p;
190{
191 int error = 0;
192
193 if (fp->f_data)
194 error = soclose((struct socket *)fp->f_data);
195 fp->f_data = 0;
196 return (error);
197}
193soo_close(fp, p)
194 struct file *fp;
195 struct proc *p;
196{
197 int error = 0;
198
199 if (fp->f_data)
200 error = soclose((struct socket *)fp->f_data);
201 fp->f_data = 0;
202 return (error);
203}