Collecting all system calls in a single translation unit is not good due to the library initialization through linker sets.
Update #4475. --- freebsd/sys/net/route.c | 18 ++++++++++++++++++ freebsd/sys/sys/sysproto.h | 2 -- .../machine/rtems-bsd-kernel-namespace.h | 1 - rtemsbsd/rtems/rtems-bsd-syscall-api.c | 14 -------------- 4 files changed, 18 insertions(+), 17 deletions(-) diff --git a/freebsd/sys/net/route.c b/freebsd/sys/net/route.c index 2e9883a1..adbf91bd 100644 --- a/freebsd/sys/net/route.c +++ b/freebsd/sys/net/route.c @@ -407,6 +407,9 @@ struct setfib_args { int fibnum; }; #endif +#ifdef __rtems__ +static +#endif /* __rtems__ */ int sys_setfib(struct thread *td, struct setfib_args *uap) { @@ -420,6 +423,20 @@ sys_setfib(struct thread *td, struct setfib_args *uap) #endif /* __rtems__ */ return (0); } +#ifdef __rtems__ +int +setfib(int fibnum) +{ + struct setfib_args ua = { + .fibnum = fibnum + }; + int error; + + error = sys_setfib(NULL, &ua); + + return rtems_bsd_error_to_status_and_errno(error); +} +#endif /* __rtems__ */ /* * Packet routing routines. @@ -2285,3 +2302,4 @@ rt_newaddrmsg_fib(int cmd, struct ifaddr *ifa, int error, struct rtentry *rt, rt_addrmsg(cmd, ifa, fibnum); } } + diff --git a/freebsd/sys/sys/sysproto.h b/freebsd/sys/sys/sysproto.h index a1ab7e44..1c1891de 100644 --- a/freebsd/sys/sys/sysproto.h +++ b/freebsd/sys/sys/sysproto.h @@ -2027,9 +2027,7 @@ int sys_rtprio(struct thread *, struct rtprio_args *); int sys_semsys(struct thread *, struct semsys_args *); int sys_msgsys(struct thread *, struct msgsys_args *); int sys_shmsys(struct thread *, struct shmsys_args *); -#endif /* __rtems__ */ int sys_setfib(struct thread *, struct setfib_args *); -#ifndef __rtems__ int sys_ntp_adjtime(struct thread *, struct ntp_adjtime_args *); int sys_setgid(struct thread *, struct setgid_args *); int sys_setegid(struct thread *, struct setegid_args *); diff --git a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h index 85f66912..a83334b5 100644 --- a/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h +++ b/rtemsbsd/include/machine/rtems-bsd-kernel-namespace.h @@ -5872,7 +5872,6 @@ #define sys_select _bsd_sys_select #define sys_sendmsg _bsd_sys_sendmsg #define sys_sendto _bsd_sys_sendto -#define sys_setfib _bsd_sys_setfib #define sys_setsockopt _bsd_sys_setsockopt #define sys_shutdown _bsd_sys_shutdown #define sys_socket _bsd_sys_socket diff --git a/rtemsbsd/rtems/rtems-bsd-syscall-api.c b/rtemsbsd/rtems/rtems-bsd-syscall-api.c index 76fc8ad7..1f659112 100644 --- a/rtemsbsd/rtems/rtems-bsd-syscall-api.c +++ b/rtemsbsd/rtems/rtems-bsd-syscall-api.c @@ -644,20 +644,6 @@ sendmsg(int socket, const struct msghdr *message, int flags) return rtems_bsd_error_to_status_and_errno(error); } -int -setfib(int fibnum) -{ - struct thread *td = rtems_bsd_get_curthread_or_null(); - int error; - if (td != NULL) { - struct setfib_args ua = { .fibnum = fibnum }; - error = sys_setfib(td, &ua); - } else { - error = ENOMEM; - } - return rtems_bsd_error_to_status_and_errno(error); -} - int setsockopt(int socket, int level, int option_name, const void *option_value, socklen_t option_len) -- 2.35.3 _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel