xref: /linux/drivers/staging/gpib/include/gpibP.h (revision 2c1ed907520c50326b8f604907a8478b27881a2e)
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