/// read super block and write to image head extern void initial_image_hdr(char* device, image_head* image_hdr) { int fs_type = 0; fs_type = test_extfs_type(device); log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs version is %i\n", __FILE__, fs_type); strncpy(image_hdr->magic, IMAGE_MAGIC, IMAGE_MAGIC_SIZE); strncpy(image_hdr->fs, extfs_MAGIC, FS_MAGIC_SIZE); fs_open(device); image_hdr->block_size = (int)block_size(); image_hdr->totalblock = (unsigned long long)block_count(); image_hdr->usedblocks = (unsigned long long)get_used_blocks(); image_hdr->device_size = (unsigned long long)(image_hdr->block_size * image_hdr->totalblock); fs_close(); }
void read_super_blocks(char* device, file_system_info* fs_info) { int fs_type = 0; fs_type = test_extfs_type(device); log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs version is %i\n", __FILE__, fs_type); strncpy(fs_info->fs, extfs_MAGIC, FS_MAGIC_SIZE); fs_open(device); fs_info->block_size = block_size(); fs_info->totalblock = block_count(); fs_info->usedblocks = get_used_blocks(); fs_info->device_size = fs_info->block_size * fs_info->totalblock; log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs block_size %i\n", __FILE__, fs_info->block_size); log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs total block %lli\n", __FILE__, fs_info->totalblock); log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs used blocks %lli\n", __FILE__, fs_info->usedblocks); log_mesg(1, 0, 0, fs_opt.debug, "%s: extfs device size %lli\n", __FILE__, fs_info->device_size); fs_close(); }
/** * Prints memory info */ void print_meminfo() { printk("Total mem: %d MB\nFree mem: %d MB\n", get_mem_size() / 1024, (get_max_blocks() - get_used_blocks()) * 4 / 1024); printk("Heap size: %d KB Free heap: %d KB\n", get_heap_size() / 1024, (get_heap_size() - get_used_heap()) / 1024); printk("cr0: %x cr2: %x cr3: %x\n", get_cr0(), get_cr2(), get_pdbr()); }
uint64_t get_total_usable_blocks(){ return (get_total_blocks() - get_used_blocks()); }
void mmgr_print_memory_status(){ printf("\nTotal usable memory = %d\n",get_total_usable_memory()); printf("Total number of blocks = %d\n",get_total_blocks()); printf("Total number of used blocks = %d\n",get_used_blocks()); printf("Total number of usable blocks = %d\n\n",get_total_usable_blocks()); }