aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux
diff options
context:
space:
mode:
authorAlexey Dobriyan <adobriyan@gmail.com>2009-09-01 20:52:57 -0400
committerDavid S. Miller <davem@davemloft.net>2009-09-01 20:52:57 -0400
commit6d703a81ad5fdd102334751ddacb053ecc6ff046 (patch)
tree1bebde3a0c34677296dc4784e800445ea02b4f0a /include/linux
parent76fbebfbb593bd66780db0a808afe1d21c7ff6d6 (diff)
ide: convert to ->proc_fops
->read_proc, ->write_proc are going away, ->proc_fops should be used instead. The only tricky place is IDENTIFY handling: if for some reason taskfile_lib_get_identify() fails, buffer _is_ changed and at least first byte is overwritten. Emulate old behaviour with returning that first byte to userspace and reporting length=1 despite overall -E. Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include/linux')
-rw-r--r--include/linux/ide.h24
1 files changed, 3 insertions, 21 deletions
diff --git a/include/linux/ide.h b/include/linux/ide.h
index 803c1ae31237..e4135d6e0556 100644
--- a/include/linux/ide.h
+++ b/include/linux/ide.h
@@ -919,8 +919,7 @@ __IDE_PROC_DEVSET(_name, _min, _max, NULL, NULL)
919typedef struct { 919typedef struct {
920 const char *name; 920 const char *name;
921 mode_t mode; 921 mode_t mode;
922 read_proc_t *read_proc; 922 const struct file_operations *proc_fops;
923 write_proc_t *write_proc;
924} ide_proc_entry_t; 923} ide_proc_entry_t;
925 924
926void proc_ide_create(void); 925void proc_ide_create(void);
@@ -932,24 +931,8 @@ void ide_proc_unregister_port(ide_hwif_t *);
932void ide_proc_register_driver(ide_drive_t *, struct ide_driver *); 931void ide_proc_register_driver(ide_drive_t *, struct ide_driver *);
933void ide_proc_unregister_driver(ide_drive_t *, struct ide_driver *); 932void ide_proc_unregister_driver(ide_drive_t *, struct ide_driver *);
934 933
935read_proc_t proc_ide_read_capacity; 934extern const struct file_operations ide_capacity_proc_fops;
936read_proc_t proc_ide_read_geometry; 935extern const struct file_operations ide_geometry_proc_fops;
937
938/*
939 * Standard exit stuff:
940 */
941#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) \
942{ \
943 len -= off; \
944 if (len < count) { \
945 *eof = 1; \
946 if (len <= 0) \
947 return 0; \
948 } else \
949 len = count; \
950 *start = page + off; \
951 return len; \
952}
953#else 936#else
954static inline void proc_ide_create(void) { ; } 937static inline void proc_ide_create(void) { ; }
955static inline void proc_ide_destroy(void) { ; } 938static inline void proc_ide_destroy(void) { ; }
@@ -961,7 +944,6 @@ static inline void ide_proc_register_driver(ide_drive_t *drive,
961 struct ide_driver *driver) { ; } 944 struct ide_driver *driver) { ; }
962static inline void ide_proc_unregister_driver(ide_drive_t *drive, 945static inline void ide_proc_unregister_driver(ide_drive_t *drive,
963 struct ide_driver *driver) { ; } 946 struct ide_driver *driver) { ; }
964#define PROC_IDE_READ_RETURN(page,start,off,count,eof,len) return 0;
965#endif 947#endif
966 948
967enum { 949enum {