aboutsummaryrefslogtreecommitdiff
path: root/slof/fs/quiesce.fs
diff options
context:
space:
mode:
authorAdrian Reber <adrian@lisas.de>2008-11-21 12:45:38 +0100
committerAdrian Reber <adrian@lisas.de>2008-11-21 12:45:38 +0100
commit1015f69140c36be1c56653075636be60ca433a6d (patch)
tree23c81fb82a757758186b8ad9adab8f48badd3a16 /slof/fs/quiesce.fs
parent07ec038eec68116cbfcc42b4eea568fd334e8c88 (diff)
downloadSLOF-slof-JX-1.4.0-0.zip
SLOF-slof-JX-1.4.0-0.tar.gz
SLOF-slof-JX-1.4.0-0.tar.bz2
imported slof-JX-1.4.0-0 releaseslof-JX-1.4.0-0
Diffstat (limited to 'slof/fs/quiesce.fs')
-rw-r--r--slof/fs/quiesce.fs48
1 files changed, 48 insertions, 0 deletions
diff --git a/slof/fs/quiesce.fs b/slof/fs/quiesce.fs
new file mode 100644
index 0000000..7521d1c
--- /dev/null
+++ b/slof/fs/quiesce.fs
@@ -0,0 +1,48 @@
+\ *****************************************************************************
+\ * Copyright (c) 2004, 2007 IBM Corporation
+\ * All rights reserved.
+\ * This program and the accompanying materials
+\ * are made available under the terms of the BSD License
+\ * which accompanies this distribution, and is available at
+\ * http://www.opensource.org/licenses/bsd-license.php
+\ *
+\ * Contributors:
+\ * IBM Corporation - initial implementation
+\ ****************************************************************************/
+
+
+10 CONSTANT quiesce-xt#
+
+\ The array with the quiesce execution tokens:
+CREATE quiesce-xts quiesce-xt# cells allot
+quiesce-xts quiesce-xt# cells erase
+
+
+\ Add a token to the quiesce execution token array:
+: add-quiesce-xt ( xt -- )
+ quiesce-xt# 0 DO
+ quiesce-xts I cells + ( xt arrayptr )
+ dup @ 0= IF ( xt arrayptr )
+ ! UNLOOP EXIT
+ ELSE
+ drop ( xt )
+ THEN
+ LOOP
+ ." Warning: quiesce xt list is full." cr
+;
+
+
+\ The quiesce call asserts that the firmware and all hardware
+\ is in a sane state (e.g. assert that no background DMA is
+\ running anymore)
+: quiesce ( -- )
+ quiesce-xt# 0 DO
+ quiesce-xts I cells + ( arrayptr )
+ @ dup IF ( xt )
+ EXECUTE
+ ELSE
+ drop UNLOOP EXIT
+ THEN
+ LOOP
+;
+