Exemple #1
0
void show_disk(struct s_hardware *hardware, ZZJSON_CONFIG *conf, ZZJSON **it, int drive) {
	config=conf;
	item=it;
	int i = drive - 0x80;
	struct driveinfo *d = &hardware->disk_info[i];
	char mbr_name[50]={0};
	char disk_size[11]={0};

	get_mbr_string(hardware->mbr_ids[i], &mbr_name,sizeof(mbr_name));
	if ((int)d->edd_params.sectors > 0)
		sectors_to_size((int)d->edd_params.sectors, disk_size);

	char disk[5]={0};
	char edd_version[5]={0};
	snprintf(disk,sizeof(disk),"0x%X",d->disk);
	snprintf(edd_version,sizeof(edd_version),"%X",d->edd_version);
	zzjson_print(config, *item);
	zzjson_free(config, *item);

	CREATE_ARRAY
		add_as("disk->number",disk) 
		add_ai("disk->cylinders",d->legacy_max_cylinder +1) 
		add_ai("disk->heads",d->legacy_max_head +1)
		add_ai("disk->sectors_per_track",d->legacy_sectors_per_track)
		add_as("disk->edd_version",edd_version)
		add_as("disk->size",disk_size)
		add_ai("disk->bytes_per_sector",(int)d->edd_params.bytes_per_sector)
		add_ai("disk->sectors_per_track",(int)d->edd_params.sectors_per_track)
		add_as("disk->host_bus",remove_spaces((char *)d->edd_params.host_bus_type))
		add_as("disk->interface_type",remove_spaces((char *)d->edd_params.interface_type))
		add_as("disk->mbr_name",mbr_name)
		add_ai("disk->mbr_id",hardware->mbr_ids[i])
	END_OF_ARRAY;

	if (parse_partition_table(d, &show_partition_information)) {
	        if (errno_disk) { 
			APPEND_ARRAY
				add_as("disk->error", "IO Error")
			END_OF_APPEND;
		} else  {
			APPEND_ARRAY
				add_as("disk->error", "Unrecognized Partition Layout")
			END_OF_APPEND;
		}
	}
}
Exemple #2
0
void flush (ZZJSON_CONFIG *config, ZZJSON ** item) { 
   zzjson_print(config, *item);
   zzjson_free(config, *item);
   *item=NULL;
}