User manual
55
(const struct __chapi_in * ci,
unsigned long delay,
__chapi_sst_handler_p fun, void * arg1, int arg2);
//-----------------------------------------------------------------------------
// IRQ/BRQ relative stuff.
//
typedef int (CHAPI * __chapi_irq_handler_p)
(void * arg1, int arg2);
#if !defined(irq_handler)
#define irq_handler __chapi_irq_handler_p
#endif // !defined(irq_handler)
//
// Obsolete way to handle IRQ - left only to support old applications.
// This interface uses internal IRQ queues which makes differencies with the
// actual way of interrupts processing in hardware. Use new interface defined
// below.
//
typedef int (CHAPI * __chapi_put_irq_procedure_p)
(const struct __chapi_in * ci,
unsigned int vec, unsigned long delay,
__chapi_irq_handler_p fun, void * arg1, int arg2);
typedef void (CHAPI * __chapi_clear_irq_procedure_p)
(const struct __chapi_in * ci,
unsigned int vec);
//
// New way to handle IRQ - no queues.
// This way should be used for newly developed applications in a couple with
// chapi_brq_t class defined in chapi_lib.h header which wrappes interface
// conveniently.
//
typedef unsigned int brq_handle_t;
typedef __chapi_irq_handler_p __chapi_brq_acknowledge_p;
#if !defined(brq_acknowledge)
#define brq_acknowledge __chapi_brq_acknowledge_p
#endif // !defined(brq_acknowledge)
typedef int (CHAPI * __chapi_sa_handler_p)
(void * arg1, int arg2, int c_no);
typedef brq_handle_t (CHAPI * __chapi_connect_bus_request_p)
(const struct __chapi_in * ci, int vector, int ipl,
__chapi_brq_acknowledge_p brq_ack, void *arg1, int arg2);
typedef void (CHAPI * __chapi_set_bus_request_p)
(const struct __chapi_in * ci, brq_handle_t brq_handle);
typedef void (CHAPI * __chapi_clear_bus_request_p)
(const struct __chapi_in * ci, brq_handle_t brq_handle);
typedef void (CHAPI * __chapi_enable_bus_request_p)
(const struct __chapi_in * ci, brq_handle_t brq_handle, bool enable);
typedef void (CHAPI * __chapi_set_bus_request_affinity_p)
(const struct __chapi_in * ci, brq_handle_t brq_handle, unsigned int mask);
typedef void (CHAPI * __chapi_set_affinity_callback_p)
(const struct __chapi_in * ci, brq_handle_t brq_handle,
__chapi_sa_handler_p sa_callback,
void *arg1, int arg2);
typedef unsigned int (CHAPI * __chapi_get_bus_server_mask_p)










