Squash commits for public release
This commit is contained in:
33
utils/codeassistant/syscall_parser.py
Normal file
33
utils/codeassistant/syscall_parser.py
Normal file
@@ -0,0 +1,33 @@
|
||||
import requests
|
||||
import lxml.html as lh
|
||||
import pandas as pd
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('arch', type=str, help='Arch [arm, x86]')
|
||||
args = parser.parse_args()
|
||||
|
||||
url='https://chromium.googlesource.com/chromiumos/docs/+/master/constants/syscalls.md'
|
||||
page = requests.get(url)
|
||||
doc = lh.fromstring(page.content)
|
||||
tr_elements = doc.xpath('//tr')
|
||||
|
||||
start = 0
|
||||
|
||||
for i, tr in enumerate(tr_elements):
|
||||
if tr[0].text_content() == "syscall name":
|
||||
start = i + 1
|
||||
|
||||
|
||||
data = []
|
||||
for tr in tr_elements[start:]:
|
||||
table_col = 2
|
||||
if args.arch == "x86":
|
||||
table_col = 4
|
||||
if tr[table_col].text_content() != "-":
|
||||
data.append([tr[0].text_content(), int(tr[table_col].text_content())])
|
||||
|
||||
data.sort(key=lambda x: x[1])
|
||||
|
||||
for i in data:
|
||||
print("SYS_{0} = {1},".format(i[0].upper(), i[1]))
|
||||
Reference in New Issue
Block a user