#include "interrupt.h" struct List > intConnecteds[256]; template struct InterruptHandlers { static void onInterrupt() { IntConnected *cur, *next; cur=intConnecteds[level].head->next; while(next=cur->next) { //(cur->*onInterrupt)(); //(cur->object)->*(cur->methode)(); cur->call(); cur=next; } } static void enable() { static U32 h; //onInterrupt(); h=(U32)&InterruptHandlers::onInterrupt; } }; struct Rtc: public IntConnected { void onInterrupt(); }; void Rtc::onInterrupt() { } Rtc rtc; InterruptHandlers<8> it8; int attach() { it8.enable(); rtc.methode=&Rtc::onInterrupt; /* rtc.object=&rtc; */ intConnecteds[8].add((IntConnected *)&rtc); }