/* SPDX-License-Identifier: GPL-2.0-only */ /* * pata_parport.h (c) 1997-8 Grant R. Guenther <grant@torque.net> * Under the terms of the GPL. * * This file defines the interface for parallel port IDE adapter chip drivers.
*/
struct pi_adapter { struct device dev; struct pi_protocol *proto; /* adapter protocol */ int port; /* base address of parallel port */ int mode; /* transfer mode in use */ int delay; /* adapter delay setting */ int unit; /* unit number for chained adapters */ int saved_r0; /* saved port state */ int saved_r2; /* saved port state */ unsignedlongprivate; /* for protocol module */ struct pardevice *pardev; /* pointer to pardevice */
};
/* registers are addressed as (cont,regr) * cont: 0 for command register file, 1 for control register(s) * regr: 0-7 for register number.
*/
/* macros and functions exported to the protocol modules */ #define delay_p (pi->delay ? udelay(pi->delay) : (void)0) #define out_p(offs, byte) do { outb(byte, pi->port + offs); delay_p; } while (0) #define in_p(offs) (delay_p, inb(pi->port + offs))
int max_mode; int epp_first; /* modes >= this use 8 ports */
int default_delay; int max_units; /* max chained units probed for */
void (*write_regr)(struct pi_adapter *pi, int cont, int regr, int val); int (*read_regr)(struct pi_adapter *pi, int cont, int regr); void (*write_block)(struct pi_adapter *pi, char *buf, int count); void (*read_block)(struct pi_adapter *pi, char *buf, int count);
int pata_parport_register_driver(struct pi_protocol *pr); void pata_parport_unregister_driver(struct pi_protocol *pr);
/** * module_pata_parport_driver() - Helper macro for registering a pata_parport driver * @__pi_protocol: pi_protocol struct * * Helper macro for pata_parport drivers which do not do anything special in module * init/exit. This eliminates a lot of boilerplate. Each module may only * use this macro once, and calling it replaces module_init() and module_exit()
*/ #define module_pata_parport_driver(__pi_protocol) \
module_driver(__pi_protocol, pata_parport_register_driver, pata_parport_unregister_driver)
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.