LTRACEF("Trusty SM service func %u args 0x%x 0x%x 0x%x\n",
SMC_FUNCTION(args->smc_nr), args->params[0], args->params[1],
args->params[2]);
switch (args->smc_nr) { case SMC_SC_VIRTIO_GET_DESCR:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = virtio_get_description(args->client_id, ns_buf_id, ns_sz,
ns_mmu_flags); break;
case SMC_SC_VIRTIO_START:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = virtio_start(args->client_id, ns_buf_id, ns_sz, ns_mmu_flags); break;
case SMC_SC_VIRTIO_STOP:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = virtio_stop(args->client_id, ns_buf_id, ns_sz, ns_mmu_flags, true); break;
case SMC_SC_VDEV_RESET:
res = virtio_device_reset(args->client_id, args->params[0]); break;
case SMC_SC_VDEV_KICK_VQ:
res = virtio_kick_vq(args->client_id, args->params[0], args->params[1]); break;
case SMC_SC_CREATE_QL_TIPC_DEV:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = ql_tipc_create_device(args->client_id, ns_buf_id, ns_sz,
ns_mmu_flags); break;
case SMC_SC_SHUTDOWN_QL_TIPC_DEV:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = ql_tipc_shutdown_device(args->client_id, ns_buf_id); break;
case SMC_SC_HANDLE_QL_TIPC_DEV_CMD:
res = get_ns_mem_buf(args, &ns_buf_id, &ns_sz); if (res == NO_ERROR)
res = ql_tipc_handle_cmd(args->client_id, ns_buf_id, ns_sz, false); break;
default:
LTRACEF("unknown func 0x%x\n", SMC_FUNCTION(args->smc_nr));
res = ERR_NOT_SUPPORTED; break;
}
return to_smc_error(res);
}
/* *HandleparameterizedNOPTrustedOSSMCcallfunction
*/ staticlong trusty_sm_nopcall(struct smc32_args* args) { long res;
LTRACEF("Trusty SM service func %u args 0x%x 0x%x 0x%x\n",
SMC_FUNCTION(args->smc_nr), args->params[0], args->params[1],
args->params[2]);
switch (args->params[0]) { case SMC_NC_VDEV_KICK_VQ:
res = virtio_kick_vq(args->client_id, args->params[1], args->params[2]); break;
default:
LTRACEF("unknown func 0x%x\n", SMC_FUNCTION(args->smc_nr));
res = ERR_NOT_SUPPORTED; break;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.