diff options
author | RajithaY <rajithax.yerrumsetty@intel.com> | 2017-04-25 03:31:15 -0700 |
---|---|---|
committer | Rajitha Yerrumchetty <rajithax.yerrumsetty@intel.com> | 2017-05-22 06:48:08 +0000 |
commit | bb756eebdac6fd24e8919e2c43f7d2c8c4091f59 (patch) | |
tree | ca11e03542edf2d8f631efeca5e1626d211107e3 /qemu/roms/SLOF/slof/fs/instance.fs | |
parent | a14b48d18a9ed03ec191cf16b162206998a895ce (diff) |
Adding qemu as a submodule of KVMFORNFV
This Patch includes the changes to add qemu as a submodule to
kvmfornfv repo and make use of the updated latest qemu for the
execution of all testcase
Change-Id: I1280af507a857675c7f81d30c95255635667bdd7
Signed-off-by:RajithaY<rajithax.yerrumsetty@intel.com>
Diffstat (limited to 'qemu/roms/SLOF/slof/fs/instance.fs')
-rw-r--r-- | qemu/roms/SLOF/slof/fs/instance.fs | 193 |
1 files changed, 0 insertions, 193 deletions
diff --git a/qemu/roms/SLOF/slof/fs/instance.fs b/qemu/roms/SLOF/slof/fs/instance.fs deleted file mode 100644 index 9e5c9215e..000000000 --- a/qemu/roms/SLOF/slof/fs/instance.fs +++ /dev/null @@ -1,193 +0,0 @@ -\ ***************************************************************************** -\ * Copyright (c) 2004, 2011 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 -\ ****************************************************************************/ - -\ Support for device node instances. - -0 VALUE my-self - -400 CONSTANT max-instance-size - -STRUCT - /n FIELD instance>node - /n FIELD instance>parent - /n FIELD instance>args - /n FIELD instance>args-len - /n FIELD instance>size - /n FIELD instance>#units - /n FIELD instance>unit1 \ For instance-specific "my-unit" - /n FIELD instance>unit2 - /n FIELD instance>unit3 - /n FIELD instance>unit4 -CONSTANT /instance-header - -: >instance ( offset -- myself+offset ) - my-self 0= ABORT" No instance!" - dup my-self instance>size @ >= ABORT" Instance access out of bounds!" - my-self + -; - -: (create-instance-var) ( initial-value -- ) - get-node - dup node>instance-size @ cell+ max-instance-size - >= ABORT" Instance is bigger than max-instance-size!" - dup node>instance-template @ ( iv phandle tmp-ih ) - swap node>instance-size dup @ ( iv tmp-ih *instance-size instance-size ) - dup , \ compile current instance ptr - swap 1 cells swap +! ( iv tmp-ih instance-size ) - + ! -; - -: create-instance-var ( "name" initial-value -- ) - CREATE (create-instance-var) PREVIOUS -; - -: (create-instance-buf) ( buffersize -- ) - aligned \ align size to multiples of cells - dup get-node node>instance-size @ + ( buffersize' newinstancesize ) - max-instance-size > ABORT" Instance is bigger than max-instance-size!" - get-node node>instance-template @ get-node node>instance-size @ + - over erase \ clear according to IEEE 1275 - get-node node>instance-size @ ( buffersize' old-instance-size ) - dup , \ compile current instance ptr - + get-node node>instance-size ! \ store new size -; - -: create-instance-buf ( "name" buffersize -- ) - CREATE (create-instance-buf) PREVIOUS -; - -VOCABULARY instance-words ALSO instance-words DEFINITIONS - -: VARIABLE 0 create-instance-var DOES> [ here ] @ >instance ; -: VALUE create-instance-var DOES> [ here ] @ >instance @ ; -: DEFER 0 create-instance-var DOES> [ here ] @ >instance @ execute ; -: BUFFER: create-instance-buf DOES> [ here ] @ >instance ; - -PREVIOUS DEFINITIONS - -\ Save XTs of the above instance-words (put on the stack with "[ here ]") -CONSTANT <instancebuffer> -CONSTANT <instancedefer> -CONSTANT <instancevalue> -CONSTANT <instancevariable> - -\ check whether a value or a defer word is an -\ instance word: It must be a CREATE word and -\ the DOES> part must do >instance as first thing - -: (instance?) ( xt -- xt true|false ) - dup @ <create> = IF - dup cell+ @ cell+ @ ['] >instance = - ELSE - false - THEN -; - -\ This word does instance values in compile mode. -\ It corresponds to DOTO from engine.in -: (doito) ( value R:*CFA -- ) - r> cell+ dup >r - @ cell+ cell+ @ >instance ! -; -' (doito) CONSTANT <(doito)> - -: to ( value wordname<> -- ) - ' (instance?) - state @ IF - \ compile mode handling normal or instance value - IF ['] (doito) ELSE ['] DOTO THEN - , , EXIT - THEN - IF - cell+ cell+ @ >instance ! \ interp mode instance value - ELSE - cell+ ! \ interp mode normal value - THEN -; IMMEDIATE - -: behavior ( defer-xt -- contents-xt ) - dup cell+ @ <instancedefer> = IF \ Is defer-xt an INSTANCE DEFER ? - 2 cells + @ >instance @ - ELSE - behavior - THEN -; - -: INSTANCE ALSO instance-words ; - -: my-parent my-self instance>parent @ ; -: my-args my-self instance>args 2@ swap ; - -\ copy args from original instance to new created -: set-my-args ( old-addr len -- ) - dup IF \ IF len > 0 ( old-addr len ) - dup alloc-mem \ | allocate space for new args ( old-addr len new-addr ) - 2dup my-self instance>args 2! \ | write into instance struct ( old-addr len new-addr ) - swap move \ | and copy the args ( ) - ELSE \ ELSE ( old-addr len ) - my-self instance>args 2! \ | set new args to zero, too ( ) - THEN \ FI -; - -\ Current node has already been set, when this is called. -: create-instance-data ( -- instance ) - get-node dup node>instance-template @ ( phandle instance-template ) - swap node>instance-size @ ( instance-template instance-size ) - dup >r - dup alloc-mem dup >r swap move r> ( instance ) - dup instance>size r> swap ! \ Store size for destroy-instance - dup instance>#units 0 swap ! \ Use node unit by default -; -: create-instance ( -- ) - my-self create-instance-data - dup to my-self instance>parent ! - get-node my-self instance>node ! -; - -: destroy-instance ( instance -- ) - dup instance>args @ ?dup IF \ Free instance args? - over instance>args-len @ free-mem - THEN - dup instance>size @ free-mem -; - -: ihandle>phandle ( ihandle -- phandle ) - dup 0= ABORT" no current instance" instance>node @ -; - -: push-my-self ( ihandle -- ) r> my-self >r >r to my-self ; -: pop-my-self ( -- ) r> r> to my-self >r ; -: call-package push-my-self execute pop-my-self ; -: $call-static ( ... str len node -- ??? ) -\ cr ." call for " 3dup -rot type ." on node " . - find-method IF execute ELSE -1 throw THEN -; - -: $call-my-method ( str len -- ) - my-self ihandle>phandle $call-static -; - -: $call-method ( str len ihandle -- ) - push-my-self - ['] $call-my-method CATCH ?dup IF - pop-my-self THROW - THEN - pop-my-self -; - -0 VALUE calling-child - -: $call-parent - my-self ihandle>phandle TO calling-child - my-parent $call-method - 0 TO calling-child -; |