blob: 38c60234e55755fd1c8169025a6929d491bd9c8e [file] [log] [blame]
The Android Open Source Project1dc9e472009-03-03 19:28:35 -08001/****************************************************************************
2 ****************************************************************************
3 ***
4 *** This header was automatically generated from a Linux kernel header
5 *** of the same name, to make information necessary for userspace to
6 *** call into the kernel available to libc. It contains only constants,
7 *** structures, and macros generated from the original header, and thus,
8 *** contains no copyrightable information.
9 ***
Ben Cheng94a85f62012-03-06 15:45:52 -080010 *** To edit the content of this header, modify the corresponding
11 *** source file (e.g. under external/kernel-headers/original/) then
12 *** run bionic/libc/kernel/tools/update_all.py
13 ***
14 *** Any manual change here will be lost the next time this script will
15 *** be run. You've been warned!
16 ***
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080017 ****************************************************************************
18 ****************************************************************************/
19#ifndef _LINUX_ELEVATOR_H
20#define _LINUX_ELEVATOR_H
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080021typedef int (elevator_merge_fn) (request_queue_t *, struct request **,
22 struct bio *);
Ben Cheng94a85f62012-03-06 15:45:52 -080023/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080024typedef void (elevator_merge_req_fn) (request_queue_t *, struct request *, struct request *);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080025typedef void (elevator_merged_fn) (request_queue_t *, struct request *);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080026typedef int (elevator_dispatch_fn) (request_queue_t *, int);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080027typedef void (elevator_add_req_fn) (request_queue_t *, struct request *);
Ben Cheng94a85f62012-03-06 15:45:52 -080028/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080029typedef int (elevator_queue_empty_fn) (request_queue_t *);
30typedef struct request *(elevator_request_list_fn) (request_queue_t *, struct request *);
31typedef void (elevator_completed_req_fn) (request_queue_t *, struct request *);
32typedef int (elevator_may_queue_fn) (request_queue_t *, int, struct bio *);
Ben Cheng94a85f62012-03-06 15:45:52 -080033/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080034typedef int (elevator_set_req_fn) (request_queue_t *, struct request *, struct bio *, gfp_t);
35typedef void (elevator_put_req_fn) (request_queue_t *, struct request *);
36typedef void (elevator_activate_req_fn) (request_queue_t *, struct request *);
37typedef void (elevator_deactivate_req_fn) (request_queue_t *, struct request *);
Ben Cheng94a85f62012-03-06 15:45:52 -080038/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080039typedef void *(elevator_init_fn) (request_queue_t *, elevator_t *);
40typedef void (elevator_exit_fn) (elevator_t *);
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080041struct elevator_ops
42{
Ben Cheng94a85f62012-03-06 15:45:52 -080043/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080044 elevator_merge_fn *elevator_merge_fn;
45 elevator_merged_fn *elevator_merged_fn;
46 elevator_merge_req_fn *elevator_merge_req_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080047 elevator_dispatch_fn *elevator_dispatch_fn;
Ben Cheng94a85f62012-03-06 15:45:52 -080048/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080049 elevator_add_req_fn *elevator_add_req_fn;
50 elevator_activate_req_fn *elevator_activate_req_fn;
51 elevator_deactivate_req_fn *elevator_deactivate_req_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080052 elevator_queue_empty_fn *elevator_queue_empty_fn;
Ben Cheng94a85f62012-03-06 15:45:52 -080053/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080054 elevator_completed_req_fn *elevator_completed_req_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080055 elevator_request_list_fn *elevator_former_req_fn;
56 elevator_request_list_fn *elevator_latter_req_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080057 elevator_set_req_fn *elevator_set_req_fn;
Ben Cheng94a85f62012-03-06 15:45:52 -080058/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080059 elevator_put_req_fn *elevator_put_req_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080060 elevator_may_queue_fn *elevator_may_queue_fn;
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080061 elevator_init_fn *elevator_init_fn;
62 elevator_exit_fn *elevator_exit_fn;
Ben Cheng94a85f62012-03-06 15:45:52 -080063/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080064 void (*trim)(struct io_context *);
65};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080066#define ELV_NAME_MAX (16)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080067struct elv_fs_entry {
Ben Cheng94a85f62012-03-06 15:45:52 -080068/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080069 struct attribute attr;
70 ssize_t (*show)(elevator_t *, char *);
71 ssize_t (*store)(elevator_t *, const char *, size_t);
72};
Ben Cheng94a85f62012-03-06 15:45:52 -080073/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080074struct elevator_type
75{
76 struct list_head list;
77 struct elevator_ops ops;
Ben Cheng94a85f62012-03-06 15:45:52 -080078/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080079 struct elevator_type *elevator_type;
80 struct elv_fs_entry *elevator_attrs;
81 char elevator_name[ELV_NAME_MAX];
82 struct module *elevator_owner;
Ben Cheng94a85f62012-03-06 15:45:52 -080083/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080084};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080085struct elevator_queue
86{
87 struct elevator_ops *ops;
Ben Cheng94a85f62012-03-06 15:45:52 -080088/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080089 void *elevator_data;
90 struct kobject kobj;
91 struct elevator_type *elevator_type;
92 struct mutex sysfs_lock;
Ben Cheng94a85f62012-03-06 15:45:52 -080093/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080094};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080095#define ELEVATOR_NO_MERGE 0
96#define ELEVATOR_FRONT_MERGE 1
97#define ELEVATOR_BACK_MERGE 2
Ben Cheng94a85f62012-03-06 15:45:52 -080098/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -080099#define ELEVATOR_INSERT_FRONT 1
100#define ELEVATOR_INSERT_BACK 2
101#define ELEVATOR_INSERT_SORT 3
102#define ELEVATOR_INSERT_REQUEUE 4
Ben Cheng94a85f62012-03-06 15:45:52 -0800103/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800104enum {
105 ELV_MQUEUE_MAY,
106 ELV_MQUEUE_NO,
107 ELV_MQUEUE_MUST,
Ben Cheng94a85f62012-03-06 15:45:52 -0800108/* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800109};
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800110#define rq_end_sector(rq) ((rq)->sector + (rq)->nr_sectors)
The Android Open Source Project1dc9e472009-03-03 19:28:35 -0800111#endif