[openfirmware] [commit] r2612 - forth/kernel forth/lib ofw/core

repository service svn at openfirmware.info
Sun Oct 16 02:01:43 CEST 2011


Author: wmb
Date: Sun Oct 16 02:01:43 2011
New Revision: 2612
URL: http://tracker.coreboot.org/trac/openfirmware/changeset/2612

Log:
Core - added deferred time&date to kernel so it can be used uniformly.

Modified:
   forth/kernel/kernel.fth
   forth/kernel/sysio.fth
   forth/lib/date.fth
   ofw/core/date.fth
   ofw/core/ofwfw.fth

Modified: forth/kernel/kernel.fth
==============================================================================
--- forth/kernel/kernel.fth	Sun Oct 16 01:21:46 2011	(r2611)
+++ forth/kernel/kernel.fth	Sun Oct 16 02:01:43 2011	(r2612)
@@ -3134,6 +3134,10 @@
    bye
 ;
 [then]
+defer time&date  ( -- s m h d m y )
+: now  ( -- s m h )  time&date 3drop  ;
+: today  ( -- d m y )  time&date >r >r >r  3drop  r> r> r>  ;
+
 
 \ LICENSE_BEGIN
 \ Copyright (c) 2006 FirmWorks

Modified: forth/kernel/sysio.fth
==============================================================================
--- forth/kernel/sysio.fth	Sun Oct 16 01:21:46 2011	(r2611)
+++ forth/kernel/sysio.fth	Sun Oct 16 02:01:43 2011	(r2612)
@@ -169,6 +169,12 @@
    $cstr d# 84 syscall drop retval  dup  if  cscount false  else  drop true  then
 ;
 
+: l at +  ( adr -- l adr' )  dup l@  swap la1+  ;
+: sys-time&date  ( -- s m h d m y )
+   d# 64 syscall retval                     ( adr )
+   l at + l at + l at + l at + l at + l at + drop  d# 1900 +  ( s m h d m y )
+;
+
 : install-wrapper-alloc  ( -- )
    \ Don't use "is" in case a relocation map needs to be allocated first
    ['] sys-alloc-mem    ['] alloc-mem >body >user token!
@@ -194,6 +200,7 @@
    \ init-relocation goes here, for versions that need it
    install-wrapper-key
    ['] sys-$getenv is $getenv
+   ['] sys-time&date is time&date
 ;
 
 headers

Modified: forth/lib/date.fth
==============================================================================
--- forth/lib/date.fth	Sun Oct 16 01:21:46 2011	(r2611)
+++ forth/lib/date.fth	Sun Oct 16 02:01:43 2011	(r2612)
@@ -1,30 +1,7 @@
 \ See license at end of file
-purpose: Date and Time-of-day access
+purpose: Date and Time-of-day display
 
 decimal
-variable tmstruct
-: tmfield  \ name  ( offset -- offset' )
-   create  dup ,  la1+
-   does> @  tmstruct @ +
-;
-
-struct   \ tm struct returned by 4.2 localtime call
-tmfield tm_sec
-tmfield tm_min 
-tmfield tm_hour
-tmfield tm_mday
-tmfield tm_mon
-tmfield tm_year
-tmfield tm_wday
-tmfield tm_yday
-tmfield tm_isdst
-drop
-
-: (today  ( -- timeval-struct-adr )  64 syscall retval tmstruct !  ;
-: today  ( -- day month year)
-   (today  tm_mday l@   tm_mon  l@ 1+  tm_year l@ 1900 +
-;
-: now  ( -- sec min hour )  (today  tm_sec l@  tm_min l@  tm_hour l@  ;
 : time-zone  ( -- minutes-west-of-GMT)  68 syscall retval  ;
 : .time-zone  ( -- )   72 syscall retval cscount type  ;
 
@@ -76,6 +53,7 @@
 ;
 : .now  ( -- )  now .time  ;
 : .today  ( -- )  today .date  ;
+
 \ LICENSE_BEGIN
 \ Copyright (c) 2006 FirmWorks
 \ 

Modified: ofw/core/date.fth
==============================================================================
--- ofw/core/date.fth	Sun Oct 16 01:21:46 2011	(r2611)
+++ ofw/core/date.fth	Sun Oct 16 02:01:43 2011	(r2612)
@@ -3,7 +3,7 @@
 
 variable clock-node  ' clock-node  " clock" chosen-variable
 
-: time&date  ( -- s m h d m y )
+: ofw-time&date  ( -- s m h d m y )
    " get-date" clock-node @ ihandle>phandle find-method  if
       drop
       " get-time" clock-node @  $call-method  swap rot
@@ -12,14 +12,16 @@
       " get-time" clock-node @  $call-method
    then
 ;
-: now  ( -- s m h )  time&date 3drop  ;
-: today  ( -- d m y )  time&date >r >r >r  3drop  r> r> r>  ;
+stand-init:
+   ['] ofw-time&date to time&date
+;
 
 headerless
 : 2.d  ( n -- )   push-decimal  (.2)  type  pop-base  ;
+: 4.d  ( n -- )   push-decimal  <# u# u# u# u# u#>  type  pop-base  ;
 
 headers
-: .date  ( d m y -- )   swap 2.d ." /" swap 2.d ." /" d# 100 mod 2.d  ;
+: .date  ( d m y -- )   4.d ." -" 2.d ." -" 2.d  ;
 : .time  ( s m h -- )   2.d ." :" 2.d ." :" 2.d  ;
 
 \ Interactive diagnostic

Modified: ofw/core/ofwfw.fth
==============================================================================
--- ofw/core/ofwfw.fth	Sun Oct 16 01:21:46 2011	(r2611)
+++ ofw/core/ofwfw.fth	Sun Oct 16 02:01:43 2011	(r2612)
@@ -4,7 +4,7 @@
 
 variable clock-node  ' clock-node  " clock" chosen-variable
 
-: time&date  ( -- s m h d m y )
+: ofw-time&date  ( -- s m h d m y )
    " get-date" clock-node @ ihandle>phandle find-method  if
       drop
       " get-time" clock-node @  $call-method  swap rot
@@ -13,8 +13,9 @@
       " get-time" clock-node @  $call-method
    then
 ;
-: now  ( -- s m h )  time&date 3drop  ;
-: today  ( -- d m y )  time&date >r >r >r  3drop  r> r> r>  ;
+stand-init:
+   ['] ofw-time&date to time&date
+;
 
 headerless
 : 2.d  ( n -- )   push-decimal  (.2)  type  pop-base  ;



More information about the openfirmware mailing list