On Tue, Jul 28, 2020 at 10:49 PM Sebastian Huber <sebastian.hu...@embedded-brains.de> wrote: > > On 27/07/2020 09:44, Richi Dubey wrote: > > > Which compiler error do you get? Maybe there is a cyclic dependency. > > > > I assumed that the schedulersmp.h already includes the percpu.h which > > was not the case. My bad. The error has been removed. > > > > I assumed this because schedulersmp.h uses > > <https://git.rtems.org/rtems/tree/cpukit/include/rtems/score/schedulersmp.h?id=3a95a07d88a6926bd2f67dc53c977b8dbc828f9c#n127> > > Per_CPU_Control > > and does not show any compilation error, so it should have the > > percpu.h included in one of its included header files right? If it > > has, why did my schedulerstrongapa.h that had the schedulersmp.h > > included give the following error: > > > > /home/richi/quick-start/src/rtems/cpukit/include/rtems/score/schedulerstrongapa.h:102:3: > > error: unknown type name 'Per_CPU_Control' > > Per_CPU_Control cpu; > > We have two kinds of header files in the implementation of RTEMS. > Firstly, some header files are included in API header files and are thus > visible to application code. These header files should only define > things which are strictly necessary for applications. Secondly, some > header files are only included in implementation source files. > > The purpose of <rtems/score/schedulerstrongapa.h> is to enable the > application to configure this scheduler and nothing more. Please note > that <rtems/score/scheduler.h> uses > > struct Per_CPU_Control *cpu > > and NOT > > Per_CPU_Control *cpu > > You can use struct Per_CPU_Control with a forward declaration. This > enables the use of this header file without having to include > <rtems/score/percpu.h>. You should not include <rtems/score/percpu.h> in > <rtems/score/schedulerstrongapa.h> and remove everything from this file > which is not necessary to configure the scheduler. >
I provided a (detailed) review on your PR. One of my comments is related to creating a schedulerstrongapaimpl.h header file. That is where you should include extra headers, to avoid "leaking" internal details to the application. _______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel