From: Pavel Machek <pavel@ucw.cz>
To: Alex Williamson <alex.williamson@hp.com>
Cc: acpi-devel <acpi-devel@lists.sourceforge.net>,
linux-kernel <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH/RFC] exposing ACPI objects in sysfs
Date: Tue, 21 Sep 2004 19:26:25 +0200 [thread overview]
Message-ID: <20040921172625.GA30425@elf.ucw.cz> (raw)
In-Reply-To: <1095785315.6307.6.camel@tdi>
Hi!
> + Evaluating the first 4 bytes of the return buffer shows this is an
> +ACPI_TYPE_STRING structure. Using the string entry from the union, the
> +next 4 bytes provides the length of the string (0x14 = 20 bytes). Finally,
> +this data type uses a pointer to a buffer to provide the actual data. As
> +seen in the output, the 8 byte pointer value (ia64 system) has been replaced
> +by a buffer offset. Therefore, the 20 byte char array starts at offset
> +0x18 in the buffer.
> +
> + The return value for commands is dependent on the command issued.
> +The version command returns an acpi_object to facilitate synchronizing
> +the size of a union acpi_object between kernel and user space. The type
> +commands simple return an acpi_object_type value. Current available
> +commands include:
> +
> +/* Get version, returned in union acpi_object (integer) struct */
> +#define VERSION 0x0
> +/* Get the type of the object (Integer, String, Method, etc...) */
> +#define GET_TYPE 0x1
> +/* Get the type of the parent to the object (Device, Processor, etc...) */
> +#define GET_PTYPE 0x2
> +
> + Commands are issued by writing the following data structure to the ACPI
> +object file:
> +
> +struct special_cmd {
> + u32 magic;
> + unsigned int cmd;
> + char *args;
> +};
Talk to Andi Kleen; passing such structures using read/write is evil,
because (unlike ioctl) there's no place to put 32/64bit
translation. Imagine i386 application running on x86-64 system.
> + NOTE: ACPI methods have a purpose. Randomly calling methods without
> +knowing their side-effects will undoubtedly cause problems. ACPI objects
> +like _HID, _CID, _ADR, _SUN, _UID, _STA, _BBN should always be safe to
> +evaluate. These simply return data about the object. Methods like
> +_ON_, _OFF_, _S5_, etc... are meant to cause a change in the system and
> +can cause problems. The ACPI sysfs module makes an attempt to hide some
> +of the more dangerous interfaces, but it not fool-proof. DO NOT randomly
> +read files in the ACPI namespace unless you know what they do.
Hmm, reading file causing side-effects is not nice, either. I can see
some backup tools doing that by mistake. Heh, even I might want to
backup my system with tar, and it should not screw my system too badly
if I forgot --exclude /sys...
Perhaps ioctl is really right thing to use here? read() should not
have side effects and it solves 32/64 bit problems.
Pavel
--
People were complaining that M$ turns users into beta-testers...
...jr ghea gurz vagb qrirybcref, naq gurl frrz gb yvxr vg gung jnl!
next prev parent reply other threads:[~2004-09-21 17:26 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-09-20 21:41 [PATCH/RFC] exposing ACPI objects in sysfs Alex Williamson
2004-09-21 12:24 ` Pavel Machek
2004-09-21 14:18 ` Alex Williamson
2004-09-21 16:48 ` Alex Williamson
2004-09-21 17:26 ` Pavel Machek [this message]
2004-09-21 18:00 ` Alex Williamson
2004-09-21 19:31 ` Pavel Machek
2004-09-21 19:06 ` [ACPI] " Andi Kleen
2004-09-21 19:13 ` Alex Williamson
2004-09-21 19:18 ` Andi Kleen
2004-09-21 19:45 ` Alex Williamson
2004-09-21 19:58 ` Pavel Machek
2004-09-21 20:40 ` Alex Williamson
2004-09-21 21:02 ` Pavel Machek
[not found] ` <20040921210218.GJ30425-I/5MKhXcvmPrBKCeMvbIDA@public.gmane.org>
2004-10-15 22:39 ` Alex Williamson
2004-10-26 20:55 ` [RFC] dev_acpi: support for userspace access to acpi Alex Williamson
2004-09-21 19:21 ` [ACPI] Re: [PATCH/RFC] exposing ACPI objects in sysfs Arjan van de Ven
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20040921172625.GA30425@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=acpi-devel@lists.sourceforge.net \
--cc=alex.williamson@hp.com \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox