aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--comhan.c3
-rw-r--r--main.c31
-rw-r--r--pcb.c4
3 files changed, 19 insertions, 19 deletions
diff --git a/comhan.c b/comhan.c
index 73b0c54..febb503 100644
--- a/comhan.c
+++ b/comhan.c
@@ -7,6 +7,7 @@
#include <stdio.h>
#include <string.h>
+#include <stdlib.h>
#include "mpx.h"
#define BUF_SIZE 80 /* Size of the command line buffer. */
@@ -79,7 +80,7 @@ void comhan() {
int get_cmd(char cmd[]){
/* return the number associated with a command (use STOP, HELP etc) */
- int i =0 ; //loop control
+ int i = 0; //loop control
if (cmd == NULL) {
return -1;
diff --git a/main.c b/main.c
index 9bd8b55..c6d567f 100644
--- a/main.c
+++ b/main.c
@@ -12,24 +12,23 @@ pcb * pcb_list;
pcb * ready_queue;
pcb * io_init_queue;
-int main(void) {
+pcb pcb0;
+pcb pcb1;
+pcb pcb2;
+pcb pcb3;
+pcb pcb4;
+pcb pcb5;
+pcb pcb6;
+pcb pcb7;
+pcb pcb8;
+pcb pcb9;
+pcb pcb10;
+pcb pcb11;
+int main(void) {
+ printf("Booting MPX... \n");
/* Put initialization code here */
- // allocate memory for PCBs
- pcb pcb0;
- pcb pcb1;
- pcb pcb2;
- pcb pcb3;
- pcb pcb4;
- pcb pcb5;
- pcb pcb6;
- pcb pcb7;
- pcb pcb8;
- pcb pcb9;
- pcb pcb10;
- pcb pcb11;
-
// create the chain
pcb0.chain = &pcb1;
pcb1.chain = &pcb2;
@@ -59,8 +58,6 @@ int main(void) {
pcb_list = &pcb0;
- printf("... booting MPX\n\n");
-
comhan(); /* Execute the command handler */
return 0;
diff --git a/pcb.c b/pcb.c
index 8cffe3f..8f4034a 100644
--- a/pcb.c
+++ b/pcb.c
@@ -146,7 +146,9 @@ int insert_pcb(pcb **queue, pcb * addr, int method) {
current->next = addr;
addr->next = one_after;
addr->prev = current;
- one_after->prev = addr;
+ if (one_after != NULL) {
+ one_after->prev = addr;
+ }
} else {
// otherwise, put it at the head