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

Function do_process_packet_command

src/ide.cpp:946–969  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

944}
945
946static void do_process_packet_command (struct ide_hdf *ide)
947{
948 if (ide->packet_state == 1) {
949 do_packet_command (ide);
950 } else {
951 ide->packet_data_offset += ide->packet_transfer_size;
952 if (!ide->direction) {
953 // data still remaining, next transfer
954 if (atapi_set_size (ide))
955 ide->intdrq = true;
956 } else {
957 if (atapi_set_size (ide)) {
958 ide->intdrq = true;
959 } else {
960 if (IDE_LOG > 1)
961 write_log(_T("IDE%d ATAPI write finished, %d bytes\n"), ide->num, ide->packet_data_size);
962 memcpy (ide->scsi->buffer, ide->secbuf, ide->packet_data_size);
963 ide->scsi->data_len = ide->packet_data_size;
964 scsi_emulate_cmd (ide->scsi);
965 }
966 }
967 }
968 ide_fast_interrupt (ide);
969}
970
971static const TCHAR *getidemode(struct ide_hdf *ide)
972{

Callers 1

ide_threadFunction · 0.85

Calls 5

do_packet_commandFunction · 0.85
atapi_set_sizeFunction · 0.85
scsi_emulate_cmdFunction · 0.85
ide_fast_interruptFunction · 0.85
write_logFunction · 0.70

Tested by

no test coverage detected