Skip to content
Snippets Groups Projects
Commit 98bf6a84 authored by Martin Teichmann's avatar Martin Teichmann
Browse files

try platform independency

parent 36754697
No related branches found
No related tags found
No related merge requests found
...@@ -2,5 +2,4 @@ test: ...@@ -2,5 +2,4 @@ test:
image: python:3.8-slim image: python:3.8-slim
script: script:
- cd .. - cd ..
- python3 -m ebpfcat.ebpf_test -v Tests - python3 -m ebpfcat.ebpf_test -v
- sudo python3 -m ebpfcat.ebpf_test -v KernelTests
from ctypes import CDLL, c_int, get_errno, cast, c_void_p, create_string_buffer, c_char_p from ctypes import CDLL, c_int, get_errno, cast, c_void_p, create_string_buffer, c_char_p
from enum import Enum from enum import Enum
from struct import pack, unpack from struct import pack, unpack
from platform import machine
from os import strerror from os import strerror
try:
SYS_BPF = {
"armv7l": 386,
"x86_64": 321,
}[machine()]
except KeyError:
print("Unknown platform:", machine())
class BPFError(OSError): class BPFError(OSError):
pass pass
...@@ -61,7 +71,7 @@ def addrof(ptr): ...@@ -61,7 +71,7 @@ def addrof(ptr):
def bpf(cmd, fmt, *args): def bpf(cmd, fmt, *args):
attr = pack(fmt, *args) attr = pack(fmt, *args)
attr = create_string_buffer(attr, len(attr)) attr = create_string_buffer(attr, len(attr))
ret = libc.syscall(386, c_int(cmd), attr, len(attr)) ret = libc.syscall(SYS_BPF, c_int(cmd), attr, len(attr))
if ret == -1: if ret == -1:
raise OSError(get_errno(), strerror(get_errno())) raise OSError(get_errno(), strerror(get_errno()))
return ret, unpack(fmt, attr.raw) return ret, unpack(fmt, attr.raw)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment