func: static void ide_atapi_cmd_read_dma_cb(void *opaque, int ret) BMDMAState * bm = opaque ; IDEState * s = bm -> ide_if ; if ( ! s -> bs )  if ( ret < 0 )  if ( s -> io_buffer_size > 0 )  if ( s -> lba != - 1 )  if ( s -> cd_sector_size == 2352 )  cd_data_to_raw ( s -> io_buffer , s -> lba ); static void cd_data_to_raw(uint8_t *buf, int lba) buf [ 0 ] = 0x00; memset ( buf + 1 , 0xff , 10 ); buf [ 11 ] = 0x00; buf += 12; buf [ 3 ] = 0x01; buf += 4; buf += 2048; memset ( buf , 0 , 288 ); 