* Read kernel memory, return 0 on success. */
| 834 | * Read kernel memory, return 0 on success. |
| 835 | */ |
| 836 | int |
| 837 | kread(u_long addr, void *buf, size_t size) |
| 838 | { |
| 839 | |
| 840 | if (kvmd_init() < 0) |
| 841 | return (-1); |
| 842 | |
| 843 | if (!buf) |
| 844 | return (0); |
| 845 | if (kvm_read(kvmd, addr, buf, size) != (ssize_t)size) { |
| 846 | xo_warnx("%s", kvm_geterr(kvmd)); |
| 847 | return (-1); |
| 848 | } |
| 849 | return (0); |
| 850 | } |
| 851 | |
| 852 | /* |
| 853 | * Read single counter(9). |
no test coverage detected