TEMU  3.0
The Terma Emulator
IrqController.h
Go to the documentation of this file.
1 //===------------------------------------------------------------*- C++ -*-===//
2 //
3 // TEMU: The Terma Emulator
4 // (c) Terma 2015
5 // Authors: Mattias Holm <maho (at) terma.com>
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef TEMU_IRQ_CONTROLLER_H
10 #define TEMU_IRQ_CONTROLLER_H
11 
12 #include "temu-c/Support/Objsys.h"
13 
14 #ifdef __cplusplus
15 extern "C" {
16 #endif
17 
23 
24 typedef struct temu_IrqControllerIface {
26  void (*raiseInterrupt)(void *Obj, uint8_t Irq);
28  void (*lowerInterrupt)(void *Obj, uint8_t Irq);
30 #define TEMU_IRQ_CTRL_IFACE_TYPE "IrqCtrlIface"
31 TEMU_IFACE_REFERENCE_TYPE(temu_IrqCtrl);
32 
43 
44 typedef struct temu_IrqClientIface {
46  void (*ackInterrupt)(void *Obj, uint8_t Irq);
50  void (*updateInterrupts)(void *Obj);
52 #define TEMU_IRQ_CLIENT_IFACE_TYPE "IrqClientIface"
53 TEMU_IFACE_REFERENCE_TYPE(temu_IrqClient);
54 
55 #ifdef __cplusplus
56 }
57 #endif
58 
59 #endif /* ! TEMU_IRQ_CONTROLLER_H */
TEMU_IFACE_REFERENCE_TYPE(temu_IrqCtrl)
struct temu_IrqClientIface temu_IrqClientIface
void(* updateInterrupts)(void *Obj)
Definition: IrqController.h:50
Definition: IrqController.h:24
Definition: IrqController.h:44
struct temu_IrqControllerIface temu_IrqCtrlIface
void(* raiseInterrupt)(void *Obj, uint8_t Irq)
Raise interrupt.
Definition: IrqController.h:26
void(* ackInterrupt)(void *Obj, uint8_t Irq)
Acknowledge interrupt (IRQ controller should clear interrupt)
Definition: IrqController.h:46
void(* lowerInterrupt)(void *Obj, uint8_t Irq)
Lower interrupt.
Definition: IrqController.h:28