123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- "use strict";
- // jor1k compatibility
- var VIRTIO_MAGIC_REG = 0x0;
- var VIRTIO_VERSION_REG = 0x4;
- var VIRTIO_DEVICE_REG = 0x8;
- var VIRTIO_VENDOR_REG = 0xc;
- var VIRTIO_HOSTFEATURES_REG = 0x10;
- var VIRTIO_HOSTFEATURESSEL_REG = 0x14;
- var VIRTIO_GUESTFEATURES_REG = 0x20;
- var VIRTIO_GUESTFEATURESSEL_REG = 0x24;
- var VIRTIO_GUEST_PAGE_SIZE_REG = 0x28;
- var VIRTIO_QUEUESEL_REG = 0x30;
- var VIRTIO_QUEUENUMMAX_REG = 0x34;
- var VIRTIO_QUEUENUM_REG = 0x38;
- var VIRTIO_QUEUEALIGN_REG = 0x3C;
- var VIRTIO_QUEUEPFN_REG = 0x40;
- var VIRTIO_QUEUENOTIFY_REG = 0x50;
- var VIRTIO_INTERRUPTSTATUS_REG = 0x60;
- var VIRTIO_INTERRUPTACK_REG = 0x64;
- var VIRTIO_STATUS_REG = 0x70;
- /** @const */
- var VRING_DESC_F_NEXT = 1; /* This marks a buffer as continuing via the next field. */
- /** @const */
- var VRING_DESC_F_WRITE = 2; /* This marks a buffer as write-only (otherwise read-only). */
- /** @const */
- var VRING_DESC_F_INDIRECT = 4; /* This means the buffer contains a list of buffer descriptors. */
- function hex8(n)
- {
- return h(n);
- }
- var message = {};
- /** @param {...string} log */
- message.Debug = function(log)
- {
- dbg_log([].slice.apply(arguments).join(" "), LOG_9P);
- }
- message.Abort = function()
- {
- if(DEBUG)
- {
- throw "abort";
- }
- }
- // XXX: Should go through emulator interface
- var LoadBinaryResource;
- if(typeof XMLHttpRequest !== "undefined")
- {
- LoadBinaryResource = function(url, OnSuccess, OnError) {
- var req = new XMLHttpRequest();
- req.open('GET', url, true);
- req.responseType = "arraybuffer";
- req.onreadystatechange = function () {
- if (req.readyState != 4) {
- return;
- }
- if ((req.status != 200) && (req.status != 0)) {
- OnError("Error: Could not load file " + url);
- return;
- }
- var arrayBuffer = req.response;
- if (arrayBuffer) {
- OnSuccess(arrayBuffer);
- } else {
- OnError("Error: No data received from: " + url);
- }
- };
- /*
- req.onload = function(e)
- {
- var arrayBuffer = req.response;
- if (arrayBuffer) {
- OnLoadFunction(arrayBuffer);
- }
- };
- */
- req.send(null);
- }
- }
- else
- {
- LoadBinaryResource = function(url, OnSuccess, OnError)
- {
- //console.log(url);
- require("fs")["readFile"](url, function(err, data)
- {
- if(err)
- {
- OnError(err);
- }
- else
- {
- OnSuccess(new Uint8Array(data).buffer);
- }
- });
- }
- }
|