コード例 #1
0
ファイル: newFs.c プロジェクト: joseignaciosg/SO--TP3-2011
/* Main */
void 
main(){

	/* Init Disco Virtual */
	vDisk = (virtualDisk*)malloc(sizeof(virtualDisk));
	vDisk->disk = (void *)malloc(DISK_SIZE);

	/* Init Global Variables */	
	masterBootRecord * mbr = (masterBootRecord *)malloc(512);
	superblock = (masterBlock*)malloc(512);		
	bitmap = (BM*)calloc(BITMAP_SIZE,1);	
	inodemap = (IM*)calloc(INODEMAP_SIZE,1);
	
	
	
	/* Create & Init File System */
	mbr = (masterBootRecord *)read_disk(vDisk->disk,0,mbr,BLOCK_SIZE,0);

	if ( mbr->existFS == 0 ){
		init_filesystem("Chinux", mbr);
	}else{
		load_filesystem();
	}

	printf("mbr:%d\n",mbr->existFS);
	superblock = read_disk(vDisk->disk,1,superblock,BLOCK_SIZE,0);
	printf("name:%s\nblock:%d\nfreeBlocks:%d\nusedBlocks:%d\n",superblock->name, superblock->blockSize, superblock->freeBlocks, superblock->usedBlocks);
	printf("InodeSize:%d\n",sizeof(iNode));
	printf("Directory:%d\n",sizeof(directoryEntry));//16 Directorios o archivos en bloques directos..

	iNode * nodo = fs_creat_inode(DIRECTORY,777,512,superblock->root);
	fs_insert_inode(nodo);
	iNode * nodo3 = fs_creat_inode(DIRECTORY,737,512,superblock->root);
	fs_insert_inode(nodo3);

	//nodo->iNode_number = 20;
	printf("\n\nTABLA DATOS\n");
	printf("inode-number:%d\n",nodo->iNode_number);		
	printf("mode:%d\n",nodo->mode);
	printf("size:%d\n",nodo->size);
	printf("iden:%d\n",nodo->identifier);

	
	iNode * nodo2 = fs_get_inode(nodo->iNode_number);
	printf("inode-number:%d\n",nodo->iNode_number);		
	printf("mode:%d\n",nodo2->mode);
	printf("size:%d\n",nodo2->size);
	printf("iden:%d\n",nodo2->identifier);

	insert_directory("Hola",superblock->root);
	//ls("asd");
	makeDir("comostas");
	print_directories(superblock->root);
	makeDir("Hola/Comocomo");
	cd("Hola");
	print_directories(current);

	
}
コード例 #2
0
ファイル: newFs.c プロジェクト: joseignaciosg/SO--TP3-2011
//DONE!
void ls(char * path){
	
	int i;
	iNode * posible_inode = current;
	posible_inode = parser_path(path, posible_inode);

	if ( posible_inode == NULL )
	{
		printf("Wrong name or path\n");
	} 
	else 
	{
		print_directories(posible_inode);
	}
	return;
	
}
コード例 #3
0
ファイル: readpe.c プロジェクト: daniloegea/pev-cmake
int main(int argc, char *argv[])
{
	PE_FILE pe;
	FILE *fp = NULL;
	
	if (argc < 2)
	{
		usage();
		exit(1);
	}

	parse_options(argc, argv); // opcoes

	if ((fp = fopen(argv[argc-1], "rb")) == NULL)
		EXIT_ERROR("file not found or unreadable");

	pe_init(&pe, fp); // inicializa o struct pe

	if (!is_pe(&pe))
		EXIT_ERROR("not a valid PE file");

	// dos header
	if (config.dos || config.all_headers || config.all)
	{
		IMAGE_DOS_HEADER dos;

		if (pe_get_dos(&pe, &dos))
			print_dos_header(&dos);
		else { EXIT_ERROR("unable to read DOS header"); }
	}

	// coff/file header
	if (config.coff || config.all_headers || config.all)
	{
		IMAGE_COFF_HEADER coff;

		if (pe_get_coff(&pe, &coff))
			print_coff_header(&coff);
		else { EXIT_ERROR("unable to read COFF file header"); }
	}

	// optional header
	if (config.opt || config.all_headers || config.all)
	{
		if (pe_get_optional(&pe))
			print_optional_header(&pe);
		else { EXIT_ERROR("unable to read Optional (Image) file header"); }
	}

	// directories
	if (config.dirs || config.all)
	{
		if (pe_get_directories(&pe))
			print_directories(&pe);
		else { EXIT_ERROR("unable to read the Directories entry from Optional header"); }
	}
	
	// imports
	if (config.imports || config.all)
	{
		if (pe_get_directories(&pe))
			print_imports(&pe);
		else { EXIT_ERROR("unable to read the Directories entry from Optional header"); }
	}	

	// exports
	if (config.exports || config.all)
	{
		if (pe_get_directories(&pe))
			print_exports(&pe);
		else
			{ EXIT_ERROR("unable to read directories from optional header"); }
	}

	// sections
	if (config.all_sections || config.all)
	{
		if (pe_get_sections(&pe))
			print_sections(&pe);
		else { EXIT_ERROR("unable to read sections"); }
	}

	// free
	pe_deinit(&pe);
	return 0;
}
コード例 #4
0
ファイル: newFs2.c プロジェクト: joseignaciosg/SO--TP3-2011
void ls_in_kernel(char * path) {

	printf("\n");
	print_directories(current);

}