[][src]Module sunrise_kernel::i386::stack

Kernel stack

A kernel stack is structured as follow :

j--------------------j  < 0xaaaa0000 = KernelStack.stack_address
|                    |
|                    |
|     PAGE GUARD     |
|                    |
|                    |
j--------------------j
|                    |
|                    |
|        AAA         |
|        |||         |
|                    |
j--------------------j
|                    |
|       STACK        |
|                    |
| j----------------j |
| |  poison value  | |
j-j----------------j-j < 0xaaaaffff
     No Page Guard

Since the stack is several pages long, we must ensure the stack respects some alignment in order to be able to find its bottom from any page.

Structs

KernelStack

A structure representing a kernel stack.

StackDumpSource

The minimal information needed to perform a stack dump.

Constants

STACK_ALIGNMENT

The alignment of the stack.

STACK_SIZE

The size of a kernel stack in pages, not accounting for the page guard

STACK_SIZE_WITH_GUARD

The size of a kernel stack in pages, with the page guard.

STACK_SIZE_WITH_GUARD_IN_BYTES

The size of the kernel stack, with the page guard, as a byte count instead of a page count. Used to calculate alignment.

Functions

dump_stack

Dumps the stack from the given information, displaying it in a frame-by-frame format.

dump_stack_from_slice

Dumps a stack, displaying it in a frame-by-frame format.