module.h) calls
block_init(bdrv_qcow2_init) in block/qcow2.c
block_init(bdrv_raw_init) in block/raw-posix.c
>> do_qemu_init_ ## function
>>module.h call three function
#define block_init(function) module_init(function, MODULE_INIT_BLOCK)
#define device_init(function) module_init(function, MODULE_INIT_DEVICE)
#define machine_init(function) module_init(function, MODULE_INIT_MACHINE)
2. Study and describe data structures related to
bdrv_open()
>> ฟังก์ชั่น bdrv_open(parameter) เรียกใช้ parameter 3 ตัว ได้แก่
BlockDriverState *bs, const char *filename, int flags, BlockDriver *drv
>> ฟังก์ชั่น bdrv_close(parameter) เรียกใช้ parameter 1 ตัว
BlockDriverState *bs Detail of Data Structure:: Show Struct and Pointer In Code :: block_int.h
Also, draw links between these data structures
3. Find out 'WHEN” and “WHERE” the bdrv_open() function is called
4. Draw the function call graph for the bdrv_open() function
>> bdrv_open() -->> bdrv_open2() -->>qcow_open()
-----pending ----Now has error in some files
5. Describe what happen to the data structure in 2) when the bdrv_open()
function is called to open an overlay hard disk image
-----pending ----Now has error in some files
References:
1. http://sourcenav.sourceforge.net/
ไม่มีความคิดเห็น:
แสดงความคิดเห็น