public inbox for linux-acpi@vger.kernel.org
 help / color / mirror / Atom feed
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!

  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