1
0

proj: Implement mmap, munmap

This commit is contained in:
2025-03-01 22:54:51 +01:00
parent aa5cb0ae9d
commit cf71b7b9d1
3 changed files with 114 additions and 31 deletions

View File

@@ -10,7 +10,8 @@ import re
type Pointer = int
type PointerTo[T] = tuple[Pointer, T]
type Flags = tuple[Pointer, list[str]]
type Constant = tuple[int, str]
type Flags = tuple[int, list[str]]
StructTimeSpec = TypedDict('StructTimeSpec', {'tv_sec': int, 'tv_nsec': int})
StructSigAction = TypedDict('StructSigAction', {'sa_flags': Flags, 'sa_handler': NotRequired[Pointer], 'sa_sigaction': NotRequired[Pointer], 'sa_mask': list[str]})
@@ -234,14 +235,14 @@ class Handler(StreamRequestHandler):
def after_close(self, fildes: int,
ret_value: int, errno: str = None) -> None:
raise NotImplementedError()
def before_sigaction(self, sig: int, act: PointerTo[StructSigAction], oact_ptr: Pointer) -> str:
def before_sigaction(self, sig: Constant, act: PointerTo[StructSigAction], oact_ptr: Pointer) -> str:
raise NotImplementedError()
def after_sigaction(self, sig: int, act: PointerTo[StructSigAction], oact_ptr: Pointer,
def after_sigaction(self, sig: Constant, act: PointerTo[StructSigAction], oact_ptr: Pointer,
ret_value: int, errno: str = None, oact: StructSigAction = None) -> None:
raise NotImplementedError()
def before_sem_init(self, sem: int, pshared: int, value: int) -> str:
def before_sem_init(self, sem: Pointer, pshared: int, value: int) -> str:
raise NotImplementedError()
def after_sem_init(self, sem: int, pshared: int, value: int,
def after_sem_init(self, sem: Pointer, pshared: int, value: int,
ret_value: int, errno: str = None) -> None:
raise NotImplementedError()
def before_sem_open(self, name: str, oflag: Flags, mode: Optional[int], value: Optional[int]) -> str:
@@ -299,6 +300,16 @@ class Handler(StreamRequestHandler):
def after_shm_unlink(self, name: PointerTo[bytes],
ret_value: int, errno: str = None) -> None:
raise NotImplementedError()
def before_mmap(self, addr: Pointer, len_value: int, prot: Flags, flags: Flags, fildes: int, off: int) -> str:
raise NotImplementedError()
def after_mmap(self, addr: Pointer, len_value: int, prot: Flags, flags: Flags, fildes: int, off: int,
ret_value: Pointer, errno: str = None) -> None:
raise NotImplementedError()
def before_munmap(self, addr: Pointer, len_value: int) -> str:
raise NotImplementedError()
def after_munmap(self, addr: Pointer, len_value: int,
ret_value: int, errno: str = None) -> None:
raise NotImplementedError()
class MemoryAllocationTester(Handler):