|
|
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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.