diff options
author | jhb <jhb@FreeBSD.org> | 2001-12-11 00:49:34 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2001-12-11 00:49:34 +0000 |
commit | 8c6afa35bea1a5ea8a94a3c60d1988999cb41bcc (patch) | |
tree | 3d16cb8ac2303ccc50640d839778a81b153c89ec /sys/boot/forth | |
parent | 991ffbae5691ddb93149381b3c23fcf0763b63bd (diff) | |
download | FreeBSD-src-8c6afa35bea1a5ea8a94a3c60d1988999cb41bcc.zip FreeBSD-src-8c6afa35bea1a5ea8a94a3c60d1988999cb41bcc.tar.gz |
- Add 'fwrite' and 'fseek' words for writing to and seeking on files.
- Change the 'fopen' keyword to accept a mode parameter. Note that this
will break existing 4th scripts that use fopen. Thus, the loader
version has been bumped and loader.4th has been changed to check for a
sufficient version on i386 and alpha. Be sure that you either do a full
world build or install or full build and install of sys/boot after this
since loader.old won't work with the new 4th files and vice versa.
PR: kern/32389
Submitted by: Jonathan Mini <mini@haikugeek.com>
Sponsored by: ClickArray, Inc.
Diffstat (limited to 'sys/boot/forth')
-rw-r--r-- | sys/boot/forth/loader.4th | 8 | ||||
-rw-r--r-- | sys/boot/forth/pnp.4th | 2 | ||||
-rw-r--r-- | sys/boot/forth/support.4th | 23 |
3 files changed, 16 insertions, 17 deletions
diff --git a/sys/boot/forth/loader.4th b/sys/boot/forth/loader.4th index f4d7666..3349c1f 100644 --- a/sys/boot/forth/loader.4th +++ b/sys/boot/forth/loader.4th @@ -26,8 +26,8 @@ s" arch-alpha" environment? [if] [if] s" loader_version" environment? [if] - 11 < [if] - .( Loader version 1.1+ required) cr + 12 < [if] + .( Loader version 1.2+ required) cr abort [then] [else] @@ -38,8 +38,8 @@ s" arch-alpha" environment? [if] [if] s" arch-i386" environment? [if] [if] s" loader_version" environment? [if] - 10 < [if] - .( Loader version 1.0+ required) cr + 11 < [if] + .( Loader version 1.1+ required) cr abort [then] [else] diff --git a/sys/boot/forth/pnp.4th b/sys/boot/forth/pnp.4th index a9f2899..395164d 100644 --- a/sys/boot/forth/pnp.4th +++ b/sys/boot/forth/pnp.4th @@ -158,7 +158,7 @@ only forth also support-functions : load-pnp 0 to end_of_file? reset_line_reading - s" /boot/pnpid.conf" fopen fd ! + s" /boot/pnpid.conf" O_RDONLY fopen fd ! fd @ -1 <> if begin end_of_file? 0= diff --git a/sys/boot/forth/support.4th b/sys/boot/forth/support.4th index 7988012..d711094 100644 --- a/sys/boot/forth/support.4th +++ b/sys/boot/forth/support.4th @@ -80,6 +80,16 @@ 8 constant before_load_error 9 constant after_load_error +\ I/O constants + +0 constant SEEK_SET +1 constant SEEK_CUR +2 constant SEEK_END + +0 constant O_RDONLY +1 constant O_WRONLY +2 constant O_RDWR + \ Crude structure support : structure: @@ -931,23 +941,12 @@ support-functions definitions only forth also support-functions definitions -: create_null_terminated_string { addr len -- addr' len } - len char+ allocate if out_of_memory throw then - >r - addr r@ len move - 0 r@ len + c! - r> len -; - \ Interface to loading conf files : load_conf ( addr len -- ) 0 to end_of_file? reset_line_reading - create_null_terminated_string - over >r - fopen fd ! - r> free-memory + O_RDONLY fopen fd ! fd @ -1 = if open_error throw then ['] process_conf catch fd @ fclose |