diff options
Diffstat (limited to 'drivers/staging/unisys/visorutil/easyproc.h')
-rw-r--r-- | drivers/staging/unisys/visorutil/easyproc.h | 92 |
1 files changed, 92 insertions, 0 deletions
diff --git a/drivers/staging/unisys/visorutil/easyproc.h b/drivers/staging/unisys/visorutil/easyproc.h new file mode 100644 index 000000000000..1cef1fd33d53 --- /dev/null +++ b/drivers/staging/unisys/visorutil/easyproc.h @@ -0,0 +1,92 @@ +/* easyproc.h + * + * Copyright © 2010 - 2013 UNISYS CORPORATION + * All rights reserved. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 2 of the License, or (at + * your option) any later version. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE, GOOD TITLE or + * NON INFRINGEMENT. See the GNU General Public License for more + * details. + */ + +/** @file ********************************************************************* + * + * This describes the interfaces necessary for a simple /proc file + * implementation for a driver. + * + ****************************************************************************** + */ + +#ifndef __EASYPROC_H__ +#define __EASYPROC_H__ + +#include "timskmod.h" + + +struct easyproc_driver_info { + struct proc_dir_entry *ProcDir; + struct proc_dir_entry *ProcDriverDir; + struct proc_dir_entry *ProcDriverDiagFile; + struct proc_dir_entry *ProcDeviceDir; + char *ProcId; + void (*Show_device_info)(struct seq_file *seq, void *p); + void (*Show_driver_info)(struct seq_file *seq); + void (*Write_device_info)(char *buf, size_t count, + loff_t *ppos, void *p); + void (*Write_driver_info)(char *buf, size_t count, loff_t *ppos); +}; + +/* property is a file under /proc/<x>/device/<x>/<property_name> */ +struct easyproc_device_property_info { + char property_name[25]; + struct proc_dir_entry *procEntry; + struct easyproc_driver_info *pdriver; + void *devdata; + void (*show_device_property_info)(struct seq_file *seq, void *p); +}; + +struct easyproc_device_info { + struct proc_dir_entry *procDevicexDir; + struct proc_dir_entry *procDevicexDiagFile; + struct easyproc_driver_info *pdriver; + void *devdata; + int devno; + /* allow for a number of custom properties for each device: */ + struct easyproc_device_property_info device_property_info[10]; +}; + +void visor_easyproc_InitDevice(struct easyproc_driver_info *pdriver, + struct easyproc_device_info *p, int devno, + void *devdata); +void visor_easyproc_DeInitDevice(struct easyproc_driver_info *pdriver, + struct easyproc_device_info *p, int devno); +void visor_easyproc_InitDriver(struct easyproc_driver_info *pdriver, + char *procId, + void (*show_driver_info)(struct seq_file *), + void (*show_device_info)(struct seq_file *, + void *)); +void visor_easyproc_InitDriverEx(struct easyproc_driver_info *pdriver, + char *procId, + void (*show_driver_info)(struct seq_file *), + void (*show_device_info)(struct seq_file *, + void *), + void (*Write_driver_info)(char *buf, + size_t count, + loff_t *ppos), + void (*Write_device_info)(char *buf, + size_t count, + loff_t *ppos, + void *p)); +void visor_easyproc_DeInitDriver(struct easyproc_driver_info *pdriver); +void visor_easyproc_CreateDeviceProperty(struct easyproc_device_info *p, + void (*show_property_info) + (struct seq_file *, void *), + char *property_name); + +#endif |