<div dir="ltr">Solves the easiest part of the problem.<div><br></div><div>Full mapping for scheduling attributes between the two APIs is a different matter.</div><div><br></div><div>--joel</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 30, 2018 at 1:58 PM, Gedare Bloom <span dir="ltr"><<a href="mailto:gedare@rtems.org" target="_blank">gedare@rtems.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">I can get on board with extending the classic API to include<br>
converters to/from posix priorities directly.. this makes good enough<br>
sense to me.<br>
<div class="HOEnZb"><div class="h5"><br>
On Mon, Jul 30, 2018 at 2:30 PM, Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br>
><br>
><br>
> On Mon, Jul 30, 2018 at 1:03 PM, Sebastian Huber<br>
> <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a>> wrote:<br>
>><br>
>> ----- Am 30. Jul 2018 um 18:29 schrieb Gedare Bloom <a href="mailto:gedare@rtems.org">gedare@rtems.org</a>:<br>
>><br>
>> > On Mon, Jul 30, 2018 at 11:23 AM, Joel Sherrill <<a href="mailto:joel@rtems.org">joel@rtems.org</a>> wrote:<br>
>> >><br>
>> >><br>
>> >> On Mon, Jul 30, 2018 at 7:43 AM, Sebastian Huber<br>
>> >> <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a>> wrote:<br>
>> >>><br>
>> >>> On 30/07/18 14:25, Joel Sherrill wrote:<br>
>> >>>><br>
>> >>>><br>
>> >>>><br>
>> >>>> On Mon, Jul 30, 2018, 6:26 AM Sebastian Huber<br>
>> >>>> <<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@embedded-<wbr>brains.de</a><br>
>> >>>> <mailto:<a href="mailto:sebastian.huber@embedded-brains.de">sebastian.huber@<wbr>embedded-brains.de</a>>> wrote:<br>
>> >>>><br>
>> >>>>     Hello,<br>
>> >>>><br>
>> >>>>     is there a standard API to convert priorities to/from POSIX<br>
>> >>>> from/to<br>
>> >>>>     Classic? If not, I think we should add something.<br>
>> >>>><br>
>> >>>><br>
>> >>>> There is not a public API for this.  There are some internal helpers<br>
>> >>><br>
>> >>><br>
>> >>> Do you know the name of the helpers?<br>
>> >><br>
>> >><br>
>> >> I was thinking of the _RTEMS_Priority_To_Core,<br>
>> >> _RTEMS_Priority_From_core, and the similar<br>
>> >> POSIX helper.<br>
>> >><br>
>> >> These are probably useful to some users. No real<br>
>> >> cost to applications that don't use them.<br>
>> >><br>
>> ><br>
>> > These convert between the core kernel notion of priority and the api.<br>
>> > I see no problem to add some wrappers like<br>
>> ><br>
>> > rtems_posix_priority_to_core() and from_core(), and<br>
>> > rtems_priority_to_core(), and from_core().<br>
>> ><br>
>> > A user then could convert between the two APIs themselves if they need,<br>
>> > like<br>
>> > rtems_priority_from_core( rtems_posix_priority_to_core(<wbr>p) );<br>
>> ><br>
>> > I would not introduce any conversion between classic and posix<br>
>> > priorities directly. It is violation of the API independence.<br>
>><br>
>> I don't like the idea to expose an internal priority thing to the user. We<br>
>> would have to create an API representation of something scheduler-specific.<br>
>><br>
>> I propose:<br>
>><br>
>> scheduler_id == RTEMS_SELF == scheduler of executing thread<br>
>><br>
>> rtems_status_code rtems_task_priority_posix_to_<wbr>classic(rtems_id<br>
>> scheduler_id, int posix_priority, rtems_task_priority *classic_priority)<br>
>> rtems_status_code rtems_task_priority_classic_<wbr>to_posix(rtems_id<br>
>> scheduler_id, rtems_task_priority classic_priority, int *posix_priority)<br>
><br>
><br>
><br>
> For the simplest case of current scheduler, what does a call look like?<br>
><br>
> And honestly, I wouldn't be opposed to something like this if it has a use<br>
> case:<br>
><br>
> rtems_task_priority rtems_get_self_priority(void)<br>
><br>
> The Classic API (e.g. RTEID/ORKID) reflects a period in API programming<br>
> where<br>
> you wanted a small API set. Accessors were not separated out. Methods to<br>
> simply get some information or state of an object were not included.<br>
><br>
</div></div></blockquote></div><br></div>