Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F143374756
D36153.id.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D36153.id.diff
View Options
diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -60,13 +60,60 @@
* In retrospect, it would be a lot nicer to use an interface
* similar to the vnode VOP interface.
*/
+struct ifnet;
+struct stat;
+struct ucred;
+struct uio;
+
/* USE THESE FOR YOUR PROTOTYPES ! */
-typedef int pr_input_t (struct mbuf **, int*, int);
-typedef void pr_ctlinput_t (int, struct sockaddr *, void *);
-typedef int pr_ctloutput_t (struct socket *, struct sockopt *);
-typedef void pr_fasttimo_t (void);
-typedef void pr_slowtimo_t (void);
-typedef void pr_drain_t (void);
+typedef int pr_input_t(struct mbuf **, int*, int);
+typedef void pr_ctlinput_t(int, struct sockaddr *, void *);
+typedef int pr_ctloutput_t(struct socket *, struct sockopt *);
+typedef void pr_fasttimo_t(void);
+typedef void pr_slowtimo_t(void);
+typedef void pr_drain_t(void);
+typedef void pr_abort_t(struct socket *);
+typedef int pr_accept_t(struct socket *, struct sockaddr **);
+typedef int pr_attach_t(struct socket *, int, struct thread *);
+typedef int pr_bind_t(struct socket *, struct sockaddr *, struct thread *);
+typedef int pr_connect_t(struct socket *, struct sockaddr *,
+ struct thread *);
+typedef int pr_connect2_t(struct socket *, struct socket *);
+typedef int pr_control_t(struct socket *, u_long, caddr_t, struct ifnet *,
+ struct thread *);
+typedef void pr_detach_t(struct socket *);
+typedef int pr_disconnect_t(struct socket *);
+typedef int pr_listen_t(struct socket *, int, struct thread *);
+typedef int pr_peeraddr_t(struct socket *, struct sockaddr **);
+typedef int pr_rcvd_t(struct socket *, int);
+typedef int pr_rcvoob_t(struct socket *, struct mbuf *, int);
+typedef enum {
+ PRUS_OOB = 0x1,
+ PRUS_EOF = 0x2,
+ PRUS_MORETOCOME = 0x4,
+ PRUS_NOTREADY = 0x8,
+ PRUS_IPV6 = 0x10,
+} pr_send_flags_t;
+typedef int pr_send_t(struct socket *, int, struct mbuf *,
+ struct sockaddr *, struct mbuf *, struct thread *);
+typedef int pr_ready_t(struct socket *, struct mbuf *, int);
+typedef int pr_sense_t(struct socket *, struct stat *);
+typedef int pr_shutdown_t(struct socket *);
+typedef int pr_flush_t(struct socket *, int);
+typedef int pr_sockaddr_t(struct socket *, struct sockaddr **);
+typedef int pr_sosend_t(struct socket *, struct sockaddr *, struct uio *,
+ struct mbuf *, struct mbuf *, int, struct thread *);
+typedef int pr_soreceive_t(struct socket *, struct sockaddr **,
+ struct uio *, struct mbuf **, struct mbuf **, int *);
+typedef int pr_sopoll_t(struct socket *, int, struct ucred *,
+ struct thread *);
+typedef void pr_sosetlabel_t(struct socket *);
+typedef void pr_close_t(struct socket *);
+typedef int pr_bindat_t(int, struct socket *, struct sockaddr *,
+ struct thread *);
+typedef int pr_connectat_t(int, struct socket *, struct sockaddr *,
+ struct thread *);
+typedef int pr_aio_queue_t(struct socket *, struct kaiocb *);
struct protosw {
short pr_type; /* socket type used for */
@@ -181,51 +228,33 @@
* Some fields initialized to defaults if they are NULL.
*/
struct pr_usrreqs {
- void (*pru_abort)(struct socket *so);
- int (*pru_accept)(struct socket *so, struct sockaddr **nam);
- int (*pru_attach)(struct socket *so, int proto, struct thread *td);
- int (*pru_bind)(struct socket *so, struct sockaddr *nam,
- struct thread *td);
- int (*pru_connect)(struct socket *so, struct sockaddr *nam,
- struct thread *td);
- int (*pru_connect2)(struct socket *so1, struct socket *so2);
- int (*pru_control)(struct socket *so, u_long cmd, caddr_t data,
- struct ifnet *ifp, struct thread *td);
- void (*pru_detach)(struct socket *so);
- int (*pru_disconnect)(struct socket *so);
- int (*pru_listen)(struct socket *so, int backlog,
- struct thread *td);
- int (*pru_peeraddr)(struct socket *so, struct sockaddr **nam);
- int (*pru_rcvd)(struct socket *so, int flags);
- int (*pru_rcvoob)(struct socket *so, struct mbuf *m, int flags);
- int (*pru_send)(struct socket *so, int flags, struct mbuf *m,
- struct sockaddr *addr, struct mbuf *control,
- struct thread *td);
-#define PRUS_OOB 0x1
-#define PRUS_EOF 0x2
-#define PRUS_MORETOCOME 0x4
-#define PRUS_NOTREADY 0x8
-#define PRUS_IPV6 0x10
- int (*pru_ready)(struct socket *so, struct mbuf *m, int count);
- int (*pru_sense)(struct socket *so, struct stat *sb);
- int (*pru_shutdown)(struct socket *so);
- int (*pru_flush)(struct socket *so, int direction);
- int (*pru_sockaddr)(struct socket *so, struct sockaddr **nam);
- int (*pru_sosend)(struct socket *so, struct sockaddr *addr,
- struct uio *uio, struct mbuf *top, struct mbuf *control,
- int flags, struct thread *td);
- int (*pru_soreceive)(struct socket *so, struct sockaddr **paddr,
- struct uio *uio, struct mbuf **mp0, struct mbuf **controlp,
- int *flagsp);
- int (*pru_sopoll)(struct socket *so, int events,
- struct ucred *cred, struct thread *td);
- void (*pru_sosetlabel)(struct socket *so);
- void (*pru_close)(struct socket *so);
- int (*pru_bindat)(int fd, struct socket *so, struct sockaddr *nam,
- struct thread *td);
- int (*pru_connectat)(int fd, struct socket *so,
- struct sockaddr *nam, struct thread *td);
- int (*pru_aio_queue)(struct socket *so, struct kaiocb *job);
+ pr_abort_t *pru_abort;
+ pr_accept_t *pru_accept;
+ pr_attach_t *pru_attach;
+ pr_bind_t *pru_bind;
+ pr_connect_t *pru_connect;
+ pr_connect2_t *pru_connect2;
+ pr_control_t *pru_control;
+ pr_detach_t *pru_detach;
+ pr_disconnect_t *pru_disconnect;
+ pr_listen_t *pru_listen;
+ pr_peeraddr_t *pru_peeraddr;
+ pr_rcvd_t *pru_rcvd;
+ pr_rcvoob_t *pru_rcvoob;
+ pr_send_t *pru_send;
+ pr_ready_t *pru_ready;
+ pr_sense_t *pru_sense;
+ pr_shutdown_t *pru_shutdown;
+ pr_flush_t *pru_flush;
+ pr_sockaddr_t *pru_sockaddr;
+ pr_sosend_t *pru_sosend;
+ pr_soreceive_t *pru_soreceive;
+ pr_sopoll_t *pru_sopoll;
+ pr_sosetlabel_t *pru_sosetlabel;
+ pr_close_t *pru_close;
+ pr_bindat_t *pru_bindat;
+ pr_connectat_t *pru_connectat;
+ pr_aio_queue_t *pru_aio_queue;
};
/*
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Fri, Jan 30, 2:26 PM (15 h, 4 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28101675
Default Alt Text
D36153.id.diff (5 KB)
Attached To
Mode
D36153: protosw: provide prototypes for all protocol switch methods
Attached
Detach File
Event Timeline
Log In to Comment