1*c9945492SAndroid Build Coastguard Worker #include <sys/shm.h>
2*c9945492SAndroid Build Coastguard Worker #include "syscall.h"
3*c9945492SAndroid Build Coastguard Worker #include "ipc.h"
4*c9945492SAndroid Build Coastguard Worker
5*c9945492SAndroid Build Coastguard Worker #ifndef SYS_ipc
shmat(int id,const void * addr,int flag)6*c9945492SAndroid Build Coastguard Worker void *shmat(int id, const void *addr, int flag)
7*c9945492SAndroid Build Coastguard Worker {
8*c9945492SAndroid Build Coastguard Worker return (void *)syscall(SYS_shmat, id, addr, flag);
9*c9945492SAndroid Build Coastguard Worker }
10*c9945492SAndroid Build Coastguard Worker #else
shmat(int id,const void * addr,int flag)11*c9945492SAndroid Build Coastguard Worker void *shmat(int id, const void *addr, int flag)
12*c9945492SAndroid Build Coastguard Worker {
13*c9945492SAndroid Build Coastguard Worker unsigned long ret;
14*c9945492SAndroid Build Coastguard Worker ret = syscall(SYS_ipc, IPCOP_shmat, id, flag, &addr, addr);
15*c9945492SAndroid Build Coastguard Worker return (ret > -(unsigned long)SHMLBA) ? (void *)ret : (void *)addr;
16*c9945492SAndroid Build Coastguard Worker }
17*c9945492SAndroid Build Coastguard Worker #endif
18