| 7 | | They are prefixed by "_" to remind that they can only be executed by a processor in kernel mode. |
| | 7 | A task context is an array of 64 words = 256 bytes. |
| | 8 | It contains copies of processor registers (when the task is preempted): |
| | 9 | * GPR[i] : generally stored in slot (i). $0, $26 & $27 are not saved. |
| | 10 | * HI & LO registers : used by multiply/divide instructions. |
| | 11 | * CP0 registers : EPC, SR, CR, BVAR |
| | 12 | * CP2 registers : PTPR |
| | 13 | It contains some general informations associated to the task: |
| | 14 | * TTY : TTY channel global index |
| | 15 | * NIC : NIC channel global index |
| | 16 | * CMA : CMA channel global index |
| | 17 | * HBA : HBA channel global index |
| | 18 | * DMA : DMA channel local index |
| | 19 | * TIM : TIM channel local index |
| | 20 | * PTAB : page table virtual base address |
| | 21 | * LTID : Task local index (in scheduler) |
| | 22 | * VSID : Virtual space index |
| | 23 | * RUN : Task state (0 => sleeping / 1 => runnable ) |
| | 24 | * TRDID : Thread ID index (in vspace) |
| | 25 | |
| | 26 | || [0] *** || [8] $8 || [16] $16 || [24] $24 || [32] EPC || [40] TTY || [48] TRDID || |
| | 27 | || [1] $1 || [9] $9 || [17] $17 || [25] $25 || [33] CR || [41] DMA || [49] *** || |
| | 28 | || [2] $2 || [10] $10 || [18] $18 || [26] LO || [34] SR || [42] NIC || [50] *** || |
| | 29 | || [3] $3 || [11] $11 || [19] $19 || [27] HI || [35] BVAR || [43] TIM || [51] *** || |
| | 30 | || [4] $4 || [12] $12 || [20] $20 || [28] $28 || [36] PTAB || [44] HBA || [52] *** || |
| | 31 | || [5] $5 || [13] $13 || [21] $21 || [29] SP || [37] LTID || [45] CMA || [53] *** || |
| | 32 | || [6] $6 || [14] $14 || [22] $22 || [30] $30 || [38] VSID || [46] GTID || [54] *** || |
| | 33 | || [7] $7 || [15] $15 || [23] $23 || [31] RA | [39] PTPR || [47] RUN || [55] *** || |
| | 34 | |
| | 35 | |
| | 36 | |
| | 37 | |
| | 38 | |
| | 39 | |
| | 40 | |
| | 41 | |
| | 42 | |