Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / drivers / acpi / system.c
index 9919e76..e4308c7 100644 (file)
  */
 
 #include <linux/proc_fs.h>
+#include <linux/seq_file.h>
 #include <linux/init.h>
 #include <asm/uaccess.h>
 
 #include <acpi/acpi_drivers.h>
 
-
 #define _COMPONENT             ACPI_SYSTEM_COMPONENT
-ACPI_MODULE_NAME               ("acpi_system")
-
+ACPI_MODULE_NAME("acpi_system")
 #define ACPI_SYSTEM_CLASS              "system"
 #define ACPI_SYSTEM_DRIVER_NAME                "ACPI System Driver"
 #define ACPI_SYSTEM_DEVICE_NAME                "System"
@@ -40,59 +39,46 @@ ACPI_MODULE_NAME            ("acpi_system")
 #define ACPI_SYSTEM_FILE_EVENT         "event"
 #define ACPI_SYSTEM_FILE_DSDT          "dsdt"
 #define ACPI_SYSTEM_FILE_FADT          "fadt"
-
-extern FADT_DESCRIPTOR         acpi_fadt;
+extern FADT_DESCRIPTOR acpi_fadt;
 
 /* --------------------------------------------------------------------------
                               FS Interface (/proc)
    -------------------------------------------------------------------------- */
 
-static int
-acpi_system_read_info (
-       char                    *page,
-       char                    **start,
-       off_t                   off,
-       int                     count,
-       int                     *eof,
-       void                    *data)
+static int acpi_system_read_info(struct seq_file *seq, void *offset)
 {
-       char                    *p = page;
-       int                     size = 0;
-
        ACPI_FUNCTION_TRACE("acpi_system_read_info");
 
-       if (off != 0)
-               goto end;
-
-       p += sprintf(p, "version:                 %x\n", ACPI_CA_VERSION);
-
-end:
-       size = (p - page);
-       if (size <= off+count) *eof = 1;
-       *start = page + off;
-       size -= off;
-       if (size>count) size = count;
-       if (size<0) size = 0;
+       seq_printf(seq, "version:                 %x\n", ACPI_CA_VERSION);
+       return_VALUE(0);
+}
 
-       return_VALUE(size);
+static int acpi_system_info_open_fs(struct inode *inode, struct file *file)
+{
+       return single_open(file, acpi_system_read_info, PDE(inode)->data);
 }
 
-static ssize_t acpi_system_read_dsdt (struct file*, char __user *, size_t, loff_t*);
+static struct file_operations acpi_system_info_ops = {
+       .open = acpi_system_info_open_fs,
+       .read = seq_read,
+       .llseek = seq_lseek,
+       .release = single_release,
+};
+
+static ssize_t acpi_system_read_dsdt(struct file *, char __user *, size_t,
+                                    loff_t *);
 
 static struct file_operations acpi_system_dsdt_ops = {
-       .read =                 acpi_system_read_dsdt,
+       .read = acpi_system_read_dsdt,
 };
 
 static ssize_t
-acpi_system_read_dsdt (
-       struct file             *file,
-       char                    __user *buffer,
-       size_t                  count,
-       loff_t                  *ppos)
+acpi_system_read_dsdt(struct file *file,
+                     char __user * buffer, size_t count, loff_t * ppos)
 {
-       acpi_status             status = AE_OK;
-       struct acpi_buffer      dsdt = {ACPI_ALLOCATE_BUFFER, NULL};
-       ssize_t                 res;
+       acpi_status status = AE_OK;
+       struct acpi_buffer dsdt = { ACPI_ALLOCATE_BUFFER, NULL };
+       ssize_t res;
 
        ACPI_FUNCTION_TRACE("acpi_system_read_dsdt");
 
@@ -107,23 +93,20 @@ acpi_system_read_dsdt (
        return_VALUE(res);
 }
 
-
-static ssize_t acpi_system_read_fadt (struct file*, char __user *, size_t, loff_t*);
+static ssize_t acpi_system_read_fadt(struct file *, char __user *, size_t,
+                                    loff_t *);
 
 static struct file_operations acpi_system_fadt_ops = {
-       .read =                 acpi_system_read_fadt,
+       .read = acpi_system_read_fadt,
 };
 
 static ssize_t
-acpi_system_read_fadt (
-       struct file             *file,
-       char                    __user *buffer,
-       size_t                  count,
-       loff_t                  *ppos)
+acpi_system_read_fadt(struct file *file,
+                     char __user * buffer, size_t count, loff_t * ppos)
 {
-       acpi_status             status = AE_OK;
-       struct acpi_buffer      fadt = {ACPI_ALLOCATE_BUFFER, NULL};
-       ssize_t                 res;
+       acpi_status status = AE_OK;
+       struct acpi_buffer fadt = { ACPI_ALLOCATE_BUFFER, NULL };
+       ssize_t res;
 
        ACPI_FUNCTION_TRACE("acpi_system_read_fadt");
 
@@ -138,12 +121,11 @@ acpi_system_read_fadt (
        return_VALUE(res);
 }
 
-
-static int __init acpi_system_init (void)
+static int __init acpi_system_init(void)
 {
-       struct proc_dir_entry   *entry;
+       struct proc_dir_entry *entry;
        int error = 0;
-       char * name;
+       char *name;
 
        ACPI_FUNCTION_TRACE("acpi_system_init");
 
@@ -152,17 +134,19 @@ static int __init acpi_system_init (void)
 
        /* 'info' [R] */
        name = ACPI_SYSTEM_FILE_INFO;
-       entry = create_proc_read_entry(name,
-               S_IRUGO, acpi_root_dir, acpi_system_read_info,NULL);
+       entry = create_proc_entry(name, S_IRUGO, acpi_root_dir);
        if (!entry)
                goto Error;
+       else {
+               entry->proc_fops = &acpi_system_info_ops;
+       }
 
        /* 'dsdt' [R] */
        name = ACPI_SYSTEM_FILE_DSDT;
        entry = create_proc_entry(name, S_IRUSR, acpi_root_dir);
        if (entry)
                entry->proc_fops = &acpi_system_dsdt_ops;
-       else 
+       else
                goto Error;
 
        /* 'fadt' [R] */
@@ -173,12 +157,12 @@ static int __init acpi_system_init (void)
        else
                goto Error;
 
- Done:
     Done:
        return_VALUE(error);
 
- Error:
-       ACPI_DEBUG_PRINT((ACPI_DB_ERROR, 
-                        "Unable to create '%s' proc fs entry\n", name));
     Error:
+       ACPI_DEBUG_PRINT((ACPI_DB_ERROR,
+                         "Unable to create '%s' proc fs entry\n", name));
 
        remove_proc_entry(ACPI_SYSTEM_FILE_FADT, acpi_root_dir);
        remove_proc_entry(ACPI_SYSTEM_FILE_DSDT, acpi_root_dir);
@@ -188,5 +172,4 @@ static int __init acpi_system_init (void)
        goto Done;
 }
 
-
 subsys_initcall(acpi_system_init);