| /*****************************************************************************/ |
| |
| /* |
| * devtree.h -- USB device tree. |
| * |
| * Copyright (C) 1999 Thomas Sailer, sailer@ife.ee.ethz.ch |
| * |
| * This program is free software; you can redistribute it and/or modify |
| * it under the terms of the GNU General Public License as published by |
| * the Free Software Foundation; either version 2 of the License, or |
| * (at your option) any later version. |
| * |
| * This program is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| * GNU General Public License for more details. |
| * |
| * You should have received a copy of the GNU General Public License |
| * along with this program; if not, write to the Free Software |
| * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. |
| * |
| * Please note that the GPL allows you to use the driver, NOT the radio. |
| * In order to use the radio, you need a license from the communications |
| * authority of your country. |
| * |
| */ |
| |
| /*****************************************************************************/ |
| |
| #ifndef _DEVTREE_H |
| #define _DEVTREE_H |
| |
| /* ---------------------------------------------------------------------- */ |
| |
| #ifdef HAVE_CONFIG_H |
| #include "config.h" |
| #endif |
| |
| #include "list.h" |
| |
| /* ---------------------------------------------------------------------- */ |
| |
| #define USBFLG_DELETED 1 |
| #define USBFLG_NEW 2 |
| |
| /* ---------------------------------------------------------------------- */ |
| |
| struct usbbusnode { |
| struct list_head list; |
| struct list_head childlist; |
| unsigned int flags; |
| |
| unsigned int busnum; |
| }; |
| |
| struct usbdevnode { |
| struct list_head list; |
| struct list_head childlist; |
| unsigned int flags; |
| |
| struct usbbusnode *bus; |
| struct usbdevnode *parent; |
| |
| unsigned int devnum; |
| unsigned int vendorid; |
| unsigned int productid; |
| }; |
| |
| extern struct list_head usbbuslist; |
| |
| /* ---------------------------------------------------------------------- */ |
| |
| extern void devtree_markdeleted(void); |
| extern struct usbbusnode *devtree_findbus(unsigned int busn); |
| extern struct usbdevnode *devtree_finddevice(struct usbbusnode *bus, unsigned int devn); |
| extern void devtree_parsedevfile(int fd); |
| extern void devtree_busconnect(struct usbbusnode *bus); |
| extern void devtree_busdisconnect(struct usbbusnode *bus); |
| extern void devtree_devconnect(struct usbdevnode *dev); |
| extern void devtree_devdisconnect(struct usbdevnode *dev); |
| extern void devtree_processchanges(void); |
| extern void devtree_dump(void); |
| |
| extern int lprintf(unsigned int vl, const char *format, ...) __attribute__ ((format (printf, 2, 3))); |
| |
| /* ---------------------------------------------------------------------- */ |
| #endif /* _DEVTREE_H */ |