On Mon, Jul 30, 2018 at 1:03 PM, Sebastian Huber < sebastian.hu...@embedded-brains.de> wrote:
> ----- Am 30. Jul 2018 um 18:29 schrieb Gedare Bloom ged...@rtems.org: > > > On Mon, Jul 30, 2018 at 11:23 AM, Joel Sherrill <j...@rtems.org> wrote: > >> > >> > >> On Mon, Jul 30, 2018 at 7:43 AM, Sebastian Huber > >> <sebastian.hu...@embedded-brains.de> wrote: > >>> > >>> On 30/07/18 14:25, Joel Sherrill wrote: > >>>> > >>>> > >>>> > >>>> On Mon, Jul 30, 2018, 6:26 AM Sebastian Huber > >>>> <sebastian.hu...@embedded-brains.de > >>>> <mailto:sebastian.hu...@embedded-brains.de>> wrote: > >>>> > >>>> Hello, > >>>> > >>>> is there a standard API to convert priorities to/from POSIX > from/to > >>>> Classic? If not, I think we should add something. > >>>> > >>>> > >>>> There is not a public API for this. There are some internal helpers > >>> > >>> > >>> Do you know the name of the helpers? > >> > >> > >> I was thinking of the _RTEMS_Priority_To_Core, > >> _RTEMS_Priority_From_core, and the similar > >> POSIX helper. > >> > >> These are probably useful to some users. No real > >> cost to applications that don't use them. > >> > > > > These convert between the core kernel notion of priority and the api. > > I see no problem to add some wrappers like > > > > rtems_posix_priority_to_core() and from_core(), and > > rtems_priority_to_core(), and from_core(). > > > > A user then could convert between the two APIs themselves if they need, > like > > rtems_priority_from_core( rtems_posix_priority_to_core(p) ); > > > > I would not introduce any conversion between classic and posix > > priorities directly. It is violation of the API independence. > > I don't like the idea to expose an internal priority thing to the user. We > would have to create an API representation of something scheduler-specific. > > I propose: > > scheduler_id == RTEMS_SELF == scheduler of executing thread > > rtems_status_code rtems_task_priority_posix_to_classic(rtems_id > scheduler_id, int posix_priority, rtems_task_priority *classic_priority) > rtems_status_code rtems_task_priority_classic_to_posix(rtems_id > scheduler_id, rtems_task_priority classic_priority, int *posix_priority) > For the simplest case of current scheduler, what does a call look like? And honestly, I wouldn't be opposed to something like this if it has a use case: rtems_task_priority rtems_get_self_priority(void) The Classic API (e.g. RTEID/ORKID) reflects a period in API programming where you wanted a small API set. Accessors were not separated out. Methods to simply get some information or state of an object were not included.
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel