109 lines
2.6 KiB
JavaScript
109 lines
2.6 KiB
JavaScript
|
"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;
|
||
|
|
||
|
var VRING_DESC_F_NEXT = 1; /* This marks a buffer as continuing via the next field. */
|
||
|
var VRING_DESC_F_WRITE = 2; /* This marks a buffer as write-only (otherwise read-only). */
|
||
|
var VRING_DESC_F_INDIRECT = 4; /* This means the buffer contains a list of buffer descriptors. */
|
||
|
|
||
|
|
||
|
function Swap16(x)
|
||
|
{
|
||
|
// OR1K is big endian, therefore no conversion needed for us
|
||
|
return x;
|
||
|
}
|
||
|
function Swap32(x)
|
||
|
{
|
||
|
return x;
|
||
|
}
|
||
|
|
||
|
function abort()
|
||
|
{
|
||
|
if(DEBUG)
|
||
|
{
|
||
|
throw "abort";
|
||
|
}
|
||
|
}
|
||
|
var hex8 = h;
|
||
|
|
||
|
var DebugMessage;
|
||
|
|
||
|
if(DEBUG)
|
||
|
{
|
||
|
DebugMessage = console.log.bind(console);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
DebugMessage = function() {};
|
||
|
}
|
||
|
|
||
|
|
||
|
function LoadXMLResource(url, OnSuccess, OnError) {
|
||
|
var req = new XMLHttpRequest();
|
||
|
req.open('GET', url, true);
|
||
|
//req.overrideMimeType('text/xml');
|
||
|
req.onreadystatechange = function () {
|
||
|
if (req.readyState != 4) {
|
||
|
return;
|
||
|
}
|
||
|
if ((req.status != 200) && (req.status != 0)) {
|
||
|
OnError("Error: Could not load XML file " + url);
|
||
|
return;
|
||
|
}
|
||
|
OnSuccess(req.responseText);
|
||
|
};
|
||
|
req.send(null);
|
||
|
}
|
||
|
|
||
|
|
||
|
function LoadBinaryResource(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);
|
||
|
}
|
||
|
|