Linux kernel code reading

“important” places in the source tree:

    processor specific structs like `struct thread_struct`

    struct task_struct

    struct ucontext

    struct sigcontext

    struct ksignal

    int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact)


struct rt_sigframe {
	struct siginfo info;
	struct ucontext uc;

struct rt_sigframe_user_layout {
	struct rt_sigframe __user *sigframe;
	struct frame_record __user *next_frame;

	unsigned long size;	/* size of allocated sigframe data */
	unsigned long limit;	/* largest allowed size */

	unsigned long fpsimd_offset;
	unsigned long esr_offset;
	unsigned long sve_offset;
	unsigned long tpidr2_offset;
	unsigned long za_offset;
	unsigned long zt_offset;
	unsigned long extra_offset;
	unsigned long end_offset;

Some random stuffs in the linux kernel source code.

task_struct in sched.h

 * WARNING: on x86, 'thread_struct' contains a variable-sized
 * structure.  It *MUST* be at the end of 'task_struct'.
 * Do not put anything below here!
[+] click to leave a comment [+]
the comment system on this blog works via email. The button
below will generate a mailto: link based on this page's url 
and invoke your email client - please edit the comment there!

[optional] even better, encrypt the email with my public key

- don't modify the subject field
- specify a nickname, otherwise your comment will be shown as   
- your email address will not be disclosed
- you agree that the comment is to be made public.
- to take down a comment, send the request via email.