blob: ebb95887a028744ad2e3400ee9e16194a483c1b9 [file] [log] [blame]
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -07001#!/usr/bin/env python
2#
3# Copyright (C) 2015 The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the 'License');
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9# http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an 'AS IS' BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16#
17# pylint: disable=bad-indentation,bad-continuation
18
19import os
20import re
21
22input_prop_list = []
23ev_list = []
24syn_list = []
25key_list = []
26rel_list = []
27abs_list = []
28sw_list = []
29msc_list = []
30led_list = []
31rep_list = []
32snd_list = []
33mt_tool_list = []
34ff_status_list = []
35ff_list = []
36
37r = re.compile(r'#define\s+(\S+)\s+((?:0x)?\d+)')
38
Elliott Hughes608fb702015-03-25 21:18:43 -070039with open('bionic/libc/kernel/uapi/linux/input.h', 'r') as f:
Elliott Hughesc7f3c5c2015-03-25 16:40:13 -070040 for line in f:
41 m = r.match(line)
42 if m:
43 name = m.group(1)
44 if name.startswith("INPUT_PROP_"):
45 input_prop_list.append(name)
46 elif name.startswith("EV_"):
47 ev_list.append(name)
48 elif name.startswith("SYN_"):
49 syn_list.append(name)
50 elif name.startswith("KEY_") or name.startswith("BTN_"):
51 key_list.append(name)
52 elif name.startswith("REL_"):
53 rel_list.append(name)
54 elif name.startswith("ABS_"):
55 abs_list.append(name)
56 elif name.startswith("SW_"):
57 sw_list.append(name)
58 elif name.startswith("MSC_"):
59 msc_list.append(name)
60 elif name.startswith("LED_"):
61 led_list.append(name)
62 elif name.startswith("REP_"):
63 rep_list.append(name)
64 elif name.startswith("SND_"):
65 snd_list.append(name)
66 elif name.startswith("MT_TOOL_"):
67 mt_tool_list.append(name)
68 elif name.startswith("FF_STATUS_"):
69 ff_status_list.append(name)
70 elif name.startswith("FF_"):
71 ff_list.append(name)
72
73def Dump(struct_name, values):
74 print 'static struct label %s[] = {' % (struct_name)
75 for value in values:
76 print ' LABEL(%s),' % (value)
77 print ' LABEL_END,'
78 print '};'
79
80Dump("input_prop_labels", input_prop_list)
81Dump("ev_labels", ev_list)
82Dump("syn_labels", syn_list)
83Dump("key_labels", key_list)
84Dump("rel_labels", rel_list)
85Dump("abs_labels", abs_list)
86Dump("sw_labels", sw_list)
87Dump("msc_labels", msc_list)
88Dump("led_labels", led_list)
89Dump("rep_labels", rep_list)
90Dump("snd_labels", snd_list)
91Dump("mt_tool_labels", mt_tool_list)
92Dump("ff_status_labels", ff_status_list)
93Dump("ff_labels", ff_list)