lkml.org 
[lkml]   [2007]   [Jan]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] seq_file conversion: APM on arm
    Compile-tested.

    Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
    ---

    arch/arm/kernel/apm.c | 28 +++++++++++++++++++++++-----
    1 file changed, 23 insertions(+), 5 deletions(-)

    --- a/arch/arm/kernel/apm.c
    +++ b/arch/arm/kernel/apm.c
    @@ -14,6 +14,7 @@ #include <linux/module.h>
    #include <linux/poll.h>
    #include <linux/slab.h>
    #include <linux/proc_fs.h>
    +#include <linux/seq_file.h>
    #include <linux/miscdevice.h>
    #include <linux/apm_bios.h>
    #include <linux/capability.h>
    @@ -501,11 +502,10 @@ #ifdef CONFIG_PROC_FS
    * -1: Unknown
    * 8) min = minutes; sec = seconds
    */
    -static int apm_get_info(char *buf, char **start, off_t fpos, int length)
    +static int proc_apm_show(struct seq_file *m, void *v)
    {
    struct apm_power_info info;
    char *units;
    - int ret;

    info.ac_line_status = 0xff;
    info.battery_status = 0xff;
    @@ -523,14 +523,26 @@ static int apm_get_info(char *buf, char
    case 1: units = "sec"; break;
    }

    - ret = sprintf(buf, "%s 1.2 0x%02x 0x%02x 0x%02x 0x%02x %d%% %d %s\n",
    + seq_printf(m, "%s 1.2 0x%02x 0x%02x 0x%02x 0x%02x %d%% %d %s\n",
    driver_version, APM_32_BIT_SUPPORT,
    info.ac_line_status, info.battery_status,
    info.battery_flag, info.battery_life,
    info.time, units);
    + return 0;
    +}

    - return ret;
    +static int proc_apm_open(struct inode *inode, struct file *file)
    +{
    + return single_open(file, proc_apm_show, NULL);
    }
    +
    +static const struct file_operations proc_apm_fops = {
    + .owner = THIS_MODULE,
    + .open = proc_apm_open,
    + .read = seq_read,
    + .llseek = seq_lseek,
    + .release = single_release,
    +};
    #endif

    static int kapmd(void *arg)
    @@ -602,7 +614,13 @@ static int __init apm_init(void)
    wake_up_process(kapmd_tsk);

    #ifdef CONFIG_PROC_FS
    - create_proc_info_entry("apm", 0, NULL, apm_get_info);
    + {
    + struct proc_dir_entry *pde;
    +
    + pde = create_proc_entry("apm", 0, NULL);
    + if (pde)
    + pde->proc_fops = &proc_apm_fops;
    + }
    #endif

    ret = misc_register(&apm_device);
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2007-01-15 22:49    [W:0.023 / U:31.260 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site