#Interfacing with System Calls

7 messages · Page 1 of 1 (latest)

icy cliff
#

The error implies an argument was passed that is "too big"

unkempt hamlet
# icy cliff The error implies an argument was passed that is "too big"

at some point I even tried calling syscall only with the Sysno syscalls::Sysno::rt_tgsigqueueinfo and nothing else (no extra arguments), expecting to get a different error (missing arguments) but I still got the same error.

it seems weird that rt_tgsigqueueinfo is too big considering that it is an enum type (with i32 reprs) specifically defined in the syscall crate and that the syscall macro expect.

I really don't know what's going on tbh 😕

icy cliff
unkempt hamlet
#

if I try to replace the syscall crate and use instead the libc::syscall I get, more specifically:

Error 7: Argument list too long

so it's still a problem about how I call the syscall or something os related I guess. Nothing wrong with the alternative syscall crate per se

#

ok, I resolved it by using libc::siginfo_t struct instead of my own siginfo_t

#

still unclear why I couldn't define my own given that the libc one misses a lot of other important fields

#

I meant to close the post but I've deleted my original message.

I'm going to re-port here down below before closing just in case it could help someone else in the future