From 53ba78c11ccaff3268f40699a275b5fc0fff5115 Mon Sep 17 00:00:00 2001 From: Jay Freeman Date: Thu, 14 Feb 2008 11:06:17 +0000 Subject: Finally got 10.5 reboot working (with some serious hacks). git-svn-id: http://svn.telesphoreo.org/trunk@79 514c082c-b64e-11dc-b46d-3d985efe055d --- data/system-cmds/make.sh | 7 ++++--- data/system-cmds/reboot.diff | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 41 insertions(+), 3 deletions(-) create mode 100644 data/system-cmds/reboot.diff diff --git a/data/system-cmds/make.sh b/data/system-cmds/make.sh index 284e5dad4..2fc92eff5 100644 --- a/data/system-cmds/make.sh +++ b/data/system-cmds/make.sh @@ -13,8 +13,8 @@ arm-apple-darwin-gcc -o passwd passwd.tproj/!(od_passwd).c -I. -DTARGET_OS_EMBED arm-apple-darwin-strip passwd cp -va "${PKG_DATA}"/kextmanager* . -# dmesg reboot shutdown -for tproj in getconf getty hostinfo iostat login nvram sync sysctl vipw zprint; do +# dmesg shutdown +for tproj in getconf getty hostinfo iostat login nvram reboot sync sysctl vipw zprint; do echo "${tproj}" arm-apple-darwin-gcc -o "${tproj}" "${tproj}.tproj"/*.c -I. -D'__FBSDID(x)=' -DTARGET_OS_EMBEDDED -framework CoreFoundation -framework IOKit kextmanagerUser.c arm-apple-darwin-strip "${tproj}" @@ -22,8 +22,9 @@ done chmod u+s passwd login -pkg: mkdir -p /bin /usr/bin /usr/sbin +pkg: mkdir -p /bin /sbin /usr/bin /usr/sbin pkg: cp -a sync /bin +pkg: cp -a reboot /sbin pkg: cp -a passwd zprint getty getconf hostinfo login /usr/bin pkg: cp -a sysctl nvram vipw iostat /usr/sbin diff --git a/data/system-cmds/reboot.diff b/data/system-cmds/reboot.diff new file mode 100644 index 000000000..21d11a3bd --- /dev/null +++ b/data/system-cmds/reboot.diff @@ -0,0 +1,37 @@ +diff -r -u system_cmds-431/reboot.tproj/reboot.c system_cmds-431+iPhone/reboot.tproj/reboot.c +--- system_cmds-431/reboot.tproj/reboot.c 2007-09-06 20:46:17.000000000 +0000 ++++ system_cmds-431+iPhone/reboot.tproj/reboot.c 2008-02-12 11:29:02.000000000 +0000 +@@ -81,11 +81,9 @@ + int ch, howto, kflag, lflag, nflag, qflag, uflag; + char *p; + const char *user; +-#ifndef __APPLE__ + int i, fd, pflag, sverrno; + u_int pageins; + char *kernel; +-#endif + + if (strstr((p = rindex(*argv, '/')) ? p + 1 : *argv, "halt")) { + dohalt = 1; +@@ -240,19 +238,16 @@ + } + #endif + +-#ifdef __APPLE__ +- // launchd(8) handles reboot. This call returns NULL on success. +- exit(reboot2(howto) == NULL ? EXIT_SUCCESS : EXIT_FAILURE); +-#else /* __APPLE__ */ + reboot(howto); + /* FALLTHROUGH */ + ++#ifndef __APPLE__ + restart: ++#endif + sverrno = errno; + errx(1, "%s%s", kill(1, SIGHUP) == -1 ? "(can't restart init): " : "", + strerror(sverrno)); + /* NOTREACHED */ +-#endif /* __APPLE__ */ + } + + void -- cgit v1.2.3