function pointers in modules must have global scope

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@1960 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo
2009-06-26 13:43:32 +00:00
parent 3c58d78672
commit ef2d7fbf5c
5 changed files with 38 additions and 8 deletions
+6 -1
View File
@@ -54,7 +54,12 @@ static unsigned long nerrors[2] = {0, 0};
* Private Functions
****************************************************************************/
static void thread_func(void *parameter)
/* NOTE: it is necessary for functions that are referred to by function pointers
* pointer to be declared with global scope (at least for ARM). Otherwise,
* a relocation type that is not supported by NXFLAT is generated by GCC.
*/
void thread_func(void *parameter)
{
int my_id = (int)parameter;
int my_ndx = my_id - 1;
+6 -1
View File
@@ -75,7 +75,12 @@ enum exit_values_e
* Private Functions
****************************************************************************/
static void *child_start_routine(void *arg)
/* NOTE: it is necessary for functions that are referred to by function pointers
* pointer to be declared with global scope (at least for ARM). Otherwise,
* a relocation type that is not supported by NXFLAT is generated by GCC.
*/
void *child_start_routine(void *arg)
{
printf("CHILD: started with arg=%d\n", (int)arg);
+13 -3
View File
@@ -69,7 +69,12 @@ static int sigusr2_rcvd = 0;
* Name: sigusr1_sighandler
****************************************************************************/
static void sigusr1_sighandler(int signo)
/* NOTE: it is necessary for functions that are referred to by function pointers
* pointer to be declared with global scope (at least for ARM). Otherwise,
* a relocation type that is not supported by NXFLAT is generated by GCC.
*/
void sigusr1_sighandler(int signo)
{
printf("sigusr1_sighandler: Received SIGUSR1, signo=%d\n", signo);
sigusr1_rcvd = 1;
@@ -79,8 +84,13 @@ static void sigusr1_sighandler(int signo)
* Name: sigusr2_sigaction
***************************************************************************/
/* NOTE: it is necessary for functions that are referred to by function pointers
* pointer to be declared with global scope (at least for ARM). Otherwise,
* a relocation type that is not supported by NXFLAT is generated by GCC.
*/
#ifdef __USE_POSIX199309
static void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
{
printf("sigusr2_sigaction: Received SIGUSR2, signo=%d siginfo=%p arg=%p\n",
signo, siginfo, arg);
@@ -107,7 +117,7 @@ static void sigusr2_sigaction(int signo, siginfo_t *siginfo, void *arg)
sigusr2_rcvd = 1;
}
#else
static void sigusr2_sigaction(int signo)
void sigusr2_sigaction(int signo)
{
printf("sigusr2_sigaction: Received SIGUSR2, signo=%d\n", signo);
sigusr2_rcvd = 1;
+6 -1
View File
@@ -58,7 +58,12 @@ static sem_t g_sem;
* Privite Functions
****************************************************************************/
int child_task(int argc, char **argv)
/* NOTE: it is necessary for functions that are referred to by function pointers
* pointer to be declared with global scope (at least for ARM). Otherwise,
* a relocation type that is not supported by NXFLAT is generated by GCC.
*/
int child_task(int argc, char **argv)
{
printf("Child: execv was successful!\n");
printf("Child: argc=%d\n", argc);