1 /* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops 2 * 3 * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan (at) buzzard.org.uk) 4 * 5 * Thanks to Juergen Heinzl <juergen (at) monocerus.demon.co.uk> for the pointers 6 * on making sure the structure is aligned and packed. 7 * 8 * This program is free software; you can redistribute it and/or modify it 9 * under the terms of the GNU General Public License as published by the 10 * Free Software Foundation; either version 2, or (at your option) any 11 * later version. 12 * 13 * This program is distributed in the hope that it will be useful, but 14 * WITHOUT ANY WARRANTY; without even the implied warranty of 15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 16 * General Public License for more details. 17 * 18 */ 19 20 #ifndef _LINUX_TOSHIBA_H 21 #define _LINUX_TOSHIBA_H 22 23 #define TOSH_PROC "/proc/toshiba" 24 #define TOSH_DEVICE "/dev/toshiba" 25 #define TOSH_SMM _IOWR('t', 0x90, int) /* broken: meant 24 bytes */ 26 27 typedef struct { 28 unsigned int eax; 29 unsigned int ebx __attribute__ ((packed)); 30 unsigned int ecx __attribute__ ((packed)); 31 unsigned int edx __attribute__ ((packed)); 32 unsigned int esi __attribute__ ((packed)); 33 unsigned int edi __attribute__ ((packed)); 34 } SMMRegisters; 35 36 int tosh_smm(SMMRegisters *regs); 37 38 #endif 39