linux-headers (unknown)

(root)/
include/
linux/
toshiba.h
       1  /* SPDX-License-Identifier: GPL-2.0+ WITH Linux-syscall-note */
       2  /* toshiba.h -- Linux driver for accessing the SMM on Toshiba laptops 
       3   *
       4   * Copyright (c) 1996-2000  Jonathan A. Buzzard (jonathan@buzzard.org.uk)
       5   * Copyright (c) 2015  Azael Avalos <coproscefalo@gmail.com>
       6   *
       7   * Thanks to Juergen Heinzl <juergen@monocerus.demon.co.uk> for the pointers
       8   * on making sure the structure is aligned and packed.
       9   *
      10   * This program is free software; you can redistribute it and/or modify it
      11   * under the terms of the GNU General Public License as published by the
      12   * Free Software Foundation; either version 2, or (at your option) any
      13   * later version.
      14   *
      15   * This program is distributed in the hope that it will be useful, but
      16   * WITHOUT ANY WARRANTY; without even the implied warranty of
      17   * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      18   * General Public License for more details.
      19   *
      20   */
      21  
      22  #ifndef _LINUX_TOSHIBA_H
      23  #define _LINUX_TOSHIBA_H
      24  
      25  /*
      26   * Toshiba modules paths
      27   */
      28  
      29  #define TOSH_PROC		"/proc/toshiba"
      30  #define TOSH_DEVICE		"/dev/toshiba"
      31  #define TOSHIBA_ACPI_PROC	"/proc/acpi/toshiba"
      32  #define TOSHIBA_ACPI_DEVICE	"/dev/toshiba_acpi"
      33  
      34  /*
      35   * Toshiba SMM structure
      36   */
      37  
      38  typedef struct {
      39  	unsigned int eax;
      40  	unsigned int ebx __attribute__ ((packed));
      41  	unsigned int ecx __attribute__ ((packed));
      42  	unsigned int edx __attribute__ ((packed));
      43  	unsigned int esi __attribute__ ((packed));
      44  	unsigned int edi __attribute__ ((packed));
      45  } SMMRegisters;
      46  
      47  /*
      48   * IOCTLs (0x90 - 0x91)
      49   */
      50  
      51  #define TOSH_SMM		_IOWR('t', 0x90, SMMRegisters)
      52  /*
      53   * Convenience toshiba_acpi command.
      54   *
      55   * The System Configuration Interface (SCI) is opened/closed internally
      56   * to avoid userspace of buggy BIOSes.
      57   *
      58   * The toshiba_acpi module checks whether the eax register is set with
      59   * SCI_GET (0xf300) or SCI_SET (0xf400), returning -EINVAL if not.
      60   */
      61  #define TOSHIBA_ACPI_SCI	_IOWR('t', 0x91, SMMRegisters)
      62  
      63  
      64  #endif /* _LINUX_TOSHIBA_H */