Re: [lng-odp] Move Typedefs to a new Header File
Hi, In the Current ODP design, we are having the typedef for different handles defined in the same header file. This causes a circular dependency between odp_buffer.h and odp_buffer_pool.h file as the buffer API uses pool handle and pool API uses buffer Handle. We would like to avoid this circular dependency by having all the handles defined in a separate file odp_typedefs.h file. The application user will not have any impact as the application includes odp.h file. Regards, Bala On 31 October 2014 19:08, Mike Holmes mike.hol...@linaro.org wrote: Bala What exactly was the problem we were solving ? I forget why we needed this. Mike On 31 October 2014 08:05, Bill Fischofer bill.fischo...@linaro.org wrote: Adding the ODP mailing list since this should be a topic of general interest. Now that we have separate repositories for each implementation what we'd ideally like is the following. - The API definitions are in .h files in odp.git. These are the function prototypes for all of the public ODP APIs. They reference typedefs for ODP APIs but do not define them. - Each platform has an odp_api_typedefs.h that defines these typedefs for that platform. - What applications #include is a file (odp.h) that includes the platform-specific odp_api_typedefs.h and the ODP APIs so they compile with a version of the prototypes typedef'd appropriate to the platform Is there a clean way to achieve this and still permit efficient inlining? On Fri, Oct 31, 2014 at 2:08 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi Anders, Yesterday in Scheduler meeting we had a discussion regarding moving typedefs in ODP API files into a separate file. Taras mentioned that you had previously spent some time on the same. Can you please update if you have some patch regarding the same. Regards, Bala -- *Mike Holmes* Linaro Sr Technical Manager LNG - ODP ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] Move Typedefs to a new Header File
In the case of odp_buffer.h and odp_buffer_pool.h I'm not sure why it wouldn't make sense to combine these into one file since they are so closely related. We have APIs in odp_buffer.h that take odp_buffer_pool_t arguments (e.g., odp_buffer_copy) and return odp_buffer_pool_t results (odp_buffer_pool(), though today we avoid the circularity by putting this *buffer* accessor function into odp_buffer_pool.h). We also have APIs in odp_buffer_pool.h that similarly take odp_buffer_t arguments (odp_buffer_free()) and return odp_buffer_t values (odp_buffer_alloc()). It seems that it would make more sense to have a single file for these related routines rather than separate files as another way of avoiding circularity. I suggest dropping odp_buffer_pool.h and just having odp_buffer.h cover all of these (similar to how the Buffer Management design doc covers both). Bill On Sat, Nov 1, 2014 at 2:47 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi, In the Current ODP design, we are having the typedef for different handles defined in the same header file. This causes a circular dependency between odp_buffer.h and odp_buffer_pool.h file as the buffer API uses pool handle and pool API uses buffer Handle. We would like to avoid this circular dependency by having all the handles defined in a separate file odp_typedefs.h file. The application user will not have any impact as the application includes odp.h file. Regards, Bala On 31 October 2014 19:08, Mike Holmes mike.hol...@linaro.org wrote: Bala What exactly was the problem we were solving ? I forget why we needed this. Mike On 31 October 2014 08:05, Bill Fischofer bill.fischo...@linaro.org wrote: Adding the ODP mailing list since this should be a topic of general interest. Now that we have separate repositories for each implementation what we'd ideally like is the following. - The API definitions are in .h files in odp.git. These are the function prototypes for all of the public ODP APIs. They reference typedefs for ODP APIs but do not define them. - Each platform has an odp_api_typedefs.h that defines these typedefs for that platform. - What applications #include is a file (odp.h) that includes the platform-specific odp_api_typedefs.h and the ODP APIs so they compile with a version of the prototypes typedef'd appropriate to the platform Is there a clean way to achieve this and still permit efficient inlining? On Fri, Oct 31, 2014 at 2:08 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi Anders, Yesterday in Scheduler meeting we had a discussion regarding moving typedefs in ODP API files into a separate file. Taras mentioned that you had previously spent some time on the same. Can you please update if you have some patch regarding the same. Regards, Bala -- *Mike Holmes* Linaro Sr Technical Manager LNG - ODP ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] Move Typedefs to a new Header File
BTW, Bala, In looking at the implementation of these routines I've put the bulk of the info from the design doc into the .h file itself and it seems to be formatting well. To avoid duplication of effort, I suggest you focus on the classification implementation and let's sync up next week on finalizing buffers. I should have a patch to circulate by Monday that integrates the doc with the prototypes. Bill On Sat, Nov 1, 2014 at 7:46 AM, Bill Fischofer bill.fischo...@linaro.org wrote: In the case of odp_buffer.h and odp_buffer_pool.h I'm not sure why it wouldn't make sense to combine these into one file since they are so closely related. We have APIs in odp_buffer.h that take odp_buffer_pool_t arguments (e.g., odp_buffer_copy) and return odp_buffer_pool_t results (odp_buffer_pool(), though today we avoid the circularity by putting this *buffer* accessor function into odp_buffer_pool.h). We also have APIs in odp_buffer_pool.h that similarly take odp_buffer_t arguments (odp_buffer_free()) and return odp_buffer_t values (odp_buffer_alloc()). It seems that it would make more sense to have a single file for these related routines rather than separate files as another way of avoiding circularity. I suggest dropping odp_buffer_pool.h and just having odp_buffer.h cover all of these (similar to how the Buffer Management design doc covers both). Bill On Sat, Nov 1, 2014 at 2:47 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi, In the Current ODP design, we are having the typedef for different handles defined in the same header file. This causes a circular dependency between odp_buffer.h and odp_buffer_pool.h file as the buffer API uses pool handle and pool API uses buffer Handle. We would like to avoid this circular dependency by having all the handles defined in a separate file odp_typedefs.h file. The application user will not have any impact as the application includes odp.h file. Regards, Bala On 31 October 2014 19:08, Mike Holmes mike.hol...@linaro.org wrote: Bala What exactly was the problem we were solving ? I forget why we needed this. Mike On 31 October 2014 08:05, Bill Fischofer bill.fischo...@linaro.org wrote: Adding the ODP mailing list since this should be a topic of general interest. Now that we have separate repositories for each implementation what we'd ideally like is the following. - The API definitions are in .h files in odp.git. These are the function prototypes for all of the public ODP APIs. They reference typedefs for ODP APIs but do not define them. - Each platform has an odp_api_typedefs.h that defines these typedefs for that platform. - What applications #include is a file (odp.h) that includes the platform-specific odp_api_typedefs.h and the ODP APIs so they compile with a version of the prototypes typedef'd appropriate to the platform Is there a clean way to achieve this and still permit efficient inlining? On Fri, Oct 31, 2014 at 2:08 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi Anders, Yesterday in Scheduler meeting we had a discussion regarding moving typedefs in ODP API files into a separate file. Taras mentioned that you had previously spent some time on the same. Can you please update if you have some patch regarding the same. Regards, Bala -- *Mike Holmes* Linaro Sr Technical Manager LNG - ODP ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp
Re: [lng-odp] Move Typedefs to a new Header File
Adding the ODP mailing list since this should be a topic of general interest. Now that we have separate repositories for each implementation what we'd ideally like is the following. - The API definitions are in .h files in odp.git. These are the function prototypes for all of the public ODP APIs. They reference typedefs for ODP APIs but do not define them. - Each platform has an odp_api_typedefs.h that defines these typedefs for that platform. - What applications #include is a file (odp.h) that includes the platform-specific odp_api_typedefs.h and the ODP APIs so they compile with a version of the prototypes typedef'd appropriate to the platform Is there a clean way to achieve this and still permit efficient inlining? On Fri, Oct 31, 2014 at 2:08 AM, Bala Manoharan bala.manoha...@linaro.org wrote: Hi Anders, Yesterday in Scheduler meeting we had a discussion regarding moving typedefs in ODP API files into a separate file. Taras mentioned that you had previously spent some time on the same. Can you please update if you have some patch regarding the same. Regards, Bala ___ lng-odp mailing list lng-odp@lists.linaro.org http://lists.linaro.org/mailman/listinfo/lng-odp