Changed shared memory allocation to a standard malloc to prevent crash
on systems that do not allow large shm sizes.
This commit is contained in:
parent
7dab1976f6
commit
58a1d76e2c
|
@ -16,32 +16,35 @@ nes_shm_t *nes_shm = NULL;
|
||||||
//************************************************************************
|
//************************************************************************
|
||||||
nes_shm_t *open_nes_shm(void)
|
nes_shm_t *open_nes_shm(void)
|
||||||
{
|
{
|
||||||
int shmId;
|
|
||||||
nes_shm_t *vaddr;
|
nes_shm_t *vaddr;
|
||||||
struct shmid_ds ds;
|
|
||||||
|
|
||||||
shmId = shmget( IPC_PRIVATE, sizeof(struct nes_shm_t), IPC_CREAT | S_IRWXU | S_IRWXG );
|
vaddr = (nes_shm_t*)malloc( sizeof(struct nes_shm_t) );
|
||||||
|
|
||||||
if ( shmId == -1 )
|
//int shmId;
|
||||||
{
|
//struct shmid_ds ds;
|
||||||
perror("Error: GL shmget Failed:");
|
|
||||||
return NULL;
|
|
||||||
}
|
|
||||||
printf("Created ShmID: %i \n", shmId );
|
|
||||||
|
|
||||||
vaddr = (nes_shm_t*)shmat( shmId, NULL, 0);
|
//shmId = shmget( IPC_PRIVATE, sizeof(struct nes_shm_t), IPC_CREAT | S_IRWXU | S_IRWXG );
|
||||||
|
|
||||||
if ( vaddr == (nes_shm_t*)-1 )
|
//if ( shmId == -1 )
|
||||||
{
|
//{
|
||||||
perror("Error: NES shmat Failed:");
|
// perror("Error: GL shmget Failed:");
|
||||||
return NULL;
|
// return NULL;
|
||||||
}
|
//}
|
||||||
memset( vaddr, 0, sizeof(struct nes_shm_t));
|
//printf("Created ShmID: %i \n", shmId );
|
||||||
|
|
||||||
if ( shmctl( shmId, IPC_RMID, &ds ) != 0 )
|
//vaddr = (nes_shm_t*)shmat( shmId, NULL, 0);
|
||||||
{
|
|
||||||
perror("Error: GLX shmctl IPC_RMID Failed:");
|
//if ( vaddr == (nes_shm_t*)-1 )
|
||||||
}
|
//{
|
||||||
|
// perror("Error: NES shmat Failed:");
|
||||||
|
// return NULL;
|
||||||
|
//}
|
||||||
|
//memset( vaddr, 0, sizeof(struct nes_shm_t));
|
||||||
|
|
||||||
|
//if ( shmctl( shmId, IPC_RMID, &ds ) != 0 )
|
||||||
|
//{
|
||||||
|
// perror("Error: GLX shmctl IPC_RMID Failed:");
|
||||||
|
//}
|
||||||
|
|
||||||
//sem_init( &vaddr->sem, 1, 1 );
|
//sem_init( &vaddr->sem, 1, 1 );
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue