diff --git a/stand/common/pnp.c b/stand/common/pnp.c index 6197776a1d7..31a0de9dff4 100644 --- a/stand/common/pnp.c +++ b/stand/common/pnp.c @@ -17,9 +17,6 @@ __FBSDID("$FreeBSD$"); #include #include #include -#ifdef BOOT_FORTH -#include "ficl.h" -#endif static struct pnpinfo_stql pnp_devices; static int pnp_devices_initted = 0; @@ -187,50 +184,3 @@ pnp_eisaformat(u_int8_t *data) idbuf[7] = 0; return(idbuf); } - -#ifdef BOOT_FORTH -void -ficlPnpdevices(FICL_VM *pVM) -{ - static int pnp_devices_initted = 0; -#if FICL_ROBUST > 1 - vmCheckStack(pVM, 0, 1); -#endif - - if(!pnp_devices_initted) { - STAILQ_INIT(&pnp_devices); - pnp_devices_initted = 1; - } - - stackPushPtr(pVM->pStack, &pnp_devices); - - return; -} - -void -ficlPnphandlers(FICL_VM *pVM) -{ -#if FICL_ROBUST > 1 - vmCheckStack(pVM, 0, 1); -#endif - - stackPushPtr(pVM->pStack, pnphandlers); - - return; -} - -/* - * Glue function to add the appropriate forth words to access pnp BIOS - * functionality. - */ -static void ficlCompilePnp(FICL_SYSTEM *pSys) -{ - FICL_DICT *dp = pSys->dp; - assert (dp); - - dictAppendWord(dp, "pnpdevices",ficlPnpdevices, FW_DEFAULT); - dictAppendWord(dp, "pnphandlers",ficlPnphandlers, FW_DEFAULT); -} - -FICL_COMPILE_SET(ficlCompilePnp); -#endif diff --git a/stand/forth/pnp.4th b/stand/forth/pnp.4th deleted file mode 100644 index 4aa4bcf2ac2..00000000000 --- a/stand/forth/pnp.4th +++ /dev/null @@ -1,205 +0,0 @@ -\ Copyright (c) 2000 Daniel C. Sobral -\ 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. -\ -\ $FreeBSD$ - - -\ The following pnp code is used in pnp.4th and pnp.c -structure: STAILQ_HEAD - ptr stqh_first \ type* - ptr stqh_last \ type** -;structure - -structure: STAILQ_ENTRY - ptr stqe_next \ type* -;structure - -structure: pnphandler - ptr pnph.name - ptr pnph.enumerate -;structure - -structure: pnpident - ptr pnpid.ident \ char* - sizeof STAILQ_ENTRY cells member: pnpid.link \ pnpident -;structure - -structure: pnpinfo \ sync with stand/common/bootstrap.h - ptr pnpi.desc - int pnpi.revision - ptr pnpi.module \ (char*) module args - int pnpi.argc - ptr pnpi.argv - ptr pnpi.handler \ pnphandler - sizeof STAILQ_HEAD member: pnpi.ident \ pnpident - sizeof STAILQ_ENTRY member: pnpi.link \ pnpinfo -;structure -\ end of pnp support - -pnpdevices drop - -: enumerate - pnphandlers begin - dup @ - while - ." Probing " dup @ pnph.name @ dup strlen type ." ..." cr - 0 over @ pnph.enumerate @ ccall drop - cell+ - repeat -; - -: summary - ." PNP scan summary:" cr - pnpdevices stqh_first @ - begin - dup - while - dup pnpi.ident stqh_first @ pnpid.ident @ dup strlen type - dup pnpi.desc @ ?dup if - ." : " - dup strlen type - then - cr - pnpi.link stqe_next @ - repeat - drop -; - -: compare-pnpid ( addr addr' -- flag ) - begin - over c@ over c@ <> if drop drop false exit then - over c@ over c@ and - while - char+ swap char+ swap - repeat - c@ swap c@ or 0= -; - -: search-pnpid ( id -- flag ) - >r - pnpdevices stqh_first @ - begin ( pnpinfo ) - dup - while - dup pnpi.ident stqh_first @ - begin ( pnpinfo pnpident ) - dup pnpid.ident @ r@ compare-pnpid - if - r> drop - \ XXX Temporary debugging message - ." Found " pnpid.ident @ dup strlen type - pnpi.desc @ ?dup if - ." : " dup strlen type - then cr - \ drop drop - true - exit - then - pnpid.link stqe_next @ - ?dup 0= - until - pnpi.link stqe_next @ - repeat - r> drop - drop - false -; - -: skip-space ( addr -- addr' ) - begin - dup c@ bl = - over c@ 9 = or - while - char+ - repeat -; - -: skip-to-space ( addr -- addr' ) - begin - dup c@ bl <> - over c@ 9 <> and - over c@ and - while - char+ - repeat -; - -: premature-end? ( addr -- addr flag ) - postpone dup postpone c@ postpone 0= - postpone if postpone exit postpone then -; immediate - -0 value filename -0 value timestamp -0 value id - -only forth also support-functions - -: (load) load ; - -: check-pnpid ( -- ) - line_buffer .addr @ - \ Search for filename - skip-space premature-end? - dup to filename - \ Search for end of filename - skip-to-space premature-end? - 0 over c! char+ - \ Search for timestamp - skip-space premature-end? - dup to timestamp - skip-to-space premature-end? - 0 over c! char+ - \ Search for ids - begin - skip-space premature-end? - dup to id - skip-to-space dup c@ >r - 0 over c! char+ - id search-pnpid if - filename dup strlen 1 ['] (load) catch if - drop drop drop - ." Error loading " filename dup strlen type cr - then - r> drop exit - then - r> 0= - until -; - -: load-pnp - 0 to end_of_file? - reset_line_reading - s" /boot/pnpid.conf" O_RDONLY fopen fd ! - fd @ -1 <> if - begin - end_of_file? 0= - while - read_line - check-pnpid - repeat - fd @ fclose - then -; -