Lines Matching refs:pc
55 static FdSync *allocsync(ThreadState *thr, uptr pc) { in allocsync() argument
56 FdSync *s = (FdSync*)user_alloc_internal(thr, pc, sizeof(FdSync), in allocsync()
68 static void unref(ThreadState *thr, uptr pc, FdSync *s) { in unref() argument
74 user_free(thr, pc, s, false); in unref()
79 static FdDesc *fddesc(ThreadState *thr, uptr pc, int fd) { in fddesc() argument
87 void *p = user_alloc_internal(thr, pc, size, kDefaultAlignment, false); in fddesc()
93 user_free(thr, pc, p, false); in fddesc()
100 static void init(ThreadState *thr, uptr pc, int fd, FdSync *s, in init() argument
102 FdDesc *d = fddesc(thr, pc, fd); in init()
106 unref(thr, pc, d->sync); in init()
109 unref(thr, pc, in init()
114 unref(thr, pc, s); in init()
118 unref(thr, pc, s); in init()
122 d->creation_stack = CurrentStackId(thr, pc); in init()
130 MemoryRangeImitateWrite(thr, pc, (uptr)d, 8); in init()
133 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead | kAccessSlotLocked); in init()
143 void FdOnFork(ThreadState *thr, uptr pc) { in FdOnFork() argument
153 MemoryResetRange(thr, pc, (uptr)d, 8); in FdOnFork()
175 void FdAcquire(ThreadState *thr, uptr pc, int fd) { in FdAcquire() argument
178 FdDesc *d = fddesc(thr, pc, fd); in FdAcquire()
181 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdAcquire()
183 Acquire(thr, pc, (uptr)s); in FdAcquire()
186 void FdRelease(ThreadState *thr, uptr pc, int fd) { in FdRelease() argument
189 FdDesc *d = fddesc(thr, pc, fd); in FdRelease()
192 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdRelease()
194 Release(thr, pc, (uptr)s); in FdRelease()
196 Release(thr, pc, aux_sync); in FdRelease()
199 void FdAccess(ThreadState *thr, uptr pc, int fd) { in FdAccess() argument
203 FdDesc *d = fddesc(thr, pc, fd); in FdAccess()
204 MemoryAccess(thr, pc, (uptr)d, 8, kAccessRead); in FdAccess()
207 void FdClose(ThreadState *thr, uptr pc, int fd, bool write) { in FdClose() argument
211 FdDesc *d = fddesc(thr, pc, fd); in FdClose()
219 MemoryAccess(thr, pc, (uptr)d, 8, in FdClose()
231 MemoryAccess(thr, pc, (uptr)d, 8, in FdClose()
237 MemoryResetRange(thr, pc, (uptr)d, 8); in FdClose()
239 unref(thr, pc, d->sync); in FdClose()
241 unref(thr, pc, in FdClose()
249 void FdFileCreate(ThreadState *thr, uptr pc, int fd) { in FdFileCreate() argument
253 init(thr, pc, fd, &fdctx.filesync); in FdFileCreate()
256 void FdDup(ThreadState *thr, uptr pc, int oldfd, int newfd, bool write) { in FdDup() argument
261 FdDesc *od = fddesc(thr, pc, oldfd); in FdDup()
262 MemoryAccess(thr, pc, (uptr)od, 8, kAccessRead); in FdDup()
263 FdClose(thr, pc, newfd, write); in FdDup()
264 init(thr, pc, newfd, ref(od->sync), write); in FdDup()
267 void FdPipeCreate(ThreadState *thr, uptr pc, int rfd, int wfd) { in FdPipeCreate() argument
269 FdSync *s = allocsync(thr, pc); in FdPipeCreate()
270 init(thr, pc, rfd, ref(s)); in FdPipeCreate()
271 init(thr, pc, wfd, ref(s)); in FdPipeCreate()
272 unref(thr, pc, s); in FdPipeCreate()
275 void FdEventCreate(ThreadState *thr, uptr pc, int fd) { in FdEventCreate() argument
279 init(thr, pc, fd, allocsync(thr, pc)); in FdEventCreate()
282 void FdSignalCreate(ThreadState *thr, uptr pc, int fd) { in FdSignalCreate() argument
286 init(thr, pc, fd, 0); in FdSignalCreate()
289 void FdInotifyCreate(ThreadState *thr, uptr pc, int fd) { in FdInotifyCreate() argument
293 init(thr, pc, fd, 0); in FdInotifyCreate()
296 void FdPollCreate(ThreadState *thr, uptr pc, int fd) { in FdPollCreate() argument
300 init(thr, pc, fd, allocsync(thr, pc)); in FdPollCreate()
303 void FdPollAdd(ThreadState *thr, uptr pc, int epfd, int fd) { in FdPollAdd() argument
307 FdDesc *d = fddesc(thr, pc, fd); in FdPollAdd()
317 FdDesc *epd = fddesc(thr, pc, epfd); in FdPollAdd()
327 void FdSocketCreate(ThreadState *thr, uptr pc, int fd) { in FdSocketCreate() argument
332 init(thr, pc, fd, &fdctx.socksync); in FdSocketCreate()
335 void FdSocketAccept(ThreadState *thr, uptr pc, int fd, int newfd) { in FdSocketAccept() argument
340 Acquire(thr, pc, (uptr)&fdctx.connectsync); in FdSocketAccept()
341 init(thr, pc, newfd, &fdctx.socksync); in FdSocketAccept()
344 void FdSocketConnecting(ThreadState *thr, uptr pc, int fd) { in FdSocketConnecting() argument
349 Release(thr, pc, (uptr)&fdctx.connectsync); in FdSocketConnecting()
352 void FdSocketConnect(ThreadState *thr, uptr pc, int fd) { in FdSocketConnect() argument
356 init(thr, pc, fd, &fdctx.socksync); in FdSocketConnect()