Hi,

I am trying to implement to API we agreed on, and I am facing a small
issue which is preceeding larger problems, I am afraid:
The small issue is:
We defined:
odpdrv_enumr_t odpdrv_enumr_register(odpdrv_enumr_param_t *param);
to register a enumerator and :
odpdrv_device_t odpdrv_device_create(odpdrv_device_param_t *param);
to register a device where param has to contains the enumerator
enumerating the device (odpdrv_enumr_t).
Seen for the enumerator, this means that the registration of the
enumerator must have returned before the enumerator probe() function
can be called. How can we guarantee this....
My simple approach in
https://git.linaro.org/people/christophe.milard/odp.git/log/?h=drv_enumerator_registration_v0.3
was to call probe at registration time, which does not work...
One solution could be to pass the odp_enumr_t at probe time. Do we
want to do that?
The larger problem: I am not sure we will be able to make "single
threaded" drivers at all times: I feels probable that at some point,
some driver will want to create another ODP thread (for supervision of
link status for instance).
But it is said that ODP thread creation is not part of ODP, but
remains an OS stuff (we just have shortcuts in helpers). If a driver
need to create an ODP thread, and the driver should remain OS
independent, aren't we stuck?

Christophe.

Reply via email to