Prototype for Init in confdefs.h
Chris Johns
chrisj at rtems.org
Sat Oct 11 01:13:13 UTC 2014
On 10/10/2014 9:17 pm, Sebastian Huber wrote:
> Hello,
>
> what was the reason for this change?
>
Maybe commit 2549b4d9a83d310e32329255a5a02604eb9e028b ?
> commit d8b74dbebd341073f0c5b03e589d3fcd349745d1
> Author: Chris Johns <chrisj at rtems.org>
> Date: Tue Apr 28 06:39:24 2009 +0000
>
> 2009-04-28 Chris Johns <chrisj at rtems.org>
>
> * sapi/include/confdefs.h: Add a prototype for Init with C
> linkage
> and define Init task command line arguments if confdefs.h
> provides
> an Init entry point.
>
> diff --git a/cpukit/ChangeLog b/cpukit/ChangeLog
> index 9432abc..477ce23 100644
> --- a/cpukit/ChangeLog
> +++ b/cpukit/ChangeLog
> @@ -1,3 +1,9 @@
> +2009-04-28 Chris Johns <chrisj at rtems.org>
> +
> + * sapi/include/confdefs.h: Add a prototype for Init with C linkage
> + and define Init task command line arguments if confdefs.h provides
> + an Init entry point.
> +
> 2009-04-15 Ralf Corsepius <ralf.corsepius at rtems.org>
>
> * configure.ac: Disable LIBSHELL for unix targets.
> diff --git a/cpukit/sapi/include/confdefs.h
> b/cpukit/sapi/include/confdefs.h
> index 7f7a1ca..b50ff01 100644
> --- a/cpukit/sapi/include/confdefs.h
> +++ b/cpukit/sapi/include/confdefs.h
> @@ -518,7 +518,16 @@ rtems_fs_init_functions_t rtems_fs_init_helper =
> #endif
>
> #ifndef CONFIGURE_INIT_TASK_ENTRY_POINT
> + #ifdef __cplusplus
> + extern "C" {
> + #endif
> + rtems_task Init (rtems_task_argument );
> + #ifdef __cplusplus
> + }
> + #endif
> #define CONFIGURE_INIT_TASK_ENTRY_POINT Init
> + extern const char* bsp_boot_cmdline;
> + #define CONFIGURE_INIT_TASK_ARGUMENTS ((rtems_task_argument)
> &bsp_boot_cmdline)
> #endif
>
> #ifndef CONFIGURE_INIT_TASK_INITIAL_MODES
>
> This differs from the POSIX_Init treatment in the same file. For C++
> this forces you to use a global Init function. In C you can also define
> Init as static. This is a bit confusing.
Why not provide CONFIGURE_INIT_TASK_ENTRY_POINT and it can be whatever
linkage you like ?
I think the 'extern "C"' is not needed because there is another around
everything. I do not think nesting them makes the code more C than C. :)
>At least Init and POSIX_Init should use similar definitions.
Sure.
I never use either constructs and use 'main'.
Chris
More information about the devel
mailing list