1 /* SPDX-License-Identifier: GPL-2.0 */ 2 3 /*************************************************************************** 4 * copyright : (C) 2002,2003 by Frank Mori Hess 5 ***************************************************************************/ 6 7 #ifndef _GPIB_P_H 8 #define _GPIB_P_H 9 10 #include <linux/types.h> 11 12 #include "gpib_types.h" 13 #include "gpib_proto.h" 14 #include "gpib_user.h" 15 #include "gpib_ioctl.h" 16 17 #include <linux/fs.h> 18 #include <linux/interrupt.h> 19 #include <linux/io.h> 20 21 int gpib_register_driver(gpib_interface_t *interface, struct module *mod); 22 void gpib_unregister_driver(gpib_interface_t *interface); 23 struct pci_dev *gpib_pci_get_device(const gpib_board_config_t *config, unsigned int vendor_id, 24 unsigned int device_id, struct pci_dev *from); 25 struct pci_dev *gpib_pci_get_subsys(const gpib_board_config_t *config, unsigned int vendor_id, 26 unsigned int device_id, unsigned int ss_vendor, 27 unsigned int ss_device, struct pci_dev *from); 28 unsigned int num_gpib_events(const gpib_event_queue_t *queue); 29 int push_gpib_event(gpib_board_t *board, short event_type); 30 int pop_gpib_event(gpib_board_t *board, gpib_event_queue_t *queue, short *event_type); 31 int gpib_request_pseudo_irq(gpib_board_t *board, irqreturn_t (*handler)(int, void *)); 32 void gpib_free_pseudo_irq(gpib_board_t *board); 33 int gpib_match_device_path(struct device *dev, const char *device_path_in); 34 35 extern gpib_board_t board_array[GPIB_MAX_NUM_BOARDS]; 36 37 extern struct list_head registered_drivers; 38 39 #endif // _GPIB_P_H 40 41