Lines Matching refs:addr
123 write_validate (void *addr) in write_validate() argument
146 ret = syscall (SYS_write, mem_validate_pipe[1], addr, 1); in write_validate()
148 ret = write (mem_validate_pipe[1], addr, 1); in write_validate()
156 static int (*mem_validate_func) (void *addr, size_t len);
157 static int msync_validate (void *addr, size_t len) in msync_validate() argument
159 if (msync (addr, len, MS_ASYNC) != 0) in msync_validate()
164 return write_validate (addr); in msync_validate()
168 static int mincore_validate (void *addr, size_t len) in mincore_validate() argument
174 if (mincore (addr, len, (unsigned char *)mvec) != 0) in mincore_validate()
179 return write_validate (addr); in mincore_validate()
194 unw_word_t addr = PAGE_START((unw_word_t)&present); in tdep_init_mem_validate() local
197 while ((ret = mincore ((void*)addr, PAGE_SIZE, (unsigned char *)mvec)) == -1 && in tdep_init_mem_validate()
220 is_cached_valid_mem(unw_word_t addr) in is_cached_valid_mem() argument
225 if (addr == last_good_addr[i]) in is_cached_valid_mem()
232 cache_valid_mem(unw_word_t addr) in cache_valid_mem() argument
238 last_good_addr[victim] = addr; in cache_valid_mem()
245 last_good_addr[victim] = addr; in cache_valid_mem()
256 is_cached_valid_mem(unw_word_t addr) in is_cached_valid_mem() argument
261 if (addr == atomic_load(&last_good_addr[i])) in is_cached_valid_mem()
268 cache_valid_mem(unw_word_t addr) in cache_valid_mem() argument
274 if (atomic_compare_exchange_strong(&last_good_addr[victim], &zero, addr)) { in cache_valid_mem()
281 atomic_store(&last_good_addr[victim], addr); in cache_valid_mem()
288 validate_mem (unw_word_t addr) in validate_mem() argument
292 if (PAGE_START(addr + sizeof (unw_word_t) - 1) == PAGE_START(addr)) in validate_mem()
297 addr = PAGE_START(addr); in validate_mem()
299 if (addr == 0) in validate_mem()
302 if (is_cached_valid_mem(addr)) in validate_mem()
305 if (mem_validate_func ((void *) addr, len) == -1) in validate_mem()
308 cache_valid_mem(addr); in validate_mem()
314 access_mem (unw_addr_space_t as, unw_word_t addr, unw_word_t *val, int write, in access_mem() argument
319 Debug (16, "mem[%016lx] <- %lx\n", addr, *val); in access_mem()
320 *(unw_word_t *) addr = *val; in access_mem()
326 && unlikely (validate_mem (addr))) { in access_mem()
327 Debug (16, "mem[%016lx] -> invalid\n", addr); in access_mem()
330 *val = *(unw_word_t *) addr; in access_mem()
331 Debug (16, "mem[%016lx] -> %lx\n", addr, *val); in access_mem()
340 unw_word_t *addr; in access_reg() local
346 if (!(addr = x86_64_r_uc_addr (uc, reg))) in access_reg()
351 *(unw_word_t *) addr = *val; in access_reg()
356 *val = *(unw_word_t *) addr; in access_reg()
371 unw_fpreg_t *addr; in access_fpreg() local
376 if (!(addr = x86_64_r_uc_addr (uc, reg))) in access_fpreg()
383 *(unw_fpreg_t *) addr = *val; in access_fpreg()
387 *val = *(unw_fpreg_t *) addr; in access_fpreg()