Changeset 895 for Whitix/trunk/arch/i386/mm/virt.c
- Timestamp:
- 09/23/08 14:30:48 (4 months ago)
- Files:
-
- 1 modified
-
Whitix/trunk/arch/i386/mm/virt.c (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
Whitix/trunk/arch/i386/mm/virt.c
r741 r895 10 10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 11 11 * GNU General Public License for more details. 12 *13 * You should have received a copy of the GNU General Public License14 * along with Whitix; if not, write to the Free Software15 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA16 12 * 17 13 */ … … 27 23 #include <malloc.h> 28 24 #include <slab.h> 29 #include <imports.h>30 25 #include <print.h> 31 26 … … 66 61 int VirtMemManagerSetup(struct Process* process) 67 62 { 68 process->memManager=(struct MemManager*) memCacheAlloc(managerCache);63 process->memManager=(struct MemManager*)MemCacheAlloc(managerCache); 69 64 if (!process->memManager) 70 65 return -EFAULT; … … 172 167 } 173 168 174 ListAdd(&manager->list,&managerList); 169 if (currThread) 170 PreemptDisable(); 171 172 ListAddTail(&manager->list,&managerList); 173 174 if (currThread) 175 PreemptEnable(); 175 176 176 177 IrqRestoreFlags(flags); … … 211 212 * one for safety, as this one will be freed. */ 212 213 214 PreemptDisable(); 215 213 216 if (manager == current->memManager) 214 217 VirtSetCurrent(&kernelMem); … … 227 230 VirtUnmapPhysPage((DWORD)vPageDir); 228 231 ListRemove(&manager->list); 229 memCacheFree(managerCache,manager); 232 233 PreemptEnable(); 234 235 MemCacheFree(managerCache,manager); 230 236 231 237 return 0; … … 242 248 int VirtInit() 243 249 { 244 managerCache= memCacheCreate("Manager Cache",sizeof(struct MemManager),NULL,NULL,0);250 managerCache=MemCacheCreate("Manager Cache",sizeof(struct MemManager),NULL,NULL,0); 245 251 if (!managerCache) 246 252 return -ENOMEM; 253 254 extern int SlabInit(); 255 SlabInit(); 247 256 248 257 return 0;