1 /** 2 * @file me0900_di.h 3 * 4 * @brief ME-9x digital input subdevice class. 5 * @note Copyright (C) 2007 Meilhaus Electronic GmbH (support@meilhaus.de) 6 * @author Guenter Gebhardt 7 */ 8 9 /* 10 * Copyright (C) 2007 Meilhaus Electronic GmbH (support@meilhaus.de) 11 * 12 * This file is free software; you can redistribute it and/or modify 13 * it under the terms of the GNU General Public License as published by 14 * the Free Software Foundation; either version 2 of the License, or 15 * (at your option) any later version. 16 * 17 * This program is distributed in the hope that it will be useful, 18 * but WITHOUT ANY WARRANTY; without even the implied warranty of 19 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 20 * GNU General Public License for more details. 21 * 22 * You should have received a copy of the GNU General Public License 23 * along with this program; if not, write to the Free Software 24 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 25 */ 26 27 #ifndef _ME0900_DI_H_ 28 #define _ME0900_DI_H_ 29 30 #include "mesubdevice.h" 31 32 #ifdef __KERNEL__ 33 34 /** 35 * @brief The template subdevice class. 36 */ 37 typedef struct me0900_di_subdevice { 38 /* Inheritance */ 39 me_subdevice_t base; /**< The subdevice base class. */ 40 41 /* Attributes */ 42 spinlock_t subdevice_lock; /**< Spin lock to protect the subdevice from concurrent access. */ 43 44 unsigned int di_idx; 45 46 unsigned long ctrl_reg; 47 unsigned long port_reg; 48 #ifdef MEDEBUG_DEBUG_REG 49 unsigned long reg_base; 50 #endif 51 } me0900_di_subdevice_t; 52 53 /** 54 * @brief The constructor to generate a ME-9x digital input subdevice instance. 55 * 56 * @param reg_base The register base address of the device as returned by the PCI BIOS. 57 * 58 * @return Pointer to new instance on success.\n 59 * NULL on error. 60 */ 61 me0900_di_subdevice_t *me0900_di_constructor(uint32_t me0900_reg_base, 62 unsigned int di_idx); 63 64 #endif 65 #endif 66