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 | |