int main(int argc, char **argv) { void *m1 = malloc(50); // should allocate 64 bytes void *m2 = malloc(100); // should allocate 128 bytes free(m1); dump_memory_map(); void *m3 = malloc(56); // should allocate 64 bytes void *m4 = malloc(11); // should allocate 32 bytes free(m3); void *m5 = malloc(30); // should allocate 64 bytes void *m6 = malloc(120); // should allocate 128 bytes free(m2); return 0; }
/************************************************************************** * Used for multitasking debugging. ***************************************************************************/ void shell( s32int argc, char **argv){ // Shell command buffer s08int cmd[256]; s32int i; // Reset the command buffer memset08(cmd, 0, 256); // Command line while(TRUE) { kprintf(SHELL_PROMPT); scanf("%s", cmd); for(i = 0; i < SHELL_COMMANDS; i++) { // Parse the command if ( strncmp(cmd, commands[i].name, strlen(commands[i].name))==0 ) { if (*(cmd+strlen(commands[i].name)) == '\0') { *CMD_ARG = '\0'; break; } if (*(cmd+strlen(commands[i].name)) == ' ') { break; } } } if (i == SHELL_COMMANDS) { // Command not found if (cmd[0]) { kprintf("\n\r%s: command not found!!!\n\r", cmd); } continue; } switch(commands[i].index){ case SH_HELP: kprintf("\nBlueShell version 0.1 - by David Davidson\n"); for (i = 0; i < SHELL_COMMANDS; i++) { kprintf("\n- %s : %s", commands[i].name, commands[i].help); } kprintf("\n\n"); break; case SH_UNAME: kprintf("\n%s - Kernel [v%s]\n", KERNEL_NAME, KERNEL_VERSION); break; case SH_CLEAR: kclrscr(); break; case SH_REBOOT: reboot(); break; case SH_READ: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_WRITE: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_PAGES: dump_dirty_pages(); break; case SH_MEM: dump_memory_map(); break; case SH_CHECKMEM: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_FRAMES: dump_free_frames(); break; case SH_EXEC: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_V86EXEC: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_TEST: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_CPUID: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_MOUNT: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_LS: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_CAT: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_CD: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_PS: ps(); break; case SH_KILL: kprintf("%s command not yet Implemented.\n",cmd); break; case SH_PWD: kprintf("%s command not yet Implemented.\n",cmd); break; } } }