X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Facpi%2Fsystem.c;h=d86dcb3c236601347689ee5307a7da42bc4bed38;hb=97bf2856c6014879bd04983a3e9dfcdac1e7fe85;hp=9919e76d7d49ccde3585b14a1263ec0d0e5b5758;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/drivers/acpi/system.c b/drivers/acpi/system.c index 9919e76d7..d86dcb3c2 100644 --- a/drivers/acpi/system.c +++ b/drivers/acpi/system.c @@ -24,15 +24,14 @@ */ #include +#include #include #include #include - #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,129 +39,110 @@ 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 struct 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 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 const 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, +static const struct file_operations acpi_system_dsdt_ops = { + .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"); - status = acpi_get_table(ACPI_TABLE_DSDT, 1, &dsdt); + status = acpi_get_table(ACPI_TABLE_ID_DSDT, 1, &dsdt); if (ACPI_FAILURE(status)) - return_VALUE(-ENODEV); + return -ENODEV; res = simple_read_from_buffer(buffer, count, ppos, dsdt.pointer, dsdt.length); - acpi_os_free(dsdt.pointer); + kfree(dsdt.pointer); - return_VALUE(res); + return 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, +static const struct file_operations acpi_system_fadt_ops = { + .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"); - status = acpi_get_table(ACPI_TABLE_FADT, 1, &fadt); + status = acpi_get_table(ACPI_TABLE_ID_FADT, 1, &fadt); if (ACPI_FAILURE(status)) - return_VALUE(-ENODEV); + return -ENODEV; res = simple_read_from_buffer(buffer, count, ppos, fadt.pointer, fadt.length); - acpi_os_free(fadt.pointer); + kfree(fadt.pointer); - return_VALUE(res); + return 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"); if (acpi_disabled) - return_VALUE(0); + return 0; /* '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,13 +153,10 @@ static int __init acpi_system_init (void) else goto Error; - Done: - return_VALUE(error); - - Error: - ACPI_DEBUG_PRINT((ACPI_DB_ERROR, - "Unable to create '%s' proc fs entry\n", name)); + Done: + return error; + Error: remove_proc_entry(ACPI_SYSTEM_FILE_FADT, acpi_root_dir); remove_proc_entry(ACPI_SYSTEM_FILE_DSDT, acpi_root_dir); remove_proc_entry(ACPI_SYSTEM_FILE_INFO, acpi_root_dir); @@ -188,5 +165,4 @@ static int __init acpi_system_init (void) goto Done; } - subsys_initcall(acpi_system_init);