/* SPDX-License-Identifier: GPL-2.0-only */ /* * ds.h -- 16-bit PCMCIA core support * * The initial developer of the original code is David A. Hinds * <dahinds@users.sourceforge.net>. Portions created by David A. Hinds * are Copyright (C) 1999 David A. Hinds. All Rights Reserved. * * (C) 1999 David A. Hinds * (C) 2003 - 2008 Dominik Brodowski
*/
/** * module_pcmcia_driver() - Helper macro for registering a pcmcia driver * @__pcmcia_driver: pcmcia_driver struct * * Helper macro for pcmcia 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_pcmcia_driver(__pcmcia_driver) \
module_driver(__pcmcia_driver, pcmcia_register_driver, \
pcmcia_unregister_driver)
/* * CIS access. * * Please use the following functions to access CIS tuples: * - pcmcia_get_tuple() * - pcmcia_loop_tuple() * - pcmcia_get_mac_from_cis() * * To parse a tuple_t, pcmcia_parse_tuple() exists. Its interface * might change in future.
*/
/* get the very first CIS entry of type @code. Note that buf is pointer
* to u8 *buf; and that you need to kfree(buf) afterwards. */
size_t pcmcia_get_tuple(struct pcmcia_device *p_dev, cisdata_t code,
u8 **buf);
/* loop over CIS entries */ int pcmcia_loop_tuple(struct pcmcia_device *p_dev, cisdata_t code, int (*loop_tuple) (struct pcmcia_device *p_dev,
tuple_t *tuple, void *priv_data), void *priv_data);
/* get the MAC address from CISTPL_FUNCE */ int pcmcia_get_mac_from_cis(struct pcmcia_device *p_dev, struct net_device *dev);
/* parse a tuple_t */ int pcmcia_parse_tuple(tuple_t *tuple, cisparse_t *parse);
/* loop CIS entries for valid configuration */ int pcmcia_loop_config(struct pcmcia_device *p_dev, int (*conf_check) (struct pcmcia_device *p_dev, void *priv_data), void *priv_data);
/* is the device still there? */ struct pcmcia_device *pcmcia_dev_present(struct pcmcia_device *p_dev);
/* low-level interface reset */ int pcmcia_reset_card(struct pcmcia_socket *skt);
/* CIS config */ int pcmcia_read_config_byte(struct pcmcia_device *p_dev, off_t where, u8 *val); int pcmcia_write_config_byte(struct pcmcia_device *p_dev, off_t where, u8 val);
/* device configuration */ int pcmcia_request_io(struct pcmcia_device *p_dev);
int __must_check pcmcia_request_irq(struct pcmcia_device *p_dev,
irq_handler_t handler);
int pcmcia_enable_device(struct pcmcia_device *p_dev);
int pcmcia_request_window(struct pcmcia_device *p_dev, struct resource *res, unsignedint speed); int pcmcia_release_window(struct pcmcia_device *p_dev, struct resource *res); int pcmcia_map_mem_page(struct pcmcia_device *p_dev, struct resource *res, unsignedint offset);
int pcmcia_fixup_vpp(struct pcmcia_device *p_dev, unsignedchar new_vpp); int pcmcia_fixup_iowidth(struct pcmcia_device *p_dev);
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.