| 1425 |
|
|
| 1426 |
int set_menu_shm_readonly(MENU_SET *p_menu_set) |
int set_menu_shm_readonly(MENU_SET *p_menu_set) |
| 1427 |
{ |
{ |
| 1428 |
|
#ifndef __CYGWIN__ |
| 1429 |
void *p_shm; |
void *p_shm; |
| 1430 |
|
|
| 1431 |
// Remap shared memory in read-only mode |
// Remap shared memory in read-only mode |
|
#if defined(__CYGWIN__) |
|
|
if (shmdt(p_menu_set->p_reserved) == -1) |
|
|
{ |
|
|
log_error("shmdt() error (%d)\n", errno); |
|
|
return -1; |
|
|
} |
|
|
p_shm = shmat(p_menu_set->shmid, p_menu_set->p_reserved, SHM_RDONLY); |
|
|
#else |
|
| 1432 |
p_shm = shmat(p_menu_set->shmid, p_menu_set->p_reserved, SHM_RDONLY | SHM_REMAP); |
p_shm = shmat(p_menu_set->shmid, p_menu_set->p_reserved, SHM_RDONLY | SHM_REMAP); |
|
#endif |
|
| 1433 |
if (p_shm == (void *)-1) |
if (p_shm == (void *)-1) |
| 1434 |
{ |
{ |
| 1435 |
log_error("shmat(menu_shm shmid = %d) error (%d)\n", p_menu_set->shmid, errno); |
log_error("shmat(menu_shm shmid = %d) error (%d)\n", p_menu_set->shmid, errno); |
| 1437 |
} |
} |
| 1438 |
|
|
| 1439 |
p_menu_set->p_reserved = p_shm; |
p_menu_set->p_reserved = p_shm; |
| 1440 |
|
#endif |
| 1441 |
|
|
| 1442 |
return 0; |
return 0; |
| 1443 |
} |
} |