ssize_t mdb_pread(void *buf, size_t nbytes, physaddr_t addr) { ssize_t rbytes = mdb_tgt_pread(mdb.m_target, buf, nbytes, addr); if (rbytes > 0 && rbytes < nbytes) return (set_errbytes(rbytes, nbytes)); return (rbytes); }
ssize_t mdb_aread(void *buf, size_t nbytes, uintptr_t addr, void *as) { ssize_t rbytes = mdb_tgt_aread(mdb.m_target, as, buf, nbytes, addr); if (rbytes > 0 && rbytes < nbytes) return (set_errbytes(rbytes, nbytes)); return (rbytes); }
ssize_t mdb_readsym(void *buf, size_t nbytes, const char *name) { ssize_t rbytes = mdb_tgt_readsym(mdb.m_target, MDB_TGT_AS_VIRT, buf, nbytes, MDB_TGT_OBJ_EXEC, name); if (rbytes > 0 && rbytes < nbytes) return (set_errbytes(rbytes, nbytes)); return (rbytes); }