16 | | Some peripherals (TTY, TIM, NIC, CMA, HBA) are multi-channels peripherals: Each channel provide an independent set of addressable registers, and each channel can be seen as an independent hardware resource. For multi-channels peripherals, the GIET_VM allows an user application to dynamically allocate a ''private'' peripheral channel, that cannot be used by other applications. The corresponding channel index is stored in the calling thread context. For some peripherals (such as TTY), the allocated channel can be shared by all threads in the same vspace as the calling thread. |
| 16 | == Shared and private peripherals == |
| 17 | |
| 18 | Some peripherals (such as BDV, SDC, FBF) deliver an unique service, and are shared by all applications under the |
| 19 | kernel supervision. |
| 20 | |
| 21 | Some peripherals (TTY, TIM, NIC, CMA) are multi-channels peripherals: Each channel provide an independent set of addressable registers, and each channel can be seen as an independent hardware resource. For multi-channels peripherals, the GIET_VM allows an user application to dynamically allocate a ''private'' peripheral channel, that cannot be used by other applications. The corresponding channel index is stored in the calling thread context. |
| 22 | |
| 23 | * For TIM, the private timer index is hidden, and can only be used by the thread making the allocation. |
| 24 | * For TTY, the private channel index is hidden, but the the thread making the allocation can ask a totally private terminal, or a partially shared terminal usable by all threads in the same vspace. |
| 25 | * For NIC, the channel index is returned to the thread making allocation, and can be used by all threads in the same vspace. |