This interface is implemented by bus devices that are used to send interrupts between SPARC processors, and between devices and processors.
typedef int (*set_bus_id_t)(conf_object_t *obj, conf_object_t *src, int id);
typedef void (*interrupt_by_id_t)(conf_object_t *obj,
conf_object_t *src,
int src_id,
int dst_id,
interrupt_ack_t interrupt_ack,
uint64 *data,
lang_void *usr,
int dummy0,
int dummy1);
typedef conf_object_t *(*get_object_by_id_t)(conf_object_t *obj, int id);
typedef void (*reset_all_t)(conf_object_t *obj, int reset_type);
typedef struct sparc_irq_bus_interface {
set_bus_id_t set_bus_id;
interrupt_by_id_t interrupt_by_id;
get_object_by_id_t get_object_by_id;
reset_all_t reset_all;
} sparc_irq_bus_interface_t;
#define SPARC_IRQ_BUS_INTERFACE "sparc-irq-bus"