--- qemu/roms/SLOF/lib/libhvcall/hvcall.code 2018/04/24 18:59:08 1.1.1.1 +++ qemu/roms/SLOF/lib/libhvcall/hvcall.code 2018/04/24 19:44:37 1.1.1.2 @@ -1,5 +1,5 @@ /****************************************************************************** - * Copyright (c) 2004, 2008 IBM Corporation + * 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 @@ -9,24 +9,24 @@ * Contributors: * IBM Corporation - initial implementation *****************************************************************************/ + #include -// : hv-putchar ( char -- ) +// : hv-putchar ( hvtermno char -- ) PRIM(hv_X2d_putchar) char c = TOS.n; POP; - hv_putchar(c); + int hvtermno = TOS.n; POP; + hv_putchar(c, hvtermno); MIRP -// : hv-getchar ( -- char ) +// : hv-getchar ( hvtermno -- char ) PRIM(hv_X2d_getchar) - PUSH; - TOS.n = hv_getchar(); + TOS.n = hv_getchar(TOS.n); MIRP -// : hv-haschar ( -- res ) +// : hv-haschar ( hvtermno -- res ) PRIM(hv_X2d_haschar) - PUSH; - TOS.n = hv_haschar(); + TOS.n = hv_haschar(TOS.n); MIRP // : hv-reg-crq ( unit qaddr qsize -- res ) @@ -49,3 +49,49 @@ PRIM(hv_X2d_send_X2d_crq) unsigned int unit = TOS.u; TOS.n = hv_send_crq(unit, msgaddr); MIRP + +// : hv-put-tce ( liobn ioba tce -- rc ) +PRIM(hv_X2d_put_X2d_tce) + uint64_t tce = TOS.u; POP; + uint64_t ioba = TOS.u; POP; + uint32_t liobn = TOS.u; + TOS.u = hv_generic(H_PUT_TCE, liobn, ioba, tce); +MIRP + +PRIM(RB_X40) + unsigned long qaddr = TOS.u; + TOS.u = hv_logical_ci_load(1, qaddr); +MIRP +PRIM(RB_X21) + unsigned long qaddr = TOS.u; POP; + unsigned char val = TOS.u; POP; + hv_logical_ci_store(1, qaddr, val); +MIRP +PRIM(RW_X40) + unsigned long qaddr = TOS.u; + TOS.u = hv_logical_ci_load(2, qaddr); +MIRP +PRIM(RW_X21) + unsigned long qaddr = TOS.u; POP; + unsigned short val = TOS.u; POP; + hv_logical_ci_store(2, qaddr, val); +MIRP +PRIM(RL_X40) + unsigned long qaddr = TOS.u; + TOS.u = hv_logical_ci_load(4, qaddr); +MIRP +PRIM(RL_X21) + unsigned long qaddr = TOS.u; POP; + unsigned int val = TOS.u; POP; + hv_logical_ci_store(4, qaddr, val); +MIRP +PRIM(RX_X40) + unsigned long qaddr = TOS.u; + TOS.u = hv_logical_ci_load(8, qaddr); +MIRP +PRIM(RX_X21) + unsigned long qaddr = TOS.u; POP; + unsigned long val = TOS.u; POP; + hv_logical_ci_store(8, qaddr, val); +MIRP +