Annotation of qemu/roms/SLOF/lib/libvirtio/virtio.code, revision 1.1.1.1

1.1       root        1: /******************************************************************************
                      2:  * Copyright (c) 2004, 2011 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: #include <virtio.h>
                     14: #include <virtio-blk.h>
                     15: #include <virtio-9p.h>
                     16: 
                     17: /******** core virtio ********/
                     18: 
                     19: // : virtio-vring-size  ( queuesize -- ringsize )
                     20: PRIM(virtio_X2d_vring_X2d_size)
                     21:        TOS.u = virtio_vring_size(TOS.u);
                     22: MIRP
                     23: 
                     24: // : virtio-get-qsize  ( dev queue -- queuesize )
                     25: PRIM(virtio_X2d_get_X2d_qsize)
                     26:        int queue = TOS.u; POP;
                     27:        TOS.u = virtio_get_qsize(TOS.a, queue);
                     28: MIRP
                     29: 
                     30: // : virtio-get-config  ( dev offset size -- val )
                     31: PRIM(virtio_X2d_get_X2d_config)
                     32:        int size = TOS.u; POP;
                     33:        int offset = TOS.u; POP;
                     34:        TOS.u = virtio_get_config(TOS.a, offset, size);
                     35: MIRP
                     36: 
                     37: /******** virtio-blk ********/
                     38: 
                     39: // : virtio-blk-init ( dev -- )
                     40: PRIM(virtio_X2d_blk_X2d_init)
                     41:        void *dev = TOS.a; POP;
                     42:        virtioblk_init(dev);
                     43: MIRP
                     44: 
                     45: // : virtio-blk-shutdown ( dev -- )
                     46: PRIM(virtio_X2d_blk_X2d_shutdown)
                     47:        void *dev = TOS.a; POP;
                     48:        virtioblk_shutdown(dev);
                     49: MIRP
                     50: 
                     51: // : virtio-blk-read ( dev blkno cnt reg -- #read )
                     52: PRIM(virtio_X2d_blk_X2d_read)
                     53:        void *dev = TOS.a; POP;
                     54:        long cnt = TOS.n; POP;
                     55:        long blkno = TOS.n; POP;
                     56:        void *buf = TOS.a;
                     57:        TOS.n = virtioblk_read(dev, buf, blkno, cnt);
                     58: MIRP
                     59: 
                     60: /******** virtio-fs ********/
                     61: 
                     62: // : virtio-fs-init ( dev tx rx size -- success )
                     63: PRIM(virtio_X2d_fs_X2d_init)
                     64:        int size = TOS.n; POP;
                     65:        void *rx = TOS.a; POP;
                     66:        void *tx = TOS.a; POP;
                     67:        void *dev = TOS.a;
                     68: 
                     69:        TOS.n = virtio_9p_init(dev, tx, rx, size) == 0 ? -1 : 0;
                     70: MIRP
                     71: 
                     72: // : virtio-fs-shutdown ( dev -- )
                     73: PRIM(virtio_X2d_fs_X2d_shutdown)
                     74:        void *dev = TOS.a; POP;
                     75: 
                     76:        virtio_9p_shutdown(dev);
                     77: MIRP
                     78: 
                     79: // : virtio-fs-load ( dev buf str -- #read )
                     80: PRIM(virtio_X2d_fs_X2d_load)
                     81:        char *str = TOS.a; POP;
                     82:        void *buf = TOS.a; POP;
                     83:        void *dev = TOS.a;
                     84: 
                     85:        TOS.n = virtio_9p_load(dev, str, buf);
                     86: MIRP

unix.superglobalmegacorp.com

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