blob: d8b9f787b3c85cfda4226aa1fe4877d96b61d09f [file] [log] [blame]
Yida Wang0bf43bd2017-03-22 18:16:31 -04001#ifndef _PARAM_ID_H_
2#define _PARAM_ID_H_
3
Yida Wanga7754692017-04-18 22:50:32 -04004#include <linux/string.h>
5#include <linux/types.h>
6
Yida Wang0bf43bd2017-03-22 18:16:31 -04007#define PARAM_ID_LEN 0
8#define PARAM_ID_OOM_ADJ 1
9#define PARAM_ID_APP_UID 2
10#define PARAM_ID_APP_PID 3
11#define PARAM_ID_VALUE 4
12#define PARAM_ID_SIZE 5
13#define PARAM_ID_FD 6
14#define PARAM_ID_RATE 7
15#define PARAM_ID_SENSOR 8
16#define PARAM_ID_WINDOW_TYPE 9
17#define PARAM_ID_WINDOW_FLAG 10
Yida Wang943c3b42017-06-23 17:10:13 -040018#define PARAM_ID_RTIC_TYPE 11
19#define PARAM_ID_RTIC_ASSET_ID 12
20#define PARAM_ID_RTIC_ASSET_CATEGORY 13
21#define PARAM_ID_RTIC_RESPONSE 14
22#define NUM_PARAM_IDS 15
Yida Wang0bf43bd2017-03-22 18:16:31 -040023
24static inline int param_id_index(const char *param, const char *end)
25{
26 int id = -1;
27 int len = ((end != NULL) ? (end - param) : (int)strlen(param));
28
29 if ((len == 3) && !memcmp(param, "len", 3))
30 id = 0;
31 else if ((len == 7) && !memcmp(param, "oom_adj", 7))
32 id = 1;
33 else if ((len == 7) && !memcmp(param, "app_uid", 7))
34 id = 2;
35 else if ((len == 7) && !memcmp(param, "app_pid", 7))
36 id = 3;
37 else if ((len == 5) && !memcmp(param, "value", 5))
38 id = 4;
39 else if ((len == 4) && !memcmp(param, "size", 4))
40 id = 5;
41 else if ((len == 2) && !memcmp(param, "fd", 2))
42 id = 6;
43 else if ((len == 4) && !memcmp(param, "rate", 4))
44 id = 7;
45 else if ((len == 6) && !memcmp(param, "sensor", 6))
46 id = 8;
47 else if ((len == 11) && !memcmp(param, "window_type", 11))
48 id = 9;
49 else if ((len == 11) && !memcmp(param, "window_flag", 11))
50 id = 10;
Yida Wang943c3b42017-06-23 17:10:13 -040051 else if ((len == 9) && !memcmp(param, "rtic_type", 9))
52 id = 11;
53 else if ((len == 8) && !memcmp(param, "asset_id", 8))
54 id = 12;
55 else if ((len == 14) && !memcmp(param, "asset_category", 14))
56 id = 13;
57 else if ((len == 8) && !memcmp(param, "response", 8))
58 id = 14;
Yida Wang0bf43bd2017-03-22 18:16:31 -040059
60 return id;
61}
62
63static inline const char *get_param_id_name(int id)
64{
65 const char *name = "?";
66
67 switch (id) {
68 case 0:
69 name = "len";
70 break;
71 case 1:
72 name = "oom_adj";
73 break;
74 case 2:
75 name = "app_uid";
76 break;
77 case 3:
78 name = "app_pid";
79 break;
80 case 4:
81 name = "value";
82 break;
83 case 5:
84 name = "size";
85 break;
86 case 6:
87 name = "fd";
88 break;
89 case 7:
90 name = "rate";
91 break;
92 case 8:
93 name = "sensor";
94 break;
95 case 9:
96 name = "window_type";
97 break;
98 case 10:
99 name = "window_flag";
100 break;
Yida Wang943c3b42017-06-23 17:10:13 -0400101 case 11:
102 name = "rtic_type";
103 break;
104 case 12:
105 name = "asset_id";
106 break;
107 case 13:
108 name = "asset_category";
109 break;
110 case 14:
111 name = "response";
112 break;
Yida Wang0bf43bd2017-03-22 18:16:31 -0400113 }
114 return name;
115}
116
117#endif /* _PARAM_ID_H_ */