Related files
- loop.c - Small test program
- nointerrupt.h - No interrupt system call header
- nointerrupt.s - No interrupt system call user land library call
- nokill.h - No kill system call header
- nokill.s - No kill system call user land library call
- arch/ - Linux kernel arch directory with changed files and patches
- include/ - Linux kernel include directory with changed files and patches
- kernel/ - Linux kernel kernel directory with changed files and patches
Descriptions
- nokill
- sets a flag in the task structure for the process
- when this flag is set, the only pid that can deliver the SIGKILL signal is pid 1 (init)
- takes an int as a parameter, the process pid
- returns an int, 0 is success, anything else is an error
- nointerrupt
- sets a flag in the task structure for the process
- when this flag is set, the only pid that can deliver the SIGINT signal is pid 1 (init)
- takes an int as a parameter, the process pid
- returns an int, 0 is success, anything else is an error
Caveats
- ctrl-c from the command line
- usually a ctrl-c at the command line will send the SIGINT signal to the current process
- for some reason, the signal sending does not take the sys_kill system call path
- because the sending path is different, calling nointerrupt will not stop a ctrl-c
- constant locking and unlocking of task list and task locks
- the constant locking and unlocking of these locks could lead to slowed performance