Skip to content
Snippets Groups Projects
ifdtool.c 25.9 KiB
Newer Older
  • Learn to ignore specific revisions
  • 
    	if (mode_inject)
    		ret = inject_region(image, size, region_type, src_fname);
    
    	if (mode_write)
    		ret = write_data(image, size, addr, src_fname);
    
    	if (mode_spifreq)
    		set_spi_frequency(image, size, spifreq);
    
    	if (mode_em100)
    		set_em100_mode(image, size);
    
    	if (mode_locked)
    		lock_descriptor(image, size);
    
    	if (mode_unlocked)
    		unlock_descriptor(image, size);
    
    	if (write_it) {
    		if (outfile) {
    			ret = write_image(outfile, image, size);
    		} else {
    			if (lseek(bios_fd, 0, SEEK_SET)) {
    				perror("Error while seeking");
    				ret = -1;
    			}
    			if (write(bios_fd, image, size) != size) {
    				perror("Error while writing");
    				ret = -1;
    			}
    		}
    	}
    
    	free(image);
    	close(bios_fd);
    
    	return ret ? 1 : 0;
    }