int nbitmap = FSSIZE/(BSIZE*8) + 1;
int ninodeblocks = NINODES / IPB + 1;
-int nlog = LOGSIZE;
+int nlog = LOGSIZE;
int nmeta; // Number of meta blocks (boot, sb, nlog, inode, bitmap)
int nblocks; // Number of data blocks
uint freeinode = 1;
uint freeblock;
-
void balloc(int);
void wsect(uint, void*);
void winode(uint, struct dinode*);
char buf[BSIZE];
struct dinode din;
-
static_assert(sizeof(int) == 4, "Integers must be 4 bytes!");
if(argc < 2){
sb.inodestart = xint(2+nlog);
sb.bmapstart = xint(2+nlog+ninodeblocks);
- printf("nmeta %d (boot, super, log blocks %u inode blocks %u, bitmap blocks %u) blocks %d total %d\n",
+ printf("nmeta %d (boot, super, log blocks %d inode blocks %d, bitmap blocks %d) blocks %d total %d\n",
nmeta, nlog, ninodeblocks, nbitmap, nblocks, FSSIZE);
freeblock = nmeta; // the first free block that we can allocate
rootino = ialloc(T_DIR);
assert(rootino == ROOTINO);
- bzero(&de, sizeof(de));
+ memset(&de, 0, sizeof(de));
de.inum = xshort(rootino);
strcpy(de.name, ".");
iappend(rootino, &de, sizeof(de));
- bzero(&de, sizeof(de));
+ memset(&de, 0, sizeof(de));
de.inum = xshort(rootino);
strcpy(de.name, "..");
iappend(rootino, &de, sizeof(de));
perror(argv[i]);
exit(1);
}
-
+
// Skip leading _ in name when writing to file system.
// The binaries are named _rm, _cat, etc. to keep the
// build operating system from trying to execute them
inum = ialloc(T_FILE);
- bzero(&de, sizeof(de));
+ memset(&de, 0, sizeof(de));
de.inum = xshort(inum);
strncpy(de.name, argv[i], DIRSIZ);
iappend(rootino, &de, sizeof(de));
uint inum = freeinode++;
struct dinode din;
- bzero(&din, sizeof(din));
+ memset(&din, 0, sizeof(din));
din.type = xshort(type);
din.nlink = xshort(1);
din.size = xint(0);
printf("balloc: first %d blocks have been allocated\n", used);
assert(used < BSIZE*8);
- bzero(buf, BSIZE);
+ memset(buf, 0, BSIZE);
for(i = 0; i < used; i++){
buf[i/8] = buf[i/8] | (0x1 << (i%8));
}
- printf("balloc: write bitmap block at sector %d\n", sb.bmapstart);
+ printf("balloc: write bitmap block at sector %u\n", sb.bmapstart);
wsect(sb.bmapstart, buf);
}