Exemple #1
0
        public static void Initialize(ref Arch.BootParam param)
        {
            BootParam = param;

            PageAllocator = new FreeListPageAllocator();
            PageAllocator.Initialize(param.MainMemoryStart, param.MainMemorySize >> Arch.ArchDefinition.PageShift);

            CompletionQueueAllocator = new FreeListPageAllocator();
            CompletionQueueAllocator.Initialize(param.CompletionQueueBase, param.CompletionQueueSize >> Arch.ArchDefinition.PageShift);

            Threads = ThreadList.CreateSentinal();
            FutexLists = FutexCompletionEntry.CreateSentinal();
            TimeoutQueue = new TimerQueue();
            SecurityManager = new SecurityManager();
            LinuxMemoryAllocator = new LinuxMemoryAllocator();
            CapabilityManager = new CapabilityManager();
            CompletionQueue = new CompletionQueue();

            SecureFS.Initialize(Util.StringToByteArray("ExpressOS-security", false));
            ReadBufferUnmarshaler.Initialize();
        }