Файловый менеджер - Редактировать - /var/www/xthruster/html/wp-content/uploads/flags/pcmcia.tar
Назад
ciscode.h 0000644 00000006222 14722071340 0006330 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * ciscode.h * * 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 */ #ifndef _LINUX_CISCODE_H #define _LINUX_CISCODE_H /* Manufacturer and Product ID codes */ #define MANFID_3COM 0x0101 #define PRODID_3COM_3CXEM556 0x0035 #define PRODID_3COM_3CCFEM556 0x0556 #define PRODID_3COM_3C562 0x0562 #define MANFID_ACCTON 0x01bf #define PRODID_ACCTON_EN2226 0x010a #define MANFID_ADAPTEC 0x012f #define PRODID_ADAPTEC_SCSI 0x0001 #define MANFID_ATT 0xffff #define PRODID_ATT_KIT 0x0100 #define MANFID_CONTEC 0xc001 #define MANFID_FUJITSU 0x0004 #define PRODID_FUJITSU_MBH10302 0x0004 #define PRODID_FUJITSU_MBH10304 0x1003 #define PRODID_FUJITSU_LA501 0x2000 #define MANFID_IBM 0x00a4 #define PRODID_IBM_HOME_AND_AWAY 0x002e #define MANFID_INTEL 0x0089 #define PRODID_INTEL_DUAL_RS232 0x0301 #define PRODID_INTEL_2PLUS 0x8422 #define MANFID_KME 0x0032 #define PRODID_KME_KXLC005_A 0x0704 #define PRODID_KME_KXLC005_B 0x2904 #define MANFID_LINKSYS 0x0143 #define PRODID_LINKSYS_PCMLM28 0xc0ab #define PRODID_LINKSYS_3400 0x3341 #define MANFID_MEGAHERTZ 0x0102 #define PRODID_MEGAHERTZ_VARIOUS 0x0000 #define PRODID_MEGAHERTZ_EM3288 0x0006 #define MANFID_MACNICA 0xc00b #define MANFID_MOTOROLA 0x0109 #define PRODID_MOTOROLA_MARINER 0x0501 #define MANFID_NATINST 0x010b #define PRODID_NATINST_QUAD_RS232 0xd180 #define MANFID_NEW_MEDIA 0x0057 #define MANFID_NOKIA 0x0124 #define PRODID_NOKIA_CARDPHONE 0x0900 #define MANFID_OLICOM 0x0121 #define PRODID_OLICOM_OC2231 0x3122 #define PRODID_OLICOM_OC2232 0x3222 #define MANFID_OMEGA 0x0137 #define PRODID_OMEGA_QSP_100 0x0025 #define MANFID_OSITECH 0x0140 #define PRODID_OSITECH_JACK_144 0x0001 #define PRODID_OSITECH_JACK_288 0x0002 #define PRODID_OSITECH_JACK_336 0x0007 #define PRODID_OSITECH_SEVEN 0x0008 #define MANFID_OXSEMI 0x0279 #define MANFID_PIONEER 0x000b #define MANFID_PSION 0x016c #define PRODID_PSION_NET100 0x0023 #define MANFID_QUATECH 0x0137 #define PRODID_QUATECH_SPP100 0x0003 #define PRODID_QUATECH_DUAL_RS232 0x0012 #define PRODID_QUATECH_DUAL_RS232_D1 0x0007 #define PRODID_QUATECH_DUAL_RS232_D2 0x0052 #define PRODID_QUATECH_DUAL_RS232_G 0x004d #define PRODID_QUATECH_QUAD_RS232 0x001b #define PRODID_QUATECH_DUAL_RS422 0x000e #define PRODID_QUATECH_QUAD_RS422 0x0045 #define MANFID_SMC 0x0108 #define PRODID_SMC_ETHER 0x0105 #define MANFID_SOCKET 0x0104 #define PRODID_SOCKET_DUAL_RS232 0x0006 #define PRODID_SOCKET_EIO 0x000a #define PRODID_SOCKET_LPE 0x000d #define PRODID_SOCKET_LPE_CF 0x0075 #define MANFID_SUNDISK 0x0045 #define MANFID_TDK 0x0105 #define PRODID_TDK_CF010 0x0900 #define PRODID_TDK_NP9610 0x0d0a #define PRODID_TDK_MN3200 0x0e0a #define PRODID_TDK_GN3410 0x4815 #define MANFID_TOSHIBA 0x0098 #define MANFID_UNGERMANN 0x02c0 #define MANFID_XIRCOM 0x0105 #define MANFID_POSSIO 0x030c #define PRODID_POSSIO_GCC 0x0003 #define MANFID_NEC 0x0010 #endif /* _LINUX_CISCODE_H */ device_id.h 0000644 00000022427 14722071340 0006637 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * device_id.h -- PCMCIA driver matching helpers * * (C) 2003 - 2004 David Woodhouse * (C) 2003 - 2004 Dominik Brodowski */ #ifndef _LINUX_PCMCIA_DEVICE_ID_H #define _LINUX_PCMCIA_DEVICE_ID_H #ifdef __KERNEL__ #define PCMCIA_DEVICE_MANF_CARD(manf, card) { \ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID, \ .manf_id = (manf), \ .card_id = (card), } #define PCMCIA_DEVICE_FUNC_ID(func) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FUNC_ID, \ .func_id = (func), } #define PCMCIA_DEVICE_PROD_ID1(v1, vh1) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1, \ .prod_id = { (v1), NULL, NULL, NULL }, \ .prod_id_hash = { (vh1), 0, 0, 0 }, } #define PCMCIA_DEVICE_PROD_ID2(v2, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2, \ .prod_id = { NULL, (v2), NULL, NULL }, \ .prod_id_hash = { 0, (vh2), 0, 0 }, } #define PCMCIA_DEVICE_PROD_ID3(v3, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID3, \ .prod_id = { NULL, NULL, (v3), NULL }, \ .prod_id_hash = { 0, 0, (vh3), 0 }, } #define PCMCIA_DEVICE_PROD_ID12(v1, v2, vh1, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 }, } #define PCMCIA_DEVICE_PROD_ID13(v1, v3, vh1, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID3, \ .prod_id = { (v1), NULL, (v3), NULL }, \ .prod_id_hash = { (vh1), 0, (vh3), 0 }, } #define PCMCIA_DEVICE_PROD_ID14(v1, v4, vh1, vh4) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID4, \ .prod_id = { (v1), NULL, NULL, (v4) }, \ .prod_id_hash = { (vh1), 0, 0, (vh4) }, } #define PCMCIA_DEVICE_PROD_ID123(v1, v2, v3, vh1, vh2, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID3, \ .prod_id = { (v1), (v2), (v3), NULL },\ .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, } #define PCMCIA_DEVICE_PROD_ID124(v1, v2, v4, vh1, vh2, vh4) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID4, \ .prod_id = { (v1), (v2), NULL, (v4) }, \ .prod_id_hash = { (vh1), (vh2), 0, (vh4) }, } #define PCMCIA_DEVICE_PROD_ID134(v1, v3, v4, vh1, vh3, vh4) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_PROD_ID4, \ .prod_id = { (v1), NULL, (v3), (v4) }, \ .prod_id_hash = { (vh1), 0, (vh3), (vh4) }, } #define PCMCIA_DEVICE_PROD_ID1234(v1, v2, v3, v4, vh1, vh2, vh3, vh4) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_PROD_ID4, \ .prod_id = { (v1), (v2), (v3), (v4) }, \ .prod_id_hash = { (vh1), (vh2), (vh3), (vh4) }, } #define PCMCIA_DEVICE_MANF_CARD_PROD_ID1(manf, card, v1, vh1) { \ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID| \ PCMCIA_DEV_ID_MATCH_PROD_ID1, \ .manf_id = (manf), \ .card_id = (card), \ .prod_id = { (v1), NULL, NULL, NULL }, \ .prod_id_hash = { (vh1), 0, 0, 0 }, } #define PCMCIA_DEVICE_MANF_CARD_PROD_ID3(manf, card, v3, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID| \ PCMCIA_DEV_ID_MATCH_PROD_ID3, \ .manf_id = (manf), \ .card_id = (card), \ .prod_id = { NULL, NULL, (v3), NULL }, \ .prod_id_hash = { 0, 0, (vh3), 0 }, } /* multi-function devices */ #define PCMCIA_MFC_DEVICE_MANF_CARD(mfc, manf, card) { \ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .manf_id = (manf), \ .card_id = (card), \ .function = (mfc), } #define PCMCIA_MFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { (v1), NULL, NULL, NULL }, \ .prod_id_hash = { (vh1), 0, 0, 0 }, \ .function = (mfc), } #define PCMCIA_MFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { NULL, (v2), NULL, NULL }, \ .prod_id_hash = { 0, (vh2), 0, 0 }, \ .function = (mfc), } #define PCMCIA_MFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ .function = (mfc), } #define PCMCIA_MFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { (v1), NULL, (v3), NULL }, \ .prod_id_hash = { (vh1), 0, (vh3), 0 }, \ .function = (mfc), } #define PCMCIA_MFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { (v1), (v2), (v3), NULL },\ .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ .function = (mfc), } /* pseudo multi-function devices */ #define PCMCIA_PFC_DEVICE_MANF_CARD(mfc, manf, card) { \ .match_flags = PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .manf_id = (manf), \ .card_id = (card), \ .device_no = (mfc), } #define PCMCIA_PFC_DEVICE_PROD_ID1(mfc, v1, vh1) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { (v1), NULL, NULL, NULL }, \ .prod_id_hash = { (vh1), 0, 0, 0 }, \ .device_no = (mfc), } #define PCMCIA_PFC_DEVICE_PROD_ID2(mfc, v2, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { NULL, (v2), NULL, NULL }, \ .prod_id_hash = { 0, (vh2), 0, 0 }, \ .device_no = (mfc), } #define PCMCIA_PFC_DEVICE_PROD_ID12(mfc, v1, v2, vh1, vh2) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ .device_no = (mfc), } #define PCMCIA_PFC_DEVICE_PROD_ID13(mfc, v1, v3, vh1, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { (v1), NULL, (v3), NULL }, \ .prod_id_hash = { (vh1), 0, (vh3), 0 }, \ .device_no = (mfc), } #define PCMCIA_PFC_DEVICE_PROD_ID123(mfc, v1, v2, v3, vh1, vh2, vh3) { \ .match_flags = PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID3| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { (v1), (v2), (v3), NULL },\ .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ .device_no = (mfc), } /* cards needing a CIS override */ #define PCMCIA_DEVICE_CIS_MANF_CARD(manf, card, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID, \ .manf_id = (manf), \ .card_id = (card), \ .cisfile = (_cisfile)} #define PCMCIA_DEVICE_CIS_PROD_ID12(v1, v2, vh1, vh2, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ .cisfile = (_cisfile)} #define PCMCIA_DEVICE_CIS_PROD_ID123(v1, v2, v3, vh1, vh2, vh3, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_PROD_ID3, \ .prod_id = { (v1), (v2), (v3), NULL },\ .prod_id_hash = { (vh1), (vh2), (vh3), 0 }, \ .cisfile = (_cisfile)} #define PCMCIA_DEVICE_CIS_PROD_ID2(v2, vh2, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID2, \ .prod_id = { NULL, (v2), NULL, NULL }, \ .prod_id_hash = { 0, (vh2), 0, 0 }, \ .cisfile = (_cisfile)} #define PCMCIA_PFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_DEVICE_NO, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 },\ .device_no = (mfc), \ .cisfile = (_cisfile)} #define PCMCIA_MFC_DEVICE_CIS_MANF_CARD(mfc, manf, card, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_MANF_ID| \ PCMCIA_DEV_ID_MATCH_CARD_ID| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .manf_id = (manf), \ .card_id = (card), \ .function = (mfc), \ .cisfile = (_cisfile)} #define PCMCIA_MFC_DEVICE_CIS_PROD_ID12(mfc, v1, v2, vh1, vh2, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID1| \ PCMCIA_DEV_ID_MATCH_PROD_ID2| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { (v1), (v2), NULL, NULL }, \ .prod_id_hash = { (vh1), (vh2), 0, 0 }, \ .function = (mfc), \ .cisfile = (_cisfile)} #define PCMCIA_MFC_DEVICE_CIS_PROD_ID4(mfc, v4, vh4, _cisfile) { \ .match_flags = PCMCIA_DEV_ID_MATCH_FAKE_CIS | \ PCMCIA_DEV_ID_MATCH_PROD_ID4| \ PCMCIA_DEV_ID_MATCH_FUNCTION, \ .prod_id = { NULL, NULL, NULL, (v4) }, \ .prod_id_hash = { 0, 0, 0, (vh4) }, \ .function = (mfc), \ .cisfile = (_cisfile)} #define PCMCIA_DEVICE_NULL { .match_flags = 0, } #endif /* __KERNEL__ */ #endif /* _LINUX_PCMCIA_DEVICE_ID_H */ ds.h 0000644 00000017011 14722071340 0005323 0 ustar 00 /* 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 */ #ifndef _LINUX_DS_H #define _LINUX_DS_H #ifdef __KERNEL__ #include <linux/mod_devicetable.h> #endif #include <pcmcia/device_id.h> #ifdef __KERNEL__ #include <linux/device.h> #include <linux/interrupt.h> #include <pcmcia/ss.h> #include <linux/atomic.h> /* * PCMCIA device drivers (16-bit cards only; 32-bit cards require CardBus * a.k.a. PCI drivers */ struct pcmcia_socket; struct pcmcia_device; struct config_t; struct net_device; /* dynamic device IDs for PCMCIA device drivers. See * Documentation/pcmcia/driver.rst for details. */ struct pcmcia_dynids { struct mutex lock; struct list_head list; }; struct pcmcia_driver { const char *name; int (*probe) (struct pcmcia_device *dev); void (*remove) (struct pcmcia_device *dev); int (*suspend) (struct pcmcia_device *dev); int (*resume) (struct pcmcia_device *dev); struct module *owner; const struct pcmcia_device_id *id_table; struct device_driver drv; struct pcmcia_dynids dynids; }; /* driver registration */ int pcmcia_register_driver(struct pcmcia_driver *driver); void pcmcia_unregister_driver(struct pcmcia_driver *driver); /** * 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) /* for struct resource * array embedded in struct pcmcia_device */ enum { PCMCIA_IOPORT_0, PCMCIA_IOPORT_1, PCMCIA_IOMEM_0, PCMCIA_IOMEM_1, PCMCIA_IOMEM_2, PCMCIA_IOMEM_3, PCMCIA_NUM_RESOURCES, }; struct pcmcia_device { /* the socket and the device_no [for multifunction devices] uniquely define a pcmcia_device */ struct pcmcia_socket *socket; char *devname; u8 device_no; /* the hardware "function" device; certain subdevices can * share one hardware "function" device. */ u8 func; struct config_t *function_config; struct list_head socket_device_list; /* device setup */ unsigned int irq; struct resource *resource[PCMCIA_NUM_RESOURCES]; resource_size_t card_addr; /* for the 1st IOMEM resource */ unsigned int vpp; unsigned int config_flags; /* CONF_ENABLE_ flags below */ unsigned int config_base; unsigned int config_index; unsigned int config_regs; /* PRESENT_ flags below */ unsigned int io_lines; /* number of I/O lines */ /* Is the device suspended? */ u16 suspended:1; /* Flags whether io, irq, win configurations were * requested, and whether the configuration is "locked" */ u16 _irq:1; u16 _io:1; u16 _win:4; u16 _locked:1; /* Flag whether a "fuzzy" func_id based match is * allowed. */ u16 allow_func_id_match:1; /* information about this device */ u16 has_manf_id:1; u16 has_card_id:1; u16 has_func_id:1; u16 reserved:4; u8 func_id; u16 manf_id; u16 card_id; char *prod_id[4]; u64 dma_mask; struct device dev; /* data private to drivers */ void *priv; unsigned int open; }; #define to_pcmcia_dev(n) container_of(n, struct pcmcia_device, dev) #define to_pcmcia_drv(n) container_of(n, struct pcmcia_driver, drv) /* * 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, unsigned int 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, unsigned int offset); int pcmcia_fixup_vpp(struct pcmcia_device *p_dev, unsigned char new_vpp); int pcmcia_fixup_iowidth(struct pcmcia_device *p_dev); void pcmcia_disable_device(struct pcmcia_device *p_dev); /* IO ports */ #define IO_DATA_PATH_WIDTH 0x18 #define IO_DATA_PATH_WIDTH_8 0x00 #define IO_DATA_PATH_WIDTH_16 0x08 #define IO_DATA_PATH_WIDTH_AUTO 0x10 /* IO memory */ #define WIN_MEMORY_TYPE_CM 0x00 /* default */ #define WIN_MEMORY_TYPE_AM 0x20 /* MAP_ATTRIB */ #define WIN_DATA_WIDTH_8 0x00 /* default */ #define WIN_DATA_WIDTH_16 0x02 /* MAP_16BIT */ #define WIN_ENABLE 0x01 /* MAP_ACTIVE */ #define WIN_USE_WAIT 0x40 /* MAP_USE_WAIT */ #define WIN_FLAGS_MAP 0x63 /* MAP_ATTRIB | MAP_16BIT | MAP_ACTIVE | MAP_USE_WAIT */ #define WIN_FLAGS_REQ 0x1c /* mapping to socket->win[i]: 0x04 -> 0 0x08 -> 1 0x0c -> 2 0x10 -> 3 */ /* config_reg{ister}s present for this PCMCIA device */ #define PRESENT_OPTION 0x001 #define PRESENT_STATUS 0x002 #define PRESENT_PIN_REPLACE 0x004 #define PRESENT_COPY 0x008 #define PRESENT_EXT_STATUS 0x010 #define PRESENT_IOBASE_0 0x020 #define PRESENT_IOBASE_1 0x040 #define PRESENT_IOBASE_2 0x080 #define PRESENT_IOBASE_3 0x100 #define PRESENT_IOSIZE 0x200 /* flags to be passed to pcmcia_enable_device() */ #define CONF_ENABLE_IRQ 0x0001 #define CONF_ENABLE_SPKR 0x0002 #define CONF_ENABLE_PULSE_IRQ 0x0004 #define CONF_ENABLE_ESR 0x0008 #define CONF_ENABLE_IOCARD 0x0010 /* auto-enabled if IO resources or IRQ * (CONF_ENABLE_IRQ) in use */ #define CONF_ENABLE_ZVCARD 0x0020 /* flags used by pcmcia_loop_config() autoconfiguration */ #define CONF_AUTO_CHECK_VCC 0x0100 /* check for matching Vcc? */ #define CONF_AUTO_SET_VPP 0x0200 /* set Vpp? */ #define CONF_AUTO_AUDIO 0x0400 /* enable audio line? */ #define CONF_AUTO_SET_IO 0x0800 /* set ->resource[0,1] */ #define CONF_AUTO_SET_IOMEM 0x1000 /* set ->resource[2] */ #endif /* __KERNEL__ */ #endif /* _LINUX_DS_H */ cisreg.h 0000644 00000005142 14722071340 0006173 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * cisreg.h * * 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 */ #ifndef _LINUX_CISREG_H #define _LINUX_CISREG_H /* * Offsets from ConfigBase for CIS registers */ #define CISREG_COR 0x00 #define CISREG_CCSR 0x02 #define CISREG_PRR 0x04 #define CISREG_SCR 0x06 #define CISREG_ESR 0x08 #define CISREG_IOBASE_0 0x0a #define CISREG_IOBASE_1 0x0c #define CISREG_IOBASE_2 0x0e #define CISREG_IOBASE_3 0x10 #define CISREG_IOSIZE 0x12 /* * Configuration Option Register */ #define COR_CONFIG_MASK 0x3f #define COR_MFC_CONFIG_MASK 0x38 #define COR_FUNC_ENA 0x01 #define COR_ADDR_DECODE 0x02 #define COR_IREQ_ENA 0x04 #define COR_LEVEL_REQ 0x40 #define COR_SOFT_RESET 0x80 /* * Card Configuration and Status Register */ #define CCSR_INTR_ACK 0x01 #define CCSR_INTR_PENDING 0x02 #define CCSR_POWER_DOWN 0x04 #define CCSR_AUDIO_ENA 0x08 #define CCSR_IOIS8 0x20 #define CCSR_SIGCHG_ENA 0x40 #define CCSR_CHANGED 0x80 /* * Pin Replacement Register */ #define PRR_WP_STATUS 0x01 #define PRR_READY_STATUS 0x02 #define PRR_BVD2_STATUS 0x04 #define PRR_BVD1_STATUS 0x08 #define PRR_WP_EVENT 0x10 #define PRR_READY_EVENT 0x20 #define PRR_BVD2_EVENT 0x40 #define PRR_BVD1_EVENT 0x80 /* * Socket and Copy Register */ #define SCR_SOCKET_NUM 0x0f #define SCR_COPY_NUM 0x70 /* * Extended Status Register */ #define ESR_REQ_ATTN_ENA 0x01 #define ESR_REQ_ATTN 0x10 /* * CardBus Function Status Registers */ #define CBFN_EVENT 0x00 #define CBFN_MASK 0x04 #define CBFN_STATE 0x08 #define CBFN_FORCE 0x0c /* * These apply to all the CardBus function registers */ #define CBFN_WP 0x0001 #define CBFN_READY 0x0002 #define CBFN_BVD2 0x0004 #define CBFN_BVD1 0x0008 #define CBFN_GWAKE 0x0010 #define CBFN_INTR 0x8000 /* * Extra bits in the Function Event Mask Register */ #define FEMR_BAM_ENA 0x0020 #define FEMR_PWM_ENA 0x0040 #define FEMR_WKUP_MASK 0x4000 /* * Indirect Addressing Registers for Zoomed Video: these are addresses * in common memory space */ #define CISREG_ICTRL0 0x02 /* control registers */ #define CISREG_ICTRL1 0x03 #define CISREG_IADDR0 0x04 /* address registers */ #define CISREG_IADDR1 0x05 #define CISREG_IADDR2 0x06 #define CISREG_IADDR3 0x07 #define CISREG_IDATA0 0x08 /* data registers */ #define CISREG_IDATA1 0x09 #define ICTRL0_COMMON 0x01 #define ICTRL0_AUTOINC 0x02 #define ICTRL0_BYTEGRAN 0x04 #endif /* _LINUX_CISREG_H */ ss.h 0000644 00000015476 14722071340 0005357 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * ss.h * * 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 */ #ifndef _LINUX_SS_H #define _LINUX_SS_H #include <linux/device.h> #include <linux/sched.h> /* task_struct, completion */ #include <linux/mutex.h> #ifdef CONFIG_CARDBUS #include <linux/pci.h> #endif /* Definitions for card status flags for GetStatus */ #define SS_WRPROT 0x0001 #define SS_CARDLOCK 0x0002 #define SS_EJECTION 0x0004 #define SS_INSERTION 0x0008 #define SS_BATDEAD 0x0010 #define SS_BATWARN 0x0020 #define SS_READY 0x0040 #define SS_DETECT 0x0080 #define SS_POWERON 0x0100 #define SS_GPI 0x0200 #define SS_STSCHG 0x0400 #define SS_CARDBUS 0x0800 #define SS_3VCARD 0x1000 #define SS_XVCARD 0x2000 #define SS_PENDING 0x4000 #define SS_ZVCARD 0x8000 /* InquireSocket capabilities */ #define SS_CAP_PAGE_REGS 0x0001 #define SS_CAP_VIRTUAL_BUS 0x0002 #define SS_CAP_MEM_ALIGN 0x0004 #define SS_CAP_STATIC_MAP 0x0008 #define SS_CAP_PCCARD 0x4000 #define SS_CAP_CARDBUS 0x8000 /* for GetSocket, SetSocket */ typedef struct socket_state_t { u_int flags; u_int csc_mask; u_char Vcc, Vpp; u_char io_irq; } socket_state_t; extern socket_state_t dead_socket; /* Socket configuration flags */ #define SS_PWR_AUTO 0x0010 #define SS_IOCARD 0x0020 #define SS_RESET 0x0040 #define SS_DMA_MODE 0x0080 #define SS_SPKR_ENA 0x0100 #define SS_OUTPUT_ENA 0x0200 /* Flags for I/O port and memory windows */ #define MAP_ACTIVE 0x01 #define MAP_16BIT 0x02 #define MAP_AUTOSZ 0x04 #define MAP_0WS 0x08 #define MAP_WRPROT 0x10 #define MAP_ATTRIB 0x20 #define MAP_USE_WAIT 0x40 #define MAP_PREFETCH 0x80 /* Use this just for bridge windows */ #define MAP_IOSPACE 0x20 /* power hook operations */ #define HOOK_POWER_PRE 0x01 #define HOOK_POWER_POST 0x02 typedef struct pccard_io_map { u_char map; u_char flags; u_short speed; phys_addr_t start, stop; } pccard_io_map; typedef struct pccard_mem_map { u_char map; u_char flags; u_short speed; phys_addr_t static_start; u_int card_start; struct resource *res; } pccard_mem_map; typedef struct io_window_t { u_int InUse, Config; struct resource *res; } io_window_t; /* Maximum number of IO windows per socket */ #define MAX_IO_WIN 2 /* Maximum number of memory windows per socket */ #define MAX_WIN 4 /* * Socket operations. */ struct pcmcia_socket; struct pccard_resource_ops; struct config_t; struct pcmcia_callback; struct user_info_t; struct pccard_operations { int (*init)(struct pcmcia_socket *s); int (*suspend)(struct pcmcia_socket *s); int (*get_status)(struct pcmcia_socket *s, u_int *value); int (*set_socket)(struct pcmcia_socket *s, socket_state_t *state); int (*set_io_map)(struct pcmcia_socket *s, struct pccard_io_map *io); int (*set_mem_map)(struct pcmcia_socket *s, struct pccard_mem_map *mem); }; struct pcmcia_socket { struct module *owner; socket_state_t socket; u_int state; u_int suspended_state; /* state before suspend */ u_short functions; u_short lock_count; pccard_mem_map cis_mem; void __iomem *cis_virt; io_window_t io[MAX_IO_WIN]; pccard_mem_map win[MAX_WIN]; struct list_head cis_cache; size_t fake_cis_len; u8 *fake_cis; struct list_head socket_list; struct completion socket_released; /* deprecated */ unsigned int sock; /* socket number */ /* socket capabilities */ u_int features; u_int irq_mask; u_int map_size; u_int io_offset; u_int pci_irq; struct pci_dev *cb_dev; /* socket setup is done so resources should be able to be allocated. * Only if set to 1, calls to find_{io,mem}_region are handled, and * insertio events are actually managed by the PCMCIA layer.*/ u8 resource_setup_done; /* socket operations */ struct pccard_operations *ops; struct pccard_resource_ops *resource_ops; void *resource_data; /* Zoom video behaviour is so chip specific its not worth adding this to _ops */ void (*zoom_video)(struct pcmcia_socket *, int); /* so is power hook */ int (*power_hook)(struct pcmcia_socket *sock, int operation); /* allows tuning the CB bridge before loading driver for the CB card */ #ifdef CONFIG_CARDBUS void (*tune_bridge)(struct pcmcia_socket *sock, struct pci_bus *bus); #endif /* state thread */ struct task_struct *thread; struct completion thread_done; unsigned int thread_events; unsigned int sysfs_events; /* For the non-trivial interaction between these locks, * see Documentation/pcmcia/locking.rst */ struct mutex skt_mutex; struct mutex ops_mutex; /* protects thread_events and sysfs_events */ spinlock_t thread_lock; /* pcmcia (16-bit) */ struct pcmcia_callback *callback; #if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE) /* The following elements refer to 16-bit PCMCIA devices inserted * into the socket */ struct list_head devices_list; /* the number of devices, used only internally and subject to * incorrectness and change */ u8 device_count; /* does the PCMCIA card consist of two pseudo devices? */ u8 pcmcia_pfc; /* non-zero if PCMCIA card is present */ atomic_t present; /* IRQ to be used by PCMCIA devices. May not be IRQ 0. */ unsigned int pcmcia_irq; #endif /* CONFIG_PCMCIA */ /* socket device */ struct device dev; /* data internal to the socket driver */ void *driver_data; /* status of the card during resume from a system sleep state */ int resume_status; }; /* socket drivers must define the resource operations type they use. There * are three options: * - pccard_static_ops iomem and ioport areas are assigned statically * - pccard_iodyn_ops iomem areas is assigned statically, ioport * areas dynamically * If this option is selected, use * "select PCCARD_IODYN" in Kconfig. * - pccard_nonstatic_ops iomem and ioport areas are assigned dynamically. * If this option is selected, use * "select PCCARD_NONSTATIC" in Kconfig. * */ extern struct pccard_resource_ops pccard_static_ops; #if defined(CONFIG_PCMCIA) || defined(CONFIG_PCMCIA_MODULE) extern struct pccard_resource_ops pccard_iodyn_ops; extern struct pccard_resource_ops pccard_nonstatic_ops; #else /* If PCMCIA is not used, but only CARDBUS, these functions are not used * at all. Therefore, do not use the large (240K!) rsrc_nonstatic module */ #define pccard_iodyn_ops pccard_static_ops #define pccard_nonstatic_ops pccard_static_ops #endif /* socket drivers use this callback in their IRQ handler */ extern void pcmcia_parse_events(struct pcmcia_socket *socket, unsigned int events); /* to register and unregister a socket */ extern int pcmcia_register_socket(struct pcmcia_socket *socket); extern void pcmcia_unregister_socket(struct pcmcia_socket *socket); #endif /* _LINUX_SS_H */ cistpl.h 0000644 00000034224 14722071340 0006220 0 ustar 00 /* SPDX-License-Identifier: GPL-2.0-only */ /* * cistpl.h * * 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 */ #ifndef _LINUX_CISTPL_H #define _LINUX_CISTPL_H typedef unsigned char cisdata_t; #define CISTPL_NULL 0x00 #define CISTPL_DEVICE 0x01 #define CISTPL_LONGLINK_CB 0x02 #define CISTPL_INDIRECT 0x03 #define CISTPL_CONFIG_CB 0x04 #define CISTPL_CFTABLE_ENTRY_CB 0x05 #define CISTPL_LONGLINK_MFC 0x06 #define CISTPL_BAR 0x07 #define CISTPL_PWR_MGMNT 0x08 #define CISTPL_EXTDEVICE 0x09 #define CISTPL_CHECKSUM 0x10 #define CISTPL_LONGLINK_A 0x11 #define CISTPL_LONGLINK_C 0x12 #define CISTPL_LINKTARGET 0x13 #define CISTPL_NO_LINK 0x14 #define CISTPL_VERS_1 0x15 #define CISTPL_ALTSTR 0x16 #define CISTPL_DEVICE_A 0x17 #define CISTPL_JEDEC_C 0x18 #define CISTPL_JEDEC_A 0x19 #define CISTPL_CONFIG 0x1a #define CISTPL_CFTABLE_ENTRY 0x1b #define CISTPL_DEVICE_OC 0x1c #define CISTPL_DEVICE_OA 0x1d #define CISTPL_DEVICE_GEO 0x1e #define CISTPL_DEVICE_GEO_A 0x1f #define CISTPL_MANFID 0x20 #define CISTPL_FUNCID 0x21 #define CISTPL_FUNCE 0x22 #define CISTPL_SWIL 0x23 #define CISTPL_END 0xff /* Layer 2 tuples */ #define CISTPL_VERS_2 0x40 #define CISTPL_FORMAT 0x41 #define CISTPL_GEOMETRY 0x42 #define CISTPL_BYTEORDER 0x43 #define CISTPL_DATE 0x44 #define CISTPL_BATTERY 0x45 #define CISTPL_FORMAT_A 0x47 /* Layer 3 tuples */ #define CISTPL_ORG 0x46 #define CISTPL_SPCL 0x90 typedef struct cistpl_longlink_t { u_int addr; } cistpl_longlink_t; typedef struct cistpl_checksum_t { u_short addr; u_short len; u_char sum; } cistpl_checksum_t; #define CISTPL_MAX_FUNCTIONS 8 #define CISTPL_MFC_ATTR 0x00 #define CISTPL_MFC_COMMON 0x01 typedef struct cistpl_longlink_mfc_t { u_char nfn; struct { u_char space; u_int addr; } fn[CISTPL_MAX_FUNCTIONS]; } cistpl_longlink_mfc_t; #define CISTPL_MAX_ALTSTR_STRINGS 4 typedef struct cistpl_altstr_t { u_char ns; u_char ofs[CISTPL_MAX_ALTSTR_STRINGS]; char str[254]; } cistpl_altstr_t; #define CISTPL_DTYPE_NULL 0x00 #define CISTPL_DTYPE_ROM 0x01 #define CISTPL_DTYPE_OTPROM 0x02 #define CISTPL_DTYPE_EPROM 0x03 #define CISTPL_DTYPE_EEPROM 0x04 #define CISTPL_DTYPE_FLASH 0x05 #define CISTPL_DTYPE_SRAM 0x06 #define CISTPL_DTYPE_DRAM 0x07 #define CISTPL_DTYPE_FUNCSPEC 0x0d #define CISTPL_DTYPE_EXTEND 0x0e #define CISTPL_MAX_DEVICES 4 typedef struct cistpl_device_t { u_char ndev; struct { u_char type; u_char wp; u_int speed; u_int size; } dev[CISTPL_MAX_DEVICES]; } cistpl_device_t; #define CISTPL_DEVICE_MWAIT 0x01 #define CISTPL_DEVICE_3VCC 0x02 typedef struct cistpl_device_o_t { u_char flags; cistpl_device_t device; } cistpl_device_o_t; #define CISTPL_VERS_1_MAX_PROD_STRINGS 4 typedef struct cistpl_vers_1_t { u_char major; u_char minor; u_char ns; u_char ofs[CISTPL_VERS_1_MAX_PROD_STRINGS]; char str[254]; } cistpl_vers_1_t; typedef struct cistpl_jedec_t { u_char nid; struct { u_char mfr; u_char info; } id[CISTPL_MAX_DEVICES]; } cistpl_jedec_t; typedef struct cistpl_manfid_t { u_short manf; u_short card; } cistpl_manfid_t; #define CISTPL_FUNCID_MULTI 0x00 #define CISTPL_FUNCID_MEMORY 0x01 #define CISTPL_FUNCID_SERIAL 0x02 #define CISTPL_FUNCID_PARALLEL 0x03 #define CISTPL_FUNCID_FIXED 0x04 #define CISTPL_FUNCID_VIDEO 0x05 #define CISTPL_FUNCID_NETWORK 0x06 #define CISTPL_FUNCID_AIMS 0x07 #define CISTPL_FUNCID_SCSI 0x08 #define CISTPL_SYSINIT_POST 0x01 #define CISTPL_SYSINIT_ROM 0x02 typedef struct cistpl_funcid_t { u_char func; u_char sysinit; } cistpl_funcid_t; typedef struct cistpl_funce_t { u_char type; u_char data[0]; } cistpl_funce_t; /*====================================================================== Modem Function Extension Tuples ======================================================================*/ #define CISTPL_FUNCE_SERIAL_IF 0x00 #define CISTPL_FUNCE_SERIAL_CAP 0x01 #define CISTPL_FUNCE_SERIAL_SERV_DATA 0x02 #define CISTPL_FUNCE_SERIAL_SERV_FAX 0x03 #define CISTPL_FUNCE_SERIAL_SERV_VOICE 0x04 #define CISTPL_FUNCE_SERIAL_CAP_DATA 0x05 #define CISTPL_FUNCE_SERIAL_CAP_FAX 0x06 #define CISTPL_FUNCE_SERIAL_CAP_VOICE 0x07 #define CISTPL_FUNCE_SERIAL_IF_DATA 0x08 #define CISTPL_FUNCE_SERIAL_IF_FAX 0x09 #define CISTPL_FUNCE_SERIAL_IF_VOICE 0x0a /* UART identification */ #define CISTPL_SERIAL_UART_8250 0x00 #define CISTPL_SERIAL_UART_16450 0x01 #define CISTPL_SERIAL_UART_16550 0x02 #define CISTPL_SERIAL_UART_8251 0x03 #define CISTPL_SERIAL_UART_8530 0x04 #define CISTPL_SERIAL_UART_85230 0x05 /* UART capabilities */ #define CISTPL_SERIAL_UART_SPACE 0x01 #define CISTPL_SERIAL_UART_MARK 0x02 #define CISTPL_SERIAL_UART_ODD 0x04 #define CISTPL_SERIAL_UART_EVEN 0x08 #define CISTPL_SERIAL_UART_5BIT 0x01 #define CISTPL_SERIAL_UART_6BIT 0x02 #define CISTPL_SERIAL_UART_7BIT 0x04 #define CISTPL_SERIAL_UART_8BIT 0x08 #define CISTPL_SERIAL_UART_1STOP 0x10 #define CISTPL_SERIAL_UART_MSTOP 0x20 #define CISTPL_SERIAL_UART_2STOP 0x40 typedef struct cistpl_serial_t { u_char uart_type; u_char uart_cap_0; u_char uart_cap_1; } cistpl_serial_t; typedef struct cistpl_modem_cap_t { u_char flow; u_char cmd_buf; u_char rcv_buf_0, rcv_buf_1, rcv_buf_2; u_char xmit_buf_0, xmit_buf_1, xmit_buf_2; } cistpl_modem_cap_t; #define CISTPL_SERIAL_MOD_103 0x01 #define CISTPL_SERIAL_MOD_V21 0x02 #define CISTPL_SERIAL_MOD_V23 0x04 #define CISTPL_SERIAL_MOD_V22 0x08 #define CISTPL_SERIAL_MOD_212A 0x10 #define CISTPL_SERIAL_MOD_V22BIS 0x20 #define CISTPL_SERIAL_MOD_V26 0x40 #define CISTPL_SERIAL_MOD_V26BIS 0x80 #define CISTPL_SERIAL_MOD_V27BIS 0x01 #define CISTPL_SERIAL_MOD_V29 0x02 #define CISTPL_SERIAL_MOD_V32 0x04 #define CISTPL_SERIAL_MOD_V32BIS 0x08 #define CISTPL_SERIAL_MOD_V34 0x10 #define CISTPL_SERIAL_ERR_MNP2_4 0x01 #define CISTPL_SERIAL_ERR_V42_LAPM 0x02 #define CISTPL_SERIAL_CMPR_V42BIS 0x01 #define CISTPL_SERIAL_CMPR_MNP5 0x02 #define CISTPL_SERIAL_CMD_AT1 0x01 #define CISTPL_SERIAL_CMD_AT2 0x02 #define CISTPL_SERIAL_CMD_AT3 0x04 #define CISTPL_SERIAL_CMD_MNP_AT 0x08 #define CISTPL_SERIAL_CMD_V25BIS 0x10 #define CISTPL_SERIAL_CMD_V25A 0x20 #define CISTPL_SERIAL_CMD_DMCL 0x40 typedef struct cistpl_data_serv_t { u_char max_data_0; u_char max_data_1; u_char modulation_0; u_char modulation_1; u_char error_control; u_char compression; u_char cmd_protocol; u_char escape; u_char encrypt; u_char misc_features; u_char ccitt_code[0]; } cistpl_data_serv_t; typedef struct cistpl_fax_serv_t { u_char max_data_0; u_char max_data_1; u_char modulation; u_char encrypt; u_char features_0; u_char features_1; u_char ccitt_code[0]; } cistpl_fax_serv_t; typedef struct cistpl_voice_serv_t { u_char max_data_0; u_char max_data_1; } cistpl_voice_serv_t; /*====================================================================== LAN Function Extension Tuples ======================================================================*/ #define CISTPL_FUNCE_LAN_TECH 0x01 #define CISTPL_FUNCE_LAN_SPEED 0x02 #define CISTPL_FUNCE_LAN_MEDIA 0x03 #define CISTPL_FUNCE_LAN_NODE_ID 0x04 #define CISTPL_FUNCE_LAN_CONNECTOR 0x05 /* LAN technologies */ #define CISTPL_LAN_TECH_ARCNET 0x01 #define CISTPL_LAN_TECH_ETHERNET 0x02 #define CISTPL_LAN_TECH_TOKENRING 0x03 #define CISTPL_LAN_TECH_LOCALTALK 0x04 #define CISTPL_LAN_TECH_FDDI 0x05 #define CISTPL_LAN_TECH_ATM 0x06 #define CISTPL_LAN_TECH_WIRELESS 0x07 typedef struct cistpl_lan_tech_t { u_char tech; } cistpl_lan_tech_t; typedef struct cistpl_lan_speed_t { u_int speed; } cistpl_lan_speed_t; /* LAN media definitions */ #define CISTPL_LAN_MEDIA_UTP 0x01 #define CISTPL_LAN_MEDIA_STP 0x02 #define CISTPL_LAN_MEDIA_THIN_COAX 0x03 #define CISTPL_LAN_MEDIA_THICK_COAX 0x04 #define CISTPL_LAN_MEDIA_FIBER 0x05 #define CISTPL_LAN_MEDIA_900MHZ 0x06 #define CISTPL_LAN_MEDIA_2GHZ 0x07 #define CISTPL_LAN_MEDIA_5GHZ 0x08 #define CISTPL_LAN_MEDIA_DIFF_IR 0x09 #define CISTPL_LAN_MEDIA_PTP_IR 0x0a typedef struct cistpl_lan_media_t { u_char media; } cistpl_lan_media_t; typedef struct cistpl_lan_node_id_t { u_char nb; u_char id[16]; } cistpl_lan_node_id_t; typedef struct cistpl_lan_connector_t { u_char code; } cistpl_lan_connector_t; /*====================================================================== IDE Function Extension Tuples ======================================================================*/ #define CISTPL_IDE_INTERFACE 0x01 typedef struct cistpl_ide_interface_t { u_char interface; } cistpl_ide_interface_t; /* First feature byte */ #define CISTPL_IDE_SILICON 0x04 #define CISTPL_IDE_UNIQUE 0x08 #define CISTPL_IDE_DUAL 0x10 /* Second feature byte */ #define CISTPL_IDE_HAS_SLEEP 0x01 #define CISTPL_IDE_HAS_STANDBY 0x02 #define CISTPL_IDE_HAS_IDLE 0x04 #define CISTPL_IDE_LOW_POWER 0x08 #define CISTPL_IDE_REG_INHIBIT 0x10 #define CISTPL_IDE_HAS_INDEX 0x20 #define CISTPL_IDE_IOIS16 0x40 typedef struct cistpl_ide_feature_t { u_char feature1; u_char feature2; } cistpl_ide_feature_t; #define CISTPL_FUNCE_IDE_IFACE 0x01 #define CISTPL_FUNCE_IDE_MASTER 0x02 #define CISTPL_FUNCE_IDE_SLAVE 0x03 /*====================================================================== Configuration Table Entries ======================================================================*/ #define CISTPL_BAR_SPACE 0x07 #define CISTPL_BAR_SPACE_IO 0x10 #define CISTPL_BAR_PREFETCH 0x20 #define CISTPL_BAR_CACHEABLE 0x40 #define CISTPL_BAR_1MEG_MAP 0x80 typedef struct cistpl_bar_t { u_char attr; u_int size; } cistpl_bar_t; typedef struct cistpl_config_t { u_char last_idx; u_int base; u_int rmask[4]; u_char subtuples; } cistpl_config_t; /* These are bits in the 'present' field, and indices in 'param' */ #define CISTPL_POWER_VNOM 0 #define CISTPL_POWER_VMIN 1 #define CISTPL_POWER_VMAX 2 #define CISTPL_POWER_ISTATIC 3 #define CISTPL_POWER_IAVG 4 #define CISTPL_POWER_IPEAK 5 #define CISTPL_POWER_IDOWN 6 #define CISTPL_POWER_HIGHZ_OK 0x01 #define CISTPL_POWER_HIGHZ_REQ 0x02 typedef struct cistpl_power_t { u_char present; u_char flags; u_int param[7]; } cistpl_power_t; typedef struct cistpl_timing_t { u_int wait, waitscale; u_int ready, rdyscale; u_int reserved, rsvscale; } cistpl_timing_t; #define CISTPL_IO_LINES_MASK 0x1f #define CISTPL_IO_8BIT 0x20 #define CISTPL_IO_16BIT 0x40 #define CISTPL_IO_RANGE 0x80 #define CISTPL_IO_MAX_WIN 16 typedef struct cistpl_io_t { u_char flags; u_char nwin; struct { u_int base; u_int len; } win[CISTPL_IO_MAX_WIN]; } cistpl_io_t; typedef struct cistpl_irq_t { u_int IRQInfo1; u_int IRQInfo2; } cistpl_irq_t; #define CISTPL_MEM_MAX_WIN 8 typedef struct cistpl_mem_t { u_char flags; u_char nwin; struct { u_int len; u_int card_addr; u_int host_addr; } win[CISTPL_MEM_MAX_WIN]; } cistpl_mem_t; #define CISTPL_CFTABLE_DEFAULT 0x0001 #define CISTPL_CFTABLE_BVDS 0x0002 #define CISTPL_CFTABLE_WP 0x0004 #define CISTPL_CFTABLE_RDYBSY 0x0008 #define CISTPL_CFTABLE_MWAIT 0x0010 #define CISTPL_CFTABLE_AUDIO 0x0800 #define CISTPL_CFTABLE_READONLY 0x1000 #define CISTPL_CFTABLE_PWRDOWN 0x2000 typedef struct cistpl_cftable_entry_t { u_char index; u_short flags; u_char interface; cistpl_power_t vcc, vpp1, vpp2; cistpl_timing_t timing; cistpl_io_t io; cistpl_irq_t irq; cistpl_mem_t mem; u_char subtuples; } cistpl_cftable_entry_t; #define CISTPL_CFTABLE_MASTER 0x000100 #define CISTPL_CFTABLE_INVALIDATE 0x000200 #define CISTPL_CFTABLE_VGA_PALETTE 0x000400 #define CISTPL_CFTABLE_PARITY 0x000800 #define CISTPL_CFTABLE_WAIT 0x001000 #define CISTPL_CFTABLE_SERR 0x002000 #define CISTPL_CFTABLE_FAST_BACK 0x004000 #define CISTPL_CFTABLE_BINARY_AUDIO 0x010000 #define CISTPL_CFTABLE_PWM_AUDIO 0x020000 typedef struct cistpl_cftable_entry_cb_t { u_char index; u_int flags; cistpl_power_t vcc, vpp1, vpp2; u_char io; cistpl_irq_t irq; u_char mem; u_char subtuples; } cistpl_cftable_entry_cb_t; typedef struct cistpl_device_geo_t { u_char ngeo; struct { u_char buswidth; u_int erase_block; u_int read_block; u_int write_block; u_int partition; u_int interleave; } geo[CISTPL_MAX_DEVICES]; } cistpl_device_geo_t; typedef struct cistpl_vers_2_t { u_char vers; u_char comply; u_short dindex; u_char vspec8, vspec9; u_char nhdr; u_char vendor, info; char str[244]; } cistpl_vers_2_t; typedef struct cistpl_org_t { u_char data_org; char desc[30]; } cistpl_org_t; #define CISTPL_ORG_FS 0x00 #define CISTPL_ORG_APPSPEC 0x01 #define CISTPL_ORG_XIP 0x02 typedef struct cistpl_format_t { u_char type; u_char edc; u_int offset; u_int length; } cistpl_format_t; #define CISTPL_FORMAT_DISK 0x00 #define CISTPL_FORMAT_MEM 0x01 #define CISTPL_EDC_NONE 0x00 #define CISTPL_EDC_CKSUM 0x01 #define CISTPL_EDC_CRC 0x02 #define CISTPL_EDC_PCC 0x03 typedef union cisparse_t { cistpl_device_t device; cistpl_checksum_t checksum; cistpl_longlink_t longlink; cistpl_longlink_mfc_t longlink_mfc; cistpl_vers_1_t version_1; cistpl_altstr_t altstr; cistpl_jedec_t jedec; cistpl_manfid_t manfid; cistpl_funcid_t funcid; cistpl_funce_t funce; cistpl_bar_t bar; cistpl_config_t config; cistpl_cftable_entry_t cftable_entry; cistpl_cftable_entry_cb_t cftable_entry_cb; cistpl_device_geo_t device_geo; cistpl_vers_2_t vers_2; cistpl_org_t org; cistpl_format_t format; } cisparse_t; typedef struct tuple_t { u_int Attributes; cisdata_t DesiredTuple; u_int Flags; /* internal use */ u_int LinkOffset; /* internal use */ u_int CISOffset; /* internal use */ cisdata_t TupleCode; cisdata_t TupleLink; cisdata_t TupleOffset; cisdata_t TupleDataMax; cisdata_t TupleDataLen; cisdata_t *TupleData; } tuple_t; /* Special cisdata_t value */ #define RETURN_FIRST_TUPLE 0xff /* Attributes for tuple calls */ #define TUPLE_RETURN_LINK 0x01 #define TUPLE_RETURN_COMMON 0x02 #define CISTPL_MAX_CIS_SIZE 0x200 #endif /* LINUX_CISTPL_H */ Kconfig 0000644 00000001375 14722071502 0006055 0 ustar 00 # SPDX-License-Identifier: GPL-2.0-only # ALSA PCMCIA drivers menuconfig SND_PCMCIA bool "PCMCIA sound devices" depends on PCMCIA default y help Support for sound devices connected via the PCMCIA bus. if SND_PCMCIA && PCMCIA config SND_VXPOCKET tristate "Digigram VXpocket" select SND_VX_LIB help Say Y here to include support for Digigram VXpocket and VXpocket 440 soundcards. To compile this driver as a module, choose M here: the module will be called snd-vxpocket. config SND_PDAUDIOCF tristate "Sound Core PDAudioCF" select SND_PCM help Say Y here to include support for Sound Core PDAudioCF soundcards. To compile this driver as a module, choose M here: the module will be called snd-pdaudiocf. endif # SND_PCMCIA Makefile 0000644 00000000227 14722071502 0006205 0 ustar 00 # SPDX-License-Identifier: GPL-2.0 CC := $(CROSS_COMPILE)gcc CFLAGS := -I../../usr/include PROGS := crc32hash all: $(PROGS) clean: rm -fr $(PROGS) pdaudiocf/Makefile 0000644 00000000375 14722071516 0010154 0 ustar 00 # SPDX-License-Identifier: GPL-2.0-only # # Makefile for ALSA # Copyright (c) 2004 by Jaroslav Kysela <perex@perex.cz> # snd-pdaudiocf-objs := pdaudiocf.o pdaudiocf_core.o pdaudiocf_irq.o pdaudiocf_pcm.o obj-$(CONFIG_SND_PDAUDIOCF) += snd-pdaudiocf.o vx/Makefile 0000644 00000000336 14722071516 0006650 0 ustar 00 # SPDX-License-Identifier: GPL-2.0-only # # Makefile for ALSA # Copyright (c) 2001 by Jaroslav Kysela <perex@perex.cz> # snd-vxpocket-objs := vxpocket.o vxp_ops.o vxp_mixer.o obj-$(CONFIG_SND_VXPOCKET) += snd-vxpocket.o
| ver. 1.4 |
Github
|
.
| PHP 7.4.3-4ubuntu2.24 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка