MCPcopy Create free account
hub / github.com/LemonOSProject/LemonOS / DestroySharedMemory

Function DestroySharedMemory

Kernel/src/sharedmem.cpp:117–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

115 }
116
117 void DestroySharedMemory(int64_t key){
118 //acquireLock(&lock);
119
120 shared_mem_t* sMem = GetSharedMemory(key);
121
122 if(!sMem) {
123 releaseLock(&lock);
124 return; // Check for invalid key
125 }
126
127 if(sMem->mapCount > 0){
128 //Log::Error("Will not destroy active shared memory");
129 return;
130 }
131
132 for(unsigned i = 0; i < sMem->pgCount; i++){
133 Memory::FreePhysicalMemoryBlock(sMem->pages[i]);
134 }
135
136 table[key] = nullptr;
137
138 kfree(sMem->pages); // Free physical page array
139 kfree(sMem); // Free structure
140
141 //releaseLock(&lock);
142 }
143}

Callers 2

SysUnmapSharedMemoryFunction · 0.50
SysDestroySharedMemoryFunction · 0.50

Calls 3

GetSharedMemoryFunction · 0.85
FreePhysicalMemoryBlockFunction · 0.85
kfreeFunction · 0.85

Tested by

no test coverage detected