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"