-
Notifications
You must be signed in to change notification settings - Fork 726
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[41] ARM kernel support #86
Commits on Apr 8, 2014
-
No longer including unistd_32.h or unistd_64.h. The kernel knows what…
… to do The kernel knows its configuration, and will pick the correct unistd.h
Configuration menu - View commit details
-
Copy full SHA for 88ab7af - Browse repository at this point
Copy the full SHA 88ab7afView commit details -
No longer assuming that syscall IDs start at 0
This is a valid assumption for x86, but not for many other arches (per-EABI ARM, MIPS, etc).
Configuration menu - View commit details
-
Copy full SHA for ea399c9 - Browse repository at this point
Copy the full SHA ea399c9View commit details -
presense of __NR_socketcall is now checked more directly
Previously we were looking at __x86_64__ to see if we had that system call. Now I directly look at __NR_socketcall, which is more portable
Configuration menu - View commit details
-
Copy full SHA for 598e85c - Browse repository at this point
Copy the full SHA 598e85cView commit details -
Configuration menu - View commit details
-
Copy full SHA for 29fa5ea - Browse repository at this point
Copy the full SHA 29fa5eaView commit details -
Checks for split 64-bit syscall arguments are more portable
This is described in syscall(2). Some syscalls take 64-bit arguments. On arches that have 64-bit registers, these arguments are shipped in a register. On 32-bit arches, however, these are split between two consecutive registers, with some alignment requirements. Some require an odd/even pair while some others require even/odd. For now I assume they all do what x86_32 does, and we can handle the rest when we port those.
Configuration menu - View commit details
-
Copy full SHA for 0c667b8 - Browse repository at this point
Copy the full SHA 0c667b8View commit details -
syscall table no longer checks for x86_64. Looks at the individual sy…
…scalls There were some __x86_64__ checks whose purpose wasn't entirely clear. Mostly I THINK they were meant to separate the syscalls that existed on each architecture, but this wasn't done perfectly: there were syscalls that existed, but were masked out by the #ifdef. This patch removes the check for x86_64, and checks each syscall for existence individually. It may be a good idea to do this across the board for ALL the syscalls. The C preprocessor can't quite do that I don't think, but we can generate the header we want.
Configuration menu - View commit details
-
Copy full SHA for 1f6b5b6 - Browse repository at this point
Copy the full SHA 1f6b5b6View commit details -
mmap() is allowed to have VM_EXEC
The kernel driver was making sure that mmap( "/dev/sysdig0" ) was getting userspace memory with the (vma->vm_flags & VM_EXEC) flag clear. For whatever reason this is not true on ARM: VM_EXEC is set there. I can't tell why yet, but things work fine after removing this check, and it seems benign enough.
Configuration menu - View commit details
-
Copy full SHA for 03b48d8 - Browse repository at this point
Copy the full SHA 03b48d8View commit details -
Driver makes sure syscall tracepoints are enabled
The sysdig kernel driver is mostly useless without syscall tracepoints. On ARM these were added relatively recently: in Linux 3.7. This patch explicitly checks this support exists, and refuses to build if it isn't
Configuration menu - View commit details
-
Copy full SHA for 1e48a42 - Browse repository at this point
Copy the full SHA 1e48a42View commit details