 d78437245a
			
		
	
	
	d78437245a
	
	
	
		
			
			i2o_exec_exit and i2o_driver_exit were marked as __exit which is a bug because both are invoked from __init and __exit functions. Signed-off-by: Ralf Baechle <ralf@linux-mips.org> Cc: Markus Lidel <Markus.Lidel@shadowconnect.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
		
			
				
	
	
		
			69 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			69 lines
		
	
	
	
		
			1.8 KiB
			
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *	I2O core internal declarations
 | |
|  *
 | |
|  *	Copyright (C) 2005	Markus Lidel <Markus.Lidel@shadowconnect.com>
 | |
|  *
 | |
|  *	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.
 | |
|  *
 | |
|  *	Fixes/additions:
 | |
|  *		Markus Lidel <Markus.Lidel@shadowconnect.com>
 | |
|  *			initial version.
 | |
|  */
 | |
| 
 | |
| /* Exec-OSM */
 | |
| extern struct i2o_driver i2o_exec_driver;
 | |
| extern int i2o_exec_lct_get(struct i2o_controller *);
 | |
| 
 | |
| extern int __init i2o_exec_init(void);
 | |
| extern void i2o_exec_exit(void);
 | |
| 
 | |
| /* driver */
 | |
| extern struct bus_type i2o_bus_type;
 | |
| 
 | |
| extern int i2o_driver_dispatch(struct i2o_controller *, u32);
 | |
| 
 | |
| extern int __init i2o_driver_init(void);
 | |
| extern void i2o_driver_exit(void);
 | |
| 
 | |
| /* PCI */
 | |
| extern int __init i2o_pci_init(void);
 | |
| extern void __exit i2o_pci_exit(void);
 | |
| 
 | |
| /* device */
 | |
| extern struct device_attribute i2o_device_attrs[];
 | |
| 
 | |
| extern void i2o_device_remove(struct i2o_device *);
 | |
| extern int i2o_device_parse_lct(struct i2o_controller *);
 | |
| 
 | |
| int i2o_parm_issue(struct i2o_device *i2o_dev, int cmd, void *oplist,
 | |
| 		   int oplen, void *reslist, int reslen);
 | |
| 
 | |
| /* IOP */
 | |
| extern struct i2o_controller *i2o_iop_alloc(void);
 | |
| 
 | |
| /**
 | |
|  *	i2o_iop_free - Free the i2o_controller struct
 | |
|  *	@c: I2O controller to free
 | |
|  */
 | |
| static inline void i2o_iop_free(struct i2o_controller *c)
 | |
| {
 | |
| 	i2o_pool_free(&c->in_msg);
 | |
| 	kfree(c);
 | |
| }
 | |
| 
 | |
| extern int i2o_iop_add(struct i2o_controller *);
 | |
| extern void i2o_iop_remove(struct i2o_controller *);
 | |
| 
 | |
| /* control registers relative to c->base */
 | |
| #define I2O_IRQ_STATUS	0x30
 | |
| #define I2O_IRQ_MASK	0x34
 | |
| #define I2O_IN_PORT	0x40
 | |
| #define I2O_OUT_PORT	0x44
 | |
| 
 | |
| /* Motorola/Freescale specific register offset */
 | |
| #define I2O_MOTOROLA_PORT_OFFSET	0x10400
 | |
| 
 | |
| #define I2O_IRQ_OUTBOUND_POST	0x00000008
 |