18 lines
395 B
C
18 lines
395 B
C
|
#include <sys/shm.h>
|
||
|
#include "syscall.h"
|
||
|
#include "ipc.h"
|
||
|
|
||
|
#ifndef SYS_ipc
|
||
|
void *shmat(int id, const void *addr, int flag)
|
||
|
{
|
||
|
return (void *)syscall(SYS_shmat, id, addr, flag);
|
||
|
}
|
||
|
#else
|
||
|
void *shmat(int id, const void *addr, int flag)
|
||
|
{
|
||
|
unsigned long ret;
|
||
|
ret = syscall(SYS_ipc, IPCOP_shmat, id, flag, &addr, addr);
|
||
|
return (ret > -(unsigned long)SHMLBA) ? (void *)ret : (void *)addr;
|
||
|
}
|
||
|
#endif
|