diff options
Diffstat (limited to 'include/uapi/linux')
| -rw-r--r-- | include/uapi/linux/toshiba.h | 32 |
1 files changed, 29 insertions, 3 deletions
diff --git a/include/uapi/linux/toshiba.h b/include/uapi/linux/toshiba.h index e9bef5b2f91e..c58bf4b5bb26 100644 --- a/include/uapi/linux/toshiba.h +++ b/include/uapi/linux/toshiba.h | |||
| @@ -1,6 +1,7 @@ | |||
| 1 | /* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops | 1 | /* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops |
| 2 | * | 2 | * |
| 3 | * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk) | 3 | * Copyright (c) 1996-2000 Jonathan A. Buzzard (jonathan@buzzard.org.uk) |
| 4 | * Copyright (c) 2015 Azael Avalos <coproscefalo@gmail.com> | ||
| 4 | * | 5 | * |
| 5 | * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers | 6 | * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers |
| 6 | * on making sure the structure is aligned and packed. | 7 | * on making sure the structure is aligned and packed. |
| @@ -20,9 +21,18 @@ | |||
| 20 | #ifndef _UAPI_LINUX_TOSHIBA_H | 21 | #ifndef _UAPI_LINUX_TOSHIBA_H |
| 21 | #define _UAPI_LINUX_TOSHIBA_H | 22 | #define _UAPI_LINUX_TOSHIBA_H |
| 22 | 23 | ||
| 23 | #define TOSH_PROC "/proc/toshiba" | 24 | /* |
| 24 | #define TOSH_DEVICE "/dev/toshiba" | 25 | * Toshiba modules paths |
| 25 | #define TOSH_SMM _IOWR('t', 0x90, int) /* broken: meant 24 bytes */ | 26 | */ |
| 27 | |||
| 28 | #define TOSH_PROC "/proc/toshiba" | ||
| 29 | #define TOSH_DEVICE "/dev/toshiba" | ||
| 30 | #define TOSHIBA_ACPI_PROC "/proc/acpi/toshiba" | ||
| 31 | #define TOSHIBA_ACPI_DEVICE "/dev/toshiba_acpi" | ||
| 32 | |||
| 33 | /* | ||
| 34 | * Toshiba SMM structure | ||
| 35 | */ | ||
| 26 | 36 | ||
| 27 | typedef struct { | 37 | typedef struct { |
| 28 | unsigned int eax; | 38 | unsigned int eax; |
| @@ -33,5 +43,21 @@ typedef struct { | |||
| 33 | unsigned int edi __attribute__ ((packed)); | 43 | unsigned int edi __attribute__ ((packed)); |
| 34 | } SMMRegisters; | 44 | } SMMRegisters; |
| 35 | 45 | ||
| 46 | /* | ||
| 47 | * IOCTLs (0x90 - 0x91) | ||
| 48 | */ | ||
| 49 | |||
| 50 | #define TOSH_SMM _IOWR('t', 0x90, SMMRegisters) | ||
| 51 | /* | ||
| 52 | * Convenience toshiba_acpi command. | ||
| 53 | * | ||
| 54 | * The System Configuration Interface (SCI) is opened/closed internally | ||
| 55 | * to avoid userspace of buggy BIOSes. | ||
| 56 | * | ||
| 57 | * The toshiba_acpi module checks whether the eax register is set with | ||
| 58 | * SCI_GET (0xf300) or SCI_SET (0xf400), returning -EINVAL if not. | ||
| 59 | */ | ||
| 60 | #define TOSHIBA_ACPI_SCI _IOWR('t', 0x91, SMMRegisters) | ||
| 61 | |||
| 36 | 62 | ||
| 37 | #endif /* _UAPI_LINUX_TOSHIBA_H */ | 63 | #endif /* _UAPI_LINUX_TOSHIBA_H */ |
