import urllib.request, http.client, html
def get_freebsd_syscalls():
data = urllib.request.urlopen('https://raw.githubusercontent.com/freebsd/freebsd/stable/9/sys/kern/syscalls.master').read().decode('ascii')
data = '\n'.join(i.strip() for i in data.split('\n') if not i.startswith(';')).replace('\\\n', ' ')
assert data.startswith('$FreeBSD$\n')
data = data[10:]
ans = {}
for i in data.split('\n'):
i = i.strip()
if not i or 'STD' not in i.split() or i.startswith('#include'): continue
name = i.split('(', 1)[0].split()[-1]
idx = int(i.split()[0])
ans[idx] = name
return ans
def get_sony_syscalls():
# TODO: PS5-specific syscalls
r = urllib.request.urlopen('http://web.archive.org/web/20210124215126js_/https://psdevwiki.com/ps4/edit/Syscalls')
data = html.unescape(r.read().decode('latin-1').split('