xref: /aosp_15_r20/external/musl/src/ipc/shmat.c (revision c9945492fdd68bbe62686c5b452b4dc1be3f8453)
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