參考部落格:http://blog.chinaunix.net/uid-20548989-id-1667467.html
中斷處理函式,需要把一個值存在 void * 中傳給回撥函式,然後在回撥函式內部把 int 值從 void * 中取出。
把一個 int 存到 void * 變數需要先把它轉換成 long, 這樣能避免:warning: cast to pointer from integer of different size;
方法如下:
int irq; void *arg; arg = (void *)(long)irq;
同樣,從 void * 取出 int, 需要這樣:
int fd = (int) (long)arg;