MCPcopy Create free account
hub / github.com/BlitterStudio/amiberry / scsi_read_cd

Function scsi_read_cd

src/blkdev.cpp:1388–1407  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1386}
1387
1388static int scsi_read_cd(int unitnum, uae_u8 *cmd, uae_u8 *data, struct device_info *di)
1389{
1390 struct blkdevstate *st = &state[unitnum];
1391 int msf = cmd[0] == 0xb9;
1392 int start = msf ? msf2lsn (rl (cmd + 2) & 0x00ffffff) : rl (cmd + 2);
1393 int len = rl (cmd + 5) & 0x00ffffff;
1394 if (msf) {
1395 int end = msf2lsn (len);
1396 len = end - start;
1397 if (len < 0)
1398 return -1;
1399 }
1400 int subs = cmd[10] & 7;
1401 if (len == 0)
1402 return 0;
1403 int v = sys_command_cd_rawread (unitnum, data, start, len, 0, (cmd[1] >> 2) & 7, cmd[9], subs);
1404 if (v > 0)
1405 st->current_pos = start + len;
1406 return v;
1407}
1408
1409static int scsi_read_cd_data (int unitnum, uae_u8 *scsi_data, uae_u32 offset, uae_u32 len, struct device_info *di, int *scsi_len, struct cd_toc *t)
1410{

Callers 1

scsi_cd_emulateFunction · 0.85

Calls 3

msf2lsnFunction · 0.85
sys_command_cd_rawreadFunction · 0.85
rlFunction · 0.70

Tested by

no test coverage detected