#include "type-def.h" static char **bList; void initDisk() { int i; bList = (char **)malloc(sizeof(char *)*NUM_BLOCKS); for (i=0; i < NUM_BLOCKS; i++) { bList[i] = (char *)NULL; } } void freeDisk() { int i; for (i=0; i < NUM_BLOCKS; i++) { if (bList[i] != (char *)NULL) { free(bList[i]); } } free(bList); } int dRead(int addr, char *buf) { int i; if (addr >= NUM_BLOCKS) return ERROR; if (bList[addr] != NULL) { for (i=0; i < BLOCK_SIZE; i++) { buf[i] = bList[addr][i]; } } else { for (i=0; i < BLOCK_SIZE; i++) { buf[i] = 0; } } //sleep(1); return NO_ERROR; } int dWrite(int addr, char *buf) { int i; if (addr >= NUM_BLOCKS) return ERROR; if (bList[addr] == NULL) { bList[addr] = (char *)malloc(BLOCK_SIZE); } for (i=0; i < BLOCK_SIZE; i++) { bList[addr][i] = buf[i]; } //sleep(1); return NO_ERROR; }