Ejemplo n.º 1
0
void init_super(unsigned int vol){
	super.super_magic=SUPER_MAGIC;
	super.super_root_inumber=0;
	super.super_first_free=1;
	write_bloc_n(vol, SUPER, &super, sizeof(struct super_s));
	fb.fb_nbbloc=mbr.mbr_vols[vol].vol_nsector
	fb.fb_next=0;
	write_bloc_n(vol, 1, &fb, sizeof(struct free_bloc_s));
}
Ejemplo n.º 2
0
// Superbloc
void init_super(uint vol, char *nom) {
    // read_bloc_n(vol, 0, (uchar *) &superbloc, sizeof(struct superbloc_s));
    load_super(vol);
    if(superbloc.magic == MAGIC_SUPERBLOC){
        printf("Wait, superbloc already initialized :)\n");
        exit(EXIT_FAILURE);
    }
    
    else {
        superbloc.magic = MAGIC_SUPERBLOC;
        strcpy(superbloc.nom, nom);
        superbloc.first_free_bloc = 1;
        superbloc.root = 0;
        superbloc.nb_free = mbr.vol[vol].nb_bloc-1;
        int i = 0;
        for(i = 1; i<mbr.vol[vol].nb_bloc; i++) {
            struct free_bloc_s fb;
            if(i == mbr.vol[vol].nb_bloc-1)
                fb.next_free_bloc = 0;
            else fb.next_free_bloc = i+1;
                
            write_bloc_n(vol, i, (uchar *) &fb, sizeof(struct free_bloc_s));
        }
        save_super();
    }
}
Ejemplo n.º 3
0
void save_super() {
    write_bloc_n(current_vol, 0, (uchar *) &superbloc, sizeof(struct superbloc_s));
}