1dbd91184SFrançois Tigeot /* 29f4ca867SFrançois Tigeot * Copyright (c) 2015-2016 François Tigeot 3dbd91184SFrançois Tigeot * All rights reserved. 4dbd91184SFrançois Tigeot * 5dbd91184SFrançois Tigeot * Redistribution and use in source and binary forms, with or without 6dbd91184SFrançois Tigeot * modification, are permitted provided that the following conditions 7dbd91184SFrançois Tigeot * are met: 8dbd91184SFrançois Tigeot * 1. Redistributions of source code must retain the above copyright 9dbd91184SFrançois Tigeot * notice unmodified, this list of conditions, and the following 10dbd91184SFrançois Tigeot * disclaimer. 11dbd91184SFrançois Tigeot * 2. Redistributions in binary form must reproduce the above copyright 12dbd91184SFrançois Tigeot * notice, this list of conditions and the following disclaimer in the 13dbd91184SFrançois Tigeot * documentation and/or other materials provided with the distribution. 14dbd91184SFrançois Tigeot * 15dbd91184SFrançois Tigeot * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16dbd91184SFrançois Tigeot * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17dbd91184SFrançois Tigeot * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18dbd91184SFrançois Tigeot * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19dbd91184SFrançois Tigeot * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20dbd91184SFrançois Tigeot * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21dbd91184SFrançois Tigeot * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22dbd91184SFrançois Tigeot * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23dbd91184SFrançois Tigeot * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24dbd91184SFrançois Tigeot * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25dbd91184SFrançois Tigeot */ 26dbd91184SFrançois Tigeot 27dbd91184SFrançois Tigeot #ifndef _LINUX_MOD_DEVICETABLE_H_ 28dbd91184SFrançois Tigeot #define _LINUX_MOD_DEVICETABLE_H_ 29dbd91184SFrançois Tigeot 3082437db0SFrançois Tigeot #include <linux/types.h> 31*3f2dd94aSFrançois Tigeot #include <linux/uuid.h> 32*3f2dd94aSFrançois Tigeot 3382437db0SFrançois Tigeot typedef unsigned long kernel_ulong_t; 3482437db0SFrançois Tigeot 359f4ca867SFrançois Tigeot #define I2C_NAME_SIZE 20 369f4ca867SFrançois Tigeot 37dbd91184SFrançois Tigeot #define DMI_MATCH(a, b) {(a), (b)} 38dbd91184SFrançois Tigeot #define DMI_EXACT_MATCH(a, b) {(a), (b)} 39dbd91184SFrançois Tigeot 40be348e9fSFrançois Tigeot struct dmi_strmatch { 41be348e9fSFrançois Tigeot unsigned char slot; 42be348e9fSFrançois Tigeot char substr[79]; 43be348e9fSFrançois Tigeot }; 44be348e9fSFrançois Tigeot 45be348e9fSFrançois Tigeot struct dmi_system_id { 46be348e9fSFrançois Tigeot int (*callback)(const struct dmi_system_id *); 47be348e9fSFrançois Tigeot const char *ident; 48be348e9fSFrançois Tigeot struct dmi_strmatch matches[4]; 49be348e9fSFrançois Tigeot }; 50be348e9fSFrançois Tigeot 51be348e9fSFrançois Tigeot int dmi_check_system(const struct dmi_system_id *); 52be348e9fSFrançois Tigeot 53dbd91184SFrançois Tigeot #endif /* _LINUX_MOD_DEVICETABLE_H_ */ 54