Changeset d2e0a8cb in mainline for kernel/generic/src/ipc/irq.c


Ignore:
Timestamp:
2007-11-25T10:04:38Z (18 years ago)
Author:
Jakub Jermar <jakub@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
be815bc
Parents:
b3cd9eb
Message:

Support for 5 payload arguments for IPC irq notifications and the pseudo code.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/ipc/irq.c

    rb3cd9eb rd2e0a8cb  
    9090                        break;
    9191                case CMD_MEM_WRITE_2:
    92                         *((uint16_t *) code->cmds[i].addr) = code->cmds[i].value;
     92                        *((uint16_t *) code->cmds[i].addr) =
     93                            code->cmds[i].value;
    9394                        break;
    9495                case CMD_MEM_WRITE_4:
    95                         *((uint32_t *) code->cmds[i].addr) = code->cmds[i].value;
     96                        *((uint32_t *) code->cmds[i].addr) =
     97                            code->cmds[i].value;
    9698                        break;
    9799                case CMD_MEM_WRITE_8:
    98                         *((uint64_t *) code->cmds[i].addr) = code->cmds[i].value;
     100                        *((uint64_t *) code->cmds[i].addr) =
     101                            code->cmds[i].value;
    99102                        break;
    100103#if defined(ia32) || defined(amd64)
     
    119122                        break;
    120123                }
    121                 if (code->cmds[i].dstarg && code->cmds[i].dstarg < 4) {
     124                if (code->cmds[i].dstarg && code->cmds[i].dstarg <
     125                    IPC_CALL_LEN) {
    122126                        call->data.args[code->cmds[i].dstarg] = dstval;
    123127                }
     
    283287 * @param a2            Driver-specific payload argument.
    284288 * @param a3            Driver-specific payload argument.
    285  */
    286 void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3)
     289 * @param a4            Driver-specific payload argument.
     290 * @param a5            Driver-specific payload argument.
     291 */
     292void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3,
     293    unative_t a4, unative_t a5)
    287294{
    288295        call_t *call;
     
    301308                IPC_SET_ARG2(call->data, a2);
    302309                IPC_SET_ARG3(call->data, a3);
     310                IPC_SET_ARG4(call->data, a4);
     311                IPC_SET_ARG5(call->data, a5);
    303312                /* Put a counter to the message */
    304313                call->priv = ++irq->notif_cfg.counter;
Note: See TracChangeset for help on using the changeset viewer.