Annotation of qemu/roms/SLOF/slof/fs/sms/sms-load.fs, revision 1.1.1.1

1.1       root        1: \ *****************************************************************************
                      2: \ * Copyright (c) 2004, 2008 IBM Corporation
                      3: \ * All rights reserved.
                      4: \ * This program and the accompanying materials
                      5: \ * are made available under the terms of the BSD License
                      6: \ * which accompanies this distribution, and is available at
                      7: \ * http://www.opensource.org/licenses/bsd-license.php
                      8: \ *
                      9: \ * Contributors:
                     10: \ *     IBM Corporation - initial implementation
                     11: \ ****************************************************************************/
                     12: 
                     13: false VALUE (sms-loaded?)
                     14: 
                     15: false value (sms-available?)
                     16: 
                     17: s" sms.fs" romfs-lookup IF true to (sms-available?) drop THEN
                     18: 
                     19: (sms-available?) [IF]
                     20: 
                     21: #include "packages/sms.fs"
                     22: 
                     23: \ Initialize SMS NVRAM handling.
                     24: #include "sms-nvram.fs"
                     25: 
                     26: \ Dynamically load sms code from the romfs file
                     27: \ Assumption is that skeleton sms package already exists
                     28: \ but aside of open & close, all other methods are in a romfs file (sms.fs)
                     29: \ Here we open the package and load the rest of the functionality
                     30: 
                     31: \ After that, one needs to find-device and execute sms-start method
                     32: \ The shorthand for that is given as (global) sms-start word
                     33: 
                     34: : $sms-node s" /packages/sms" ;
                     35: 
                     36: : (sms-init-package) ( -- true|false )
                     37:    (sms-loaded?) ?dup IF EXIT THEN
                     38:    $sms-node ['] find-device catch IF 2drop false EXIT THEN
                     39:    s" sms.fs" [COMPILE] included
                     40:    device-end
                     41:    true dup to (sms-loaded?)
                     42: ;
                     43: 
                     44: \ External wrapper for sms package method
                     45: : (sms-evaluate) ( addr len -- )
                     46:    (sms-init-package) not IF
                     47:       cr ." SMS is not available." cr 2drop exit
                     48:    THEN
                     49: 
                     50:    s" Entering SMS ..." type
                     51:    disable-watchdog
                     52:    reset-dual-emit
                     53: 
                     54:    \ if we only had execute-device-method...
                     55:    2>r $sms-node find-device
                     56:    2r> evaluate
                     57:    device-end
                     58:    vpd-boot-import
                     59: ;
                     60: 
                     61: : sms-start ( -- ) s" sms-start" (sms-evaluate) ;
                     62: : sms-fru-replacement ( -- ) s" sms-fru-replacement" (sms-evaluate) ;
                     63: 
                     64: [ELSE]
                     65: 
                     66: : sms-start ( -- ) cr ." SMS is not available." cr ;
                     67: : sms-fru-replacement ( -- ) cr ." SMS FRU replacement is not available." cr ;
                     68: 
                     69: [THEN]
                     70: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.