1import requests
2import lxml.html as lh
3import pandas as pd
4import argparse
5
6parser = argparse.ArgumentParser()
7parser.add_argument('arch', type=str, help='Arch [arm, x86]')
8args = parser.parse_args()
9
10url='https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md'
11page = requests.get(url)
12doc = lh.fromstring(page.content)
13tr_elements = doc.xpath('//tr')
14
15start = 0
16
17for i, tr in enumerate(tr_elements):
18 if tr[0].text_content() == "syscall name":
19 start = i + 1
20
21
22data = []
23for tr in tr_elements[start:]:
24 table_col = 2
25 if args.arch == "x86":
26 table_col = 4
27 if tr[table_col].text_content() != "-":
28 data.append([tr[0].text_content(), int(tr[table_col].text_content())])
29
30data.sort(key=lambda x: x[1])
31
32for i in data:
33 print("SYS_{0} = {1},".format(i[0].upper(), i[1]))