1 1.4 nisimura /* $NetBSD: ibusvar.h,v 1.4 1999/03/15 07:43:06 nisimura Exp $ */ 2 1.1 jonathan 3 1.1 jonathan #ifndef __IBUSVAR_H 4 1.1 jonathan #define __IBUSVAR_H 5 1.1 jonathan 6 1.1 jonathan /* 7 1.1 jonathan * function types for interrupt establish/diestablish 8 1.1 jonathan */ 9 1.1 jonathan struct ibus_attach_args; 10 1.2 mrg typedef int (ibus_intr_establish_t) __P((void * cookie, int level, 11 1.1 jonathan int (*handler) __P((intr_arg_t)), intr_arg_t arg)); 12 1.2 mrg typedef int (ibus_intr_disestablish_t) __P((struct ibus_attach_args *)); 13 1.1 jonathan 14 1.1 jonathan 15 1.1 jonathan /* 16 1.1 jonathan * Arguments used to attach a ibus "device" to its parent 17 1.1 jonathan */ 18 1.1 jonathan struct ibus_dev_attach_args { 19 1.1 jonathan const char *ibd_busname; /* XXX should be common */ 20 1.1 jonathan #ifdef notyet 21 1.1 jonathan bus_space_tag_t iba_memt; 22 1.1 jonathan #endif 23 1.1 jonathan ibus_intr_establish_t (*ibd_establish); 24 1.1 jonathan ibus_intr_disestablish_t (*ibd_disestablish); 25 1.1 jonathan int ibd_ndevs; 26 1.1 jonathan struct ibus_attach_args *ibd_devs; 27 1.1 jonathan }; 28 1.1 jonathan 29 1.1 jonathan /* 30 1.1 jonathan * Arguments used to attach devices to an ibus 31 1.1 jonathan */ 32 1.1 jonathan struct ibus_attach_args { 33 1.1 jonathan char *ia_name; /* Device name. */ 34 1.3 jonathan int ia_cookie; /* Device slot (table entry). */ 35 1.4 nisimura u_int32_t ia_addr; /* Device address. */ 36 1.1 jonathan }; 37 1.1 jonathan 38 1.1 jonathan 39 1.1 jonathan /* 40 1.1 jonathan * interrrupt estalish functions. 41 1.1 jonathan * These call up to system-specific code to 42 1.1 jonathan * recompute spl levels. 43 1.1 jonathan */ 44 1.1 jonathan void ibus_intr_establish __P((void * cookie, int level, 45 1.1 jonathan int (*handler) __P((intr_arg_t)), intr_arg_t arg)); 46 1.1 jonathan void ibus_intr_disestablish __P((struct ibus_attach_args *)); 47 1.4 nisimura int ibusprint __P((void *aux, const char *pnp)); 48 1.1 jonathan 49 1.1 jonathan #endif /* __IBUSVAR_H */ 50