From a4d8e191b95d95650d413c1c2723fb70ec9c7f32 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Thu, 10 May 2012 15:51:10 +0200 Subject: Move rtems_bsd_thread0_ucred --- Makefile | 1 + freebsd-to-rtems.py | 1 + freebsd/kern/init_main.c | 9 ------ rtemsbsd/src/rtems-bsd-thread0-ucred.c | 53 ++++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+), 9 deletions(-) create mode 100644 rtemsbsd/src/rtems-bsd-thread0-ucred.c diff --git a/Makefile b/Makefile index 5a17768d..53385923 100644 --- a/Makefile +++ b/Makefile @@ -20,6 +20,7 @@ C_FILES = C_FILES += rtemsbsd/dev/usb/controller/ohci_lpc24xx.c C_FILES += rtemsbsd/dev/usb/controller/ohci_lpc32xx.c C_FILES += rtemsbsd/dev/usb/controller/ehci_mpc83xx.c +C_FILES += rtemsbsd/src/rtems-bsd-thread0-ucred.c C_FILES += rtemsbsd/src/rtems-bsd-cam.c C_FILES += rtemsbsd/src/rtems-bsd-nexus.c C_FILES += rtemsbsd/src/rtems-bsd-autoconf.c diff --git a/freebsd-to-rtems.py b/freebsd-to-rtems.py index 4c004148..43597b47 100755 --- a/freebsd-to-rtems.py +++ b/freebsd-to-rtems.py @@ -513,6 +513,7 @@ rtems.addRTEMSSourceFiles( 'dev/usb/controller/ohci_lpc24xx.c', 'dev/usb/controller/ohci_lpc32xx.c', 'dev/usb/controller/ehci_mpc83xx.c', + 'src/rtems-bsd-thread0-ucred.c', 'src/rtems-bsd-cam.c', 'src/rtems-bsd-nexus.c', 'src/rtems-bsd-autoconf.c', diff --git a/freebsd/kern/init_main.c b/freebsd/kern/init_main.c index 8ae8a71f..540e0cb1 100644 --- a/freebsd/kern/init_main.c +++ b/freebsd/kern/init_main.c @@ -118,8 +118,6 @@ SYSINIT(placeholder, SI_SUB_DUMMY, SI_ORDER_ANY, NULL, NULL); * The sysinit table itself. Items are checked off as the are run. * If we want to register new sysinit types, add them to newsysinit. */ -#else /* __rtems__ */ -struct ucred *rtems_bsd_thread0_ucred; #endif /* __rtems__ */ SET_DECLARE(sysinit_set, struct sysinit); #ifndef __rtems__ @@ -193,13 +191,6 @@ mi_startup(void) #ifndef __rtems__ if (boothowto & RB_VERBOSE) bootverbose++; -#else /* __rtems__ */ - rtems_bsd_thread0_ucred = crget(); - rtems_bsd_thread0_ucred->cr_ngroups = 1; /* group 0 */ - rtems_bsd_thread0_ucred->cr_uidinfo = uifind(0); - rtems_bsd_thread0_ucred = uifind(0); - rtems_bsd_thread0_ucred->cr_prison = &prison0; - #endif /* __rtems__ */ if (sysinit == NULL) { diff --git a/rtemsbsd/src/rtems-bsd-thread0-ucred.c b/rtemsbsd/src/rtems-bsd-thread0-ucred.c new file mode 100644 index 00000000..c3e17f9f --- /dev/null +++ b/rtemsbsd/src/rtems-bsd-thread0-ucred.c @@ -0,0 +1,53 @@ +/** + * @file + * + * @ingroup rtems_bsd_rtems + */ + +/* + * Copyright (c) 2012 On-Line Applications Research Corporation (OAR). + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#include + +#include +#include +#include +#include +#include +#include + +struct ucred *rtems_bsd_thread0_ucred; + +static void rtems_bsd_thread0_ucred_init(void *arg) +{ + rtems_bsd_thread0_ucred = crget(); + rtems_bsd_thread0_ucred->cr_ngroups = 1; /* group 0 */ + rtems_bsd_thread0_ucred->cr_uidinfo = uifind(0); + rtems_bsd_thread0_ucred = uifind(0); + rtems_bsd_thread0_ucred->cr_prison = &prison0; +} + +SYSINIT(cpu, SI_SUB_CPU, SI_ORDER_FIRST, rtems_bsd_thread0_ucred_init, NULL); -- cgit v1.2.3