| 4561 | } |
| 4562 | |
| 4563 | static int |
| 4564 | umtx_read_uptr(struct thread *td, uintptr_t ptr, uintptr_t *res, bool compat32) |
| 4565 | { |
| 4566 | u_long res1; |
| 4567 | uint32_t res32; |
| 4568 | int error; |
| 4569 | |
| 4570 | if (compat32) { |
| 4571 | error = fueword32((void *)ptr, &res32); |
| 4572 | if (error == 0) |
| 4573 | res1 = res32; |
| 4574 | } else { |
| 4575 | error = fueword((void *)ptr, &res1); |
| 4576 | } |
| 4577 | if (error == 0) |
| 4578 | *res = res1; |
| 4579 | else |
| 4580 | error = EFAULT; |
| 4581 | return (error); |
| 4582 | } |
| 4583 | |
| 4584 | static void |
| 4585 | umtx_read_rb_list(struct thread *td, struct umutex *m, uintptr_t *rb_list, |
no test coverage detected