signal.h

00001 #ifndef _SIGNAL_H_
00002 #define _SIGNAL_H_
00003 
00004 #include <gnu_defs.h>
00005 #include <stdio.h>
00006 #include <realtime.h>
00007 
00008 typedef volatile struct event{
00009     u32 signalmask;//signals which can trigger the event
00010     ptask action;
00011     taskdata arg;
00012     volatile struct event *previous;
00013     volatile struct event *next;
00014 }event;
00015 
00016 static inline void fire(event *e){if(e!=NULL)e->action(e->arg);}    
00017 
00020 typedef struct eventlist{
00021 u32 signals;//active signal bitmap
00022 u32 signals_needed;//signals required by the list
00023 event *head;
00024 event *tail;
00025 int size;
00026 }eventlist;
00030 #define SCI0_DATA_RECEIVED  0x00000001
00031 #define SCI1_DATA_RECEIVED  0x00000002
00032 #define CAN0_DATA_RECEIVED  0x00000004
00033 #define CAN1_DATA_RECEIVED  0x00000008
00034 #define CAN2_DATA_RECEIVED  0x00000010
00035 #define CAN3_DATA_RECEIVED  0x00000020
00036 #define CAN4_DATA_RECEIVED  0x00000040
00037 
00038 #define SCI0_DATA_SENT      0x00001000
00039 #define SCI1_DATA_SENT      0x00002000
00040 #define CAN0_DATA_SENT      0x00004000
00041 #define CAN1_DATA_SENT      0x00008000
00042 #define CAN2_DATA_SENT      0x00010000
00043 #define CAN3_DATA_SENT      0x00020000
00044 #define CAN4_DATA_SENT      0x00040000
00045 
00046 
00047 
00048 event *__attribute__((far))register_event(event *e);
00049 void __attribute__((far))unregister_event(event *e);
00050 void __attribute__((far))throw(int signal);
00051 void __attribute__((far))fire_events(void);
00052 
00053 #endif //_EVENTS_H_

Generated on Fri Mar 3 17:25:45 2006 for EMAC-HCS12-SDK by  doxygen 1.4.6