Lines Matching defs:command
346 CommandEntry command;
348 // Reading the command from CMDQ
349 readCommand(yield, command);
351 processCommand(yield, command);
360 ItsCommand::readCommand(Yield &yield, CommandEntry &command)
362 // read the command pointed by GITS_CREADR
366 doRead(yield, cmd_addr, &command, sizeof(command));
369 commandName(command.type), cmd_addr);
371 command.raw[0], command.raw[1], command.raw[2], command.raw[3]);
375 ItsCommand::processCommand(Yield &yield, CommandEntry &command)
377 const auto entry = cmdDispatcher.find(command.type);
380 // Execute the command
381 entry->second.exec(this, yield, command);
383 panic("Unrecognized command type: %u", command.type);
388 ItsCommand::clear(Yield &yield, CommandEntry &command)
390 if (deviceOutOfRange(command)) {
395 DTE dte = readDeviceTable(yield, command.deviceId);
397 if (!dte.valid || idOutOfRange(command, dte)) {
403 yield, dte.ittAddress, command.eventId);
423 ItsCommand::discard(Yield &yield, CommandEntry &command)
425 if (deviceOutOfRange(command)) {
430 DTE dte = readDeviceTable(yield, command.deviceId);
432 if (!dte.valid || idOutOfRange(command, dte)) {
438 yield, dte.ittAddress, command.eventId);
458 yield, dte.ittAddress, command.eventId, itte);
462 ItsCommand::doInt(Yield &yield, CommandEntry &command)
464 if (deviceOutOfRange(command)) {
469 DTE dte = readDeviceTable(yield, command.deviceId);
471 if (!dte.valid || idOutOfRange(command, dte)) {
477 yield, dte.ittAddress, command.eventId);
497 ItsCommand::inv(Yield &yield, CommandEntry &command)
499 if (deviceOutOfRange(command)) {
504 DTE dte = readDeviceTable(yield, command.deviceId);
506 if (!dte.valid || idOutOfRange(command, dte)) {
512 yield, dte.ittAddress, command.eventId);
531 ItsCommand::invall(Yield &yield, CommandEntry &command)
533 if (collectionOutOfRange(command)) {
538 const auto icid = bits(command.raw[2], 15, 0);
551 ItsCommand::mapc(Yield &yield, CommandEntry &command)
553 if (collectionOutOfRange(command)) {
559 cte.valid = bits(command.raw[2], 63);
560 cte.rdBase = bits(command.raw[2], 50, 16);
562 const auto icid = bits(command.raw[2], 15, 0);
568 ItsCommand::mapd(Yield &yield, CommandEntry &command)
570 if (deviceOutOfRange(command) || sizeOutOfRange(command)) {
576 dte.valid = bits(command.raw[2], 63);
577 dte.ittAddress = mbits(command.raw[2], 51, 8);
578 dte.ittRange = bits(command.raw[1], 4, 0);
580 writeDeviceTable(yield, command.deviceId, dte);
584 ItsCommand::mapi(Yield &yield, CommandEntry &command)
586 if (deviceOutOfRange(command)) {
591 if (collectionOutOfRange(command)) {
596 DTE dte = readDeviceTable(yield, command.deviceId);
598 if (!dte.valid || idOutOfRange(command, dte) ||
599 its.lpiOutOfRange(command.eventId)) {
606 yield, dte.ittAddress, command.eventId);
610 itte.intNum = command.eventId;
611 itte.icid = bits(command.raw[2], 15, 0);
614 yield, dte.ittAddress, command.eventId, itte);
618 ItsCommand::mapti(Yield &yield, CommandEntry &command)
620 if (deviceOutOfRange(command)) {
625 if (collectionOutOfRange(command)) {
630 DTE dte = readDeviceTable(yield, command.deviceId);
632 const auto pintid = bits(command.raw[1], 63, 32);
634 if (!dte.valid || idOutOfRange(command, dte) ||
642 yield, dte.ittAddress, command.eventId);
647 itte.icid = bits(command.raw[2], 15, 0);
650 yield, dte.ittAddress, command.eventId, itte);
654 ItsCommand::movall(Yield &yield, CommandEntry &command)
656 const uint64_t rd1 = bits(command.raw[2], 50, 16);
657 const uint64_t rd2 = bits(command.raw[3], 50, 16);
668 ItsCommand::movi(Yield &yield, CommandEntry &command)
670 if (deviceOutOfRange(command)) {
675 if (collectionOutOfRange(command)) {
680 DTE dte = readDeviceTable(yield, command.deviceId);
682 if (!dte.valid || idOutOfRange(command, dte)) {
688 yield, dte.ittAddress, command.eventId);
703 const auto collection_id2 = bits(command.raw[2], 15, 0);
725 yield, dte.ittAddress, command.eventId, itte);
729 ItsCommand::sync(Yield &yield, CommandEntry &command)
731 warn("ITS %s command unimplemented", __func__);
735 ItsCommand::vinvall(Yield &yield, CommandEntry &command)
737 panic("ITS %s command unimplemented", __func__);
741 ItsCommand::vmapi(Yield &yield, CommandEntry &command)
743 panic("ITS %s command unimplemented", __func__);
747 ItsCommand::vmapp(Yield &yield, CommandEntry &command)
749 panic("ITS %s command unimplemented", __func__);
753 ItsCommand::vmapti(Yield &yield, CommandEntry &command)
755 panic("ITS %s command unimplemented", __func__);
759 ItsCommand::vmovi(Yield &yield, CommandEntry &command)
761 panic("ITS %s command unimplemented", __func__);
765 ItsCommand::vmovp(Yield &yield, CommandEntry &command)
767 panic("ITS %s command unimplemented", __func__);
771 ItsCommand::vsync(Yield &yield, CommandEntry &command)
773 panic("ITS %s command unimplemented", __func__);
1086 // allowed one, the command queue should stop processing commands
1093 // writer and reader pointing to different command
1095 DPRINTF(ITS, "Reading command from queue\n");
1102 DPRINTF(ITS, "Waiting for pending command to finish\n");