On 22. 8. 12., Larry Rosenman wrote:
This broke the build

In file included from sys_protosw.c:1:
/usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/protosw.h:82:43: error: type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int] typedef int     pr_control_t(struct socket *, u_long, caddr_t, struct ifnet *,
                                               ^
/usr/obj/usr/src/amd64.amd64/tmp/usr/include/sys/protosw.h:82:51: error: type specifier missing, defaults to 'int' [-Werror,-Wimplicit-int] typedef int     pr_control_t(struct socket *, u_long, caddr_t, struct ifnet *,
                                                       ^
2 errors generated.
*** Error code 1

You can work around it with the attached patch for now.

Jung-uk Kim

On 08/12/2022 10:32 am, Gleb Smirnoff wrote:
The branch main has been updated by glebius:

URL:
https://cgit.FreeBSD.org/src/commit/?id=886fc1e80490fb03e72e306774766cbb2c733ac6

commit 886fc1e80490fb03e72e306774766cbb2c733ac6
Author:     Gleb Smirnoff <gleb...@freebsd.org>
AuthorDate: 2022-08-12 15:30:34 +0000
Commit:     Gleb Smirnoff <gleb...@freebsd.org>
CommitDate: 2022-08-12 15:30:34 +0000

    protosw: provide prototypes for all protocol switch methods

    Reviewed by:            melifaro
    Differential revision:  https://reviews.freebsd.org/D36153
---
 sys/sys/protosw.h | 131 +++++++++++++++++++++++++++++++++---------------------
 1 file changed, 80 insertions(+), 51 deletions(-)

diff --git a/sys/sys/protosw.h b/sys/sys/protosw.h
index 22e057e5691a..7c7eece83e78 100644
--- a/sys/sys/protosw.h
+++ b/sys/sys/protosw.h
@@ -60,13 +60,60 @@ struct sockopt;
  * 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 @@ struct uio;
  * 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;
 };

 /*



--- tools/build/test-includes/badfiles.inc
+++ tools/build/test-includes/badfiles.inc
@@ -98,6 +98,7 @@ BADHDRS= \
 	sys/power.h \
 	sys/priority.h \
 	sys/prng.h \
+	sys/protosw.h \
 	sys/qmath.h \
 	sys/racct.h \
 	sys/refcount.h \

Reply via email to