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.
This commit is contained in:
Joel Sherrill
1999-11-16 16:07:17 +00:00
parent f4b76ab569
commit c09454282b
5 changed files with 26 additions and 3 deletions

View File

@@ -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)

View File

@@ -29,9 +29,11 @@
#include <sys/time.h>
#include <errno.h>
#include <unistd.h>
#if defined(RTEMS_MULTIPROCESSING)
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#endif
#include <string.h> /* 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

View File

@@ -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
}

View File

@@ -29,9 +29,11 @@
#include <sys/time.h>
#include <errno.h>
#include <unistd.h>
#if defined(RTEMS_MULTIPROCESSING)
#include <sys/ipc.h>
#include <sys/shm.h>
#include <sys/sem.h>
#endif
#include <string.h> /* 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

View File

@@ -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
}