/* * Build register for IDU contains not an actual number of supported common * interrupts but an exponent of 2 which must be multiplied by 4 to * get a number of supported common interrupts.
*/ #define mcip_idu_bcr_to_nr_irqs(bcr) (4 * (1 << (bcr).cirqnum))
/* * MCIP programming model * * - Simple commands write {cmd:8,param:16} to MCIP_CMD aux reg * (param could be irq, common_irq, core_id ...) * - More involved commands setup MCIP_WDATA with cmd specific data * before invoking the simple command
*/ staticinlinevoid __mcip_cmd(unsignedint cmd, unsignedint param)
{ struct mcip_cmd buf;
buf.pad = 0;
buf.cmd = cmd;
buf.param = param;
WRITE_AUX(ARC_REG_MCIP_CMD, buf);
}
/* * Setup additional data for a cmd * Callers need to lock to ensure atomicity
*/ staticinlinevoid __mcip_cmd_data(unsignedint cmd, unsignedint param, unsignedint data)
{
write_aux_reg(ARC_REG_MCIP_WDATA, data);
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.