Esempio n. 1
0
        public static void ReturnFromPageFault(L4Handle target, out Msgtag tag, ref MessageRegisters mr, uint pfa, Pointer physicalPage, uint permssion)
        {
            var virt_page_addr = ArchDefinition.PageIndex(physicalPage.ToUInt32());
            var fpage          = new L4FPage(virt_page_addr, ArchDefinition.PageShift, (int)permssion);

            tag    = new Msgtag(0, 0, 1, 0);
            mr.mr0 = (int)(ArchDefinition.PageIndex(pfa) | Msgtag.L4_ITEM_MAP);
            mr.mr1 = (int)fpage.raw;
            NativeMethods.l4api_ipc_send(target, NativeMethods.l4api_utcb(), tag, Timeout.Never);
        }
Esempio n. 2
0
        public static void Initialize(ref BootParam param)
        {
            LinuxMainMemoryStart = param.LinuxMainMemoryStart;
            LinuxMainMemorySize  = param.LinuxMainMemorySize;
            LinuxIPCBuffer       = new ByteBufferRef(param.SyncIPCBufferBase.ToIntPtr(), param.SyncIPCBufferSize);

            if (param.SyncIPCBufferSize < MinimumIPCBufferSize)
            {
                ArchDefinition.Panic();
            }

            LinuxServerTid = param.LinuxServerTid;
        }