summaryrefslogtreecommitdiff
path: root/cpu/task_switching/tdt.txt
blob: d7c7858634b0722734661389b49a383557a21667 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
Each entry is n*(5 + number_of_registers) bits long, where n is the current mode in bits

Each entry uses the following format:
	width: same number of bits as current mode
	(higher address)
	+----------------------------------------------------------------------------------+
	| array of register's contents on last switch                                      |
	+-----------------------------------+----------------------------------------------+
	| upper 1/2: number of segments     | lower 1/2: pointer to segments               |
	+-----------------------------------+----------------------------------------------+
	| upper 1/2: callable segment index | lower 1/2: current process being executed as |
	+-----------------------------------+----------------------------------------------+
	| PR to be used when called                                                        |
	+----------------------------------------------------------------------------------+
	| reserved for specifying where it's being executed                                |
	+-----------------------------------+---------------------+------------------------+
	| upper 1/2: custom id              | n bits below: flags | remaining: unused      |
	+-----------------------------------+---------------------+------------------------+
	(lower address)

Flags:
	0: Valid
	1: Currently running