aboutsummaryrefslogtreecommitdiff
path: root/stand/forth
diff options
context:
space:
mode:
authorWarner Losh <imp@FreeBSD.org>2018-02-02 15:01:33 +0000
committerWarner Losh <imp@FreeBSD.org>2018-02-02 15:01:33 +0000
commit74bb0b0e9a8da7e292cba722270f779cf77ffef5 (patch)
tree3a447839c3571cb475459be7443f3c614b71254c /stand/forth
parent6c1e03251e0bf9e900aec0b0a4f98cda2eb3ebf5 (diff)
Notes
Diffstat (limited to 'stand/forth')
-rw-r--r--stand/forth/pnp.4th205
1 files changed, 0 insertions, 205 deletions
diff --git a/stand/forth/pnp.4th b/stand/forth/pnp.4th
deleted file mode 100644
index 4aa4bcf2ac21..000000000000
--- a/stand/forth/pnp.4th
+++ /dev/null
@@ -1,205 +0,0 @@
-\ Copyright (c) 2000 Daniel C. Sobral <dcs@FreeBSD.org>
-\ 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
-;
-