mirror of
https://github.com/genodelabs/genode.git
synced 2025-04-12 05:41:36 +00:00
cpu_session: follow-up fix for scale_priority
This is a fixup for commit 5a42f40f04981581327639a75298e9e653ef39f5. ref #961
This commit is contained in:
parent
54667241f7
commit
0c6c70a612
@ -199,12 +199,21 @@ namespace Genode {
|
||||
* be power of 2
|
||||
* \param prio generic priority value as used by the CPU
|
||||
* session interface
|
||||
* \param inverse order of platform priorities, if true
|
||||
* 'pf_prio_limit' corresponds to the highest
|
||||
* priority, otherwise it refers to the
|
||||
* lowest priority.
|
||||
* \return platform-specific priority value
|
||||
*/
|
||||
static unsigned scale_priority(unsigned pf_prio_limit, unsigned prio)
|
||||
static unsigned scale_priority(unsigned pf_prio_limit, unsigned prio,
|
||||
bool inverse = true)
|
||||
{
|
||||
/* if no priorities are used, use the platform priority limit */
|
||||
if (prio == 0) return pf_prio_limit;
|
||||
/*
|
||||
* Generic priority values are (0 is highest, 'PRIORITY_LIMIT'
|
||||
* is lowest. On platforms where priority levels are defined
|
||||
* the other way round, we have to invert the priority value.
|
||||
*/
|
||||
prio = inverse ? Cpu_session::PRIORITY_LIMIT - prio : prio;
|
||||
|
||||
/* scale value to platform priority range 0..pf_prio_limit */
|
||||
return (prio*pf_prio_limit)/Cpu_session::PRIORITY_LIMIT;
|
||||
|
Loading…
x
Reference in New Issue
Block a user