QNX sigevent Struktur



  • Hi ich weiss das is ne QNX pezifische Sache. Hoffe das ich trotzdem hier richtig bin. Es geht um bsp:
    einen Interrupt zu werfen die nur das nötigste macht und dann einen Thread anstösst.
    Bsp.:

    #include <sys/siginfo.h>
    ...
    struct sigevent event;
    ...
    int_hd=InterruptAttach(irq_id,isr,&event,sizeof(event),0);
    ...
    // enable INT
    ...
    while (condition){
    // wait for interrupt-event
    InterruptWait( 0, NULL ); // parameter sind fix
    // do the service
    ...
    }//while
    ...
    // disable INT
    ...
    // deinstall ISR
    rc=InterruptDetach( int_hd );
    

    ISR:

    const struct sigevent *isr (void *arg_p1o, int int_hd){
    struct sigevent *event_p1o = (struct sigevent *)(arg_p1o);
    // check and clear interrupt source
    ...
    ...
    // signal Thread to do service
    SIGEV_INTR_INIT( event_p1o ); //
    return(event_p1o);
    }//isr
    

    Ich komme mit diesem SIGEV_INTR_INIT nicht zurecht. In der ISR sag ich ihm ja dann Springe zu event_p1o.

    Ist das dann so das er dann dahin springt wo ich das letzte mal bsp: SIGEV_INTR_INIT(&event); aufgerufen habe oder wie teile ich dem Event dann genau mit was er machen soll?
    Danke und Gruss



  • Moin.

    Welche QNX-Version nutzt du?

    Gruß, Sven

    Nachtrag: Gehört dies nicht eher in den Bereich "Rund um die Programmierung"?
    Denn zum ANSI-Standard gehört die Frage eigentlich nicht. ^^


Anmelden zum Antworten