A linux kernel module that enables calls to ACPI methods through /proc/acpi/call. Now with support for Integer, String and Buffer parameters.
C
Pull request Compare This branch is 7 commits ahead, 22 commits behind mkottman:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.gitignore Ignore autogenerated files, don't hardcode name in Makefile Jan 31, 2012
Makefile
README
acpi_call.c Only log calls when debugging is enabled Oct 19, 2012

README

A kernel module that enables you to call ACPI methods by writing the method
name followed by arguments to /proc/acpi/call.

Usage:

    echo '<call>' | sudo tee /proc/acpi/call
You can then retrieve the result of the call by checking your dmesg or:

    sudo cat /proc/acpi/call

You can pass parameters to acpi_call by writing them after the method,
separated by single space. Currently, you can pass the following parameter
types:
* ACPI_INTEGER - by writing NNN or 0xNNN, where NNN is an integer/hex
* ACPI_STRING - by enclosing the string in quotes: "hello, world"
* ACPI_BUFFER - by writing bXXXX, where XXXX is a hex string without spaces,
                or by writing { b1, b2, b3, b4 }, where b1-4 are integers

The status after a call can be read back from /proc/acpi/call:
* 'not called' - nothing to report
* 'Error: <description>' - the call failed
* '0xNN' - the call succeeded, and returned an integer
* '"..."' - the call succeeded, and returned a string
* '{0xNN, ...}' - the call succeeded, and returned a buffer
* '[...]' - the call succeeded, and returned a package which may contain the
   above types (integer, string and buffer) and other package types


Copyright (c) 2010: Michal Kottman

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.