replace nob with ms' build, move disk creation to build.bat, major comment cleanup, remove old and stupid tests, overhaul interrupt management with per-CPU vector allocation, affinity migration and safe teardown, add proper IOAPIC routing and PCI MSI/MSI-X/INTx support, migrate drivers to the new interrupt API, integrate ACPICA with a proper OS services layer, move ACPI firmware events, power button handling and S5 shutdown into acpi.sys, add parallel driver startup and atomic publication, replace PnP arrays with dynamic lists, redesign service startup again to be asynchronous, add delayed startup mode for services, allow omitting keys in services.ini, fix acpi ec deferred work handling, fix kernel threads having garbage exit code.
This commit is contained in:
1 parent
d36f19509c
commit
36eef8f58d
696 files changed
+147281
-7530
No files matched your search
@@ -0,0 +1 @@
|
||||
DIRS=native_runtime posix_start
|
||||
@@ -94,7 +94,6 @@ static void SplitBlock(HEAP_BLOCK* block, size_t size) {
|
||||
block->Next = tail;
|
||||
}
|
||||
|
||||
// Implements the coalesce Block operation.
|
||||
static void CoalesceBlock(HEAP_BLOCK* block) {
|
||||
if (block->Next && block->Next->Magic == USER_HEAP_MAGIC && block->Next->Free) {
|
||||
HEAP_BLOCK* next = block->Next;
|
||||
@@ -111,7 +110,6 @@ static void CoalesceBlock(HEAP_BLOCK* block) {
|
||||
}
|
||||
}
|
||||
|
||||
// Implements the add Segment operation.
|
||||
static HEAP_SEGMENT* AddSegment(size_t payloadSize) {
|
||||
size_t need = sizeof(HEAP_SEGMENT) + sizeof(HEAP_BLOCK) + AlignSize(payloadSize);
|
||||
size_t pages = (need + USER_HEAP_PAGE_SIZE - 1) / USER_HEAP_PAGE_SIZE;
|
||||
@@ -160,7 +158,6 @@ static void RemoveSegmentIfEmpty(HEAP_SEGMENT* seg) {
|
||||
SysFreeVm(seg);
|
||||
}
|
||||
|
||||
// Implements the malloc operation.
|
||||
void* _malloc(size_t size) {
|
||||
if (!size) return 0;
|
||||
size = AlignSize(size);
|
||||
@@ -209,7 +206,6 @@ void _free(void* ptr) {
|
||||
HeapUnlock();
|
||||
}
|
||||
|
||||
// Implements the calloc operation.
|
||||
void* _calloc(size_t count, size_t size) {
|
||||
if (count && size > ((size_t)-1) / count)
|
||||
return 0;
|
||||
@@ -241,7 +237,6 @@ size_t _malloc_usable_size(const void* ptr) {
|
||||
return size;
|
||||
}
|
||||
|
||||
// Implements the realloc operation.
|
||||
void* _realloc(void* ptr, size_t newSize) {
|
||||
if (!ptr) return _malloc(newSize);
|
||||
if (!newSize) {
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
!include $(BASEDIR)\makefile.def
|
||||
@@ -0,0 +1,5 @@
|
||||
TARGETNAME=native_runtime
|
||||
TARGETPATH=obj
|
||||
TARGETTYPE=LIBRARY
|
||||
FLAVOR=USER
|
||||
SOURCES=@/code/user/runtime/heap.c @/code/user/runtime/heap_exports.c @/code/user/runtime/native_exception.c @/code/user/runtime/native_start.c
|
||||
@@ -0,0 +1 @@
|
||||
!include $(BASEDIR)\makefile.def
|
||||
@@ -0,0 +1,5 @@
|
||||
TARGETNAME=posix_start
|
||||
TARGETPATH=obj
|
||||
TARGETTYPE=LIBRARY
|
||||
FLAVOR=POSIX
|
||||
SOURCES=@/code/user/runtime/posix_start.c
|
||||
Reference in new issue
Block a user