From c09454282bf05f46d967af5ed5fa9897cccca58a Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Tue, 16 Nov 1999 16:07:17 +0000 Subject: Only check for System V IPC if multiprocessing is enabled. The unix port only uses System V IPC for shared memory and semaphores to communicate between nodes in a multiprocessor configuration. If you disable multiprocessing, then this code should be unused. Thus systems like Cygwin which are POSIX but do not support System V IPC should not work. --- c/src/exec/score/cpu/configure.in | 5 ++++- c/src/exec/score/cpu/unix/cpu.c | 9 ++++++++- c/src/exec/score/cpu/unix/rtems/score/cpu.h | 3 +++ 3 files changed, 15 insertions(+), 2 deletions(-) (limited to 'c') diff --git a/c/src/exec/score/cpu/configure.in b/c/src/exec/score/cpu/configure.in index dc468089ae..5a83394fba 100644 --- a/c/src/exec/score/cpu/configure.in +++ b/c/src/exec/score/cpu/configure.in @@ -38,7 +38,10 @@ RTEMS_CHECK_MULTIPROCESSING(RTEMS_BSP) RTEMS_CHECK_POSIX_API(RTEMS_BSP) RTEMS_CHECK_ITRON_API(RTEMS_BSP) -RTEMS_CHECK_SYSV_UNIX +# The only use of System V IPC is the UNIX port when multiprocessing. +if test "$HAS_MP" = "yes"; then + RTEMS_CHECK_SYSV_UNIX +fi # find all the Executive Makefiles RTEMS_CHECK_MAKEFILE($RTEMS_CPU) diff --git a/c/src/exec/score/cpu/unix/cpu.c b/c/src/exec/score/cpu/unix/cpu.c index d29bb03963..7f9f9c8047 100644 --- a/c/src/exec/score/cpu/unix/cpu.c +++ b/c/src/exec/score/cpu/unix/cpu.c @@ -29,9 +29,11 @@ #include #include #include +#if defined(RTEMS_MULTIPROCESSING) #include #include #include +#endif #include /* memset */ #ifndef SA_RESTART @@ -922,8 +924,10 @@ void _CPU_Stop_clock( void ) setitimer(ITIMER_REAL, &new, 0); } +extern void fix_syscall_errno( void ); + +#if defined(RTEMS_MULTIPROCESSING) int _CPU_SHM_Semid; -extern void fix_syscall_errno( void ); void _CPU_SHM_Init( unsigned32 maximum_nodes, @@ -1015,12 +1019,14 @@ void _CPU_SHM_Init( *shm_length = shm_size; } +#endif int _CPU_Get_pid( void ) { return getpid(); } +#if defined(RTEMS_MULTIPROCESSING) /* * Define this to use signals for MPCI shared memory driver. * If undefined, the shared memory driver will poll from the @@ -1108,3 +1114,4 @@ void _CPU_SHM_Unlock( } } +#endif diff --git a/c/src/exec/score/cpu/unix/rtems/score/cpu.h b/c/src/exec/score/cpu/unix/rtems/score/cpu.h index 96c7522b53..75eb07af74 100644 --- a/c/src/exec/score/cpu/unix/rtems/score/cpu.h +++ b/c/src/exec/score/cpu/unix/rtems/score/cpu.h @@ -1061,6 +1061,8 @@ void _CPU_Start_clock( void _CPU_Stop_clock( void ); +#if defined(RTEMS_MULTIPROCESSING) + void _CPU_SHM_Init( unsigned32 maximum_nodes, boolean is_master_node, @@ -1084,6 +1086,7 @@ void _CPU_SHM_Lock( void _CPU_SHM_Unlock( int semaphore ); +#endif #ifdef __cplusplus } -- cgit v1.2.3