Dmitry Adamushko wrote: >>> Then I stumbled over the xnintr structure. Why do you keep a copy of the >>>> device name? >>>> A "const char *" should be enough, we just have to demand >>>> that it will remain valid as long as the xnintr structure itself (i.e. >>>> during the IRQ being attached). Saves a few bytes. :) >>> Could be if all the users of it are initially kernel-mode entities. >>> >>> But e.g. there is a version of rt_intr_create() that may be called by >>> user-space >>> apps and I extended it to support the "name" parameter too : >>> >>> int rt_intr_create(RT_INTR *intr, const char *name, unsigned irq, int >> mode); >>> In such a case, the kernel-side rt_intr_create() is called with the >> "name" >>> allocated on the stack in skins/native/syscall.c : __rt_intr_create()) >>> so the initial copy of the name can not remain valid. >> But you could create buffer space for a copy of the name in the same >> block already allocated for RT_INTR. Should be straightforward. > > > RT_INTR does not have the "name" field any more. I have removed it after > adding the same field to the xnintr_t as it became redundant. > > To access the "name", any code in native skin does "intr->intr_base.name" > (intr_base is of "xnintr_t" type). >
I was rather thinking of allocating RT_INTR + some additional space to take the name passed from user-space. Then intr_base.name could point to this buffer instead of static memory in the kernel use case. Jan
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Xenomai-core mailing list Xenomai-core@gna.org https://mail.gna.org/listinfo/xenomai-core