mdb_iob_t
mdb_dcmd_usage(const mdb_idcmd_t *idcp, mdb_iob_t *iob)
rdsvc(mdb_iob_t *rdiob, mdb_iob_t *wriob, mdb_iob_ctx_t *ctx)
wrsvc(mdb_iob_t *rdiob, mdb_iob_t *wriob, mdb_iob_ctx_t *ctx)
mdb_iob_t *iobs[2];
mdb_iob_t *m_in; /* Input stream */
mdb_iob_t *m_out; /* Output stream */
mdb_iob_t *m_err; /* Error stream */
mdb_iob_t *m_null; /* Null stream */
extern void mdb_dcmd_usage(const mdb_idcmd_t *, mdb_iob_t *);
mdb_iob_t *iob;
iob_setattr(mdb_iob_t *iob, const char *s, size_t nbytes)
iob_bits2str(mdb_iob_t *iob, u_longlong_t value, const mdb_bitmask_t *bmp,
iob_doprnt(mdb_iob_t *iob, const char *format, varglist_t *ap)
mdb_iob_vprintf(mdb_iob_t *iob, const char *format, va_list alist)
mdb_iob_aprintf(mdb_iob_t *iob, const char *format, const mdb_arg_t *argv)
mdb_iob_printf(mdb_iob_t *iob, const char *format, ...)
iob_spb_create(mdb_iob_t *iob, char *iob_buf, size_t iob_len,
mdb_iob_t iob;
mdb_iob_t iob;
iob_bufleft(mdb_iob_t *iob)
mdb_iob_nputs(mdb_iob_t *iob, const char *s, size_t nbytes)
mdb_iob_puts(mdb_iob_t *iob, const char *s)
mdb_iob_putc(mdb_iob_t *iob, int c)
mdb_iob_tab(mdb_iob_t *iob)
iob_write(mdb_iob_t *iob, mdb_io_t *io, const void *buf, size_t n)
mdb_iob_fill(mdb_iob_t *iob, int c, size_t nfill)
mdb_iob_ws(mdb_iob_t *iob, size_t n)
mdb_iob_nl(mdb_iob_t *iob)
mdb_iob_ngets(mdb_iob_t *iob, char *buf, size_t n)
mdb_iob_getc(mdb_iob_t *iob)
mdb_iob_ungetc(mdb_iob_t *iob, int c)
mdb_iob_eof(mdb_iob_t *iob)
mdb_iob_err(mdb_iob_t *iob)
mdb_iob_read(mdb_iob_t *iob, void *buf, size_t n)
mdb_iob_write(mdb_iob_t *iob, const void *buf, size_t n)
mdb_iob_ctl(mdb_iob_t *iob, int req, void *arg)
mdb_iob_name(mdb_iob_t *iob)
mdb_iob_lineno(mdb_iob_t *iob)
mdb_iob_gettabstop(mdb_iob_t *iob)
mdb_iob_getmargin(mdb_iob_t *iob)
mdb_iob_t *top, *ntop;
mdb_iob_stack_push(mdb_iob_stack_t *stk, mdb_iob_t *iob, size_t lineno)
mdb_iob_t *
iob_read(mdb_iob_t *iob, mdb_io_t *io)
mdb_iob_t *top = stk->stk_top;
mdb_iob_set_autowrap(mdb_iob_t *iob)
no_io_link(mdb_io_t *io, mdb_iob_t *iob)
no_io_unlink(mdb_io_t *io, mdb_iob_t *iob)
mdb_iob_t *out;
iob_pager(mdb_iob_t *iob)
iob_indent(mdb_iob_t *iob)
iob_unindent(mdb_iob_t *iob)
mdb_iob_t *
mdb_iob_t *iob = mdb_alloc(sizeof (mdb_iob_t), UM_SLEEP);
mdb_iob_pipe(mdb_iob_t **iobs, mdb_iobsvc_f *rdsvc, mdb_iobsvc_f *wrsvc)
mdb_iob_destroy(mdb_iob_t *iob)
mdb_free(iob, sizeof (mdb_iob_t));
mdb_iob_discard(mdb_iob_t *iob)
mdb_iob_flush(mdb_iob_t *iob)
mdb_iob_nlflush(mdb_iob_t *iob)
mdb_iob_push_io(mdb_iob_t *iob, mdb_io_t *io)
mdb_iob_pop_io(mdb_iob_t *iob)
mdb_iob_resize(mdb_iob_t *iob, size_t rows, size_t cols)
mdb_iob_setpager(mdb_iob_t *iob, mdb_io_t *pgio)
mdb_iob_tabstop(mdb_iob_t *iob, size_t tabstop)
mdb_iob_margin(mdb_iob_t *iob, size_t margin)
mdb_iob_setbuf(mdb_iob_t *iob, void *buf, size_t bufsiz)
mdb_iob_clearlines(mdb_iob_t *iob)
mdb_iob_setflags(mdb_iob_t *iob, uint_t flags)
mdb_iob_clrflags(mdb_iob_t *iob, uint_t flags)
mdb_iob_getflags(mdb_iob_t *iob)
extern void mdb_iob_destroy(mdb_iob_t *);
extern void mdb_iob_flush(mdb_iob_t *);
extern void mdb_iob_nlflush(mdb_iob_t *);
extern void mdb_iob_discard(mdb_iob_t *);
extern void mdb_iob_push_io(mdb_iob_t *, mdb_io_t *);
extern mdb_io_t *mdb_iob_pop_io(mdb_iob_t *);
extern void mdb_iob_resize(mdb_iob_t *, size_t, size_t);
extern void mdb_iob_setpager(mdb_iob_t *, mdb_io_t *);
extern void mdb_iob_clearlines(mdb_iob_t *);
extern void mdb_iob_tabstop(mdb_iob_t *, size_t);
extern void mdb_iob_margin(mdb_iob_t *, size_t);
extern void mdb_iob_setbuf(mdb_iob_t *, void *, size_t);
extern void mdb_iob_setflags(mdb_iob_t *, uint_t);
extern void mdb_iob_clrflags(mdb_iob_t *, uint_t);
extern uint_t mdb_iob_getflags(mdb_iob_t *);
extern void mdb_iob_vprintf(mdb_iob_t *, const char *, va_list);
extern void mdb_iob_aprintf(mdb_iob_t *, const char *, const struct mdb_arg *);
extern void mdb_iob_printf(mdb_iob_t *, const char *, ...);
extern void mdb_iob_nputs(mdb_iob_t *, const char *, size_t);
extern void mdb_iob_puts(mdb_iob_t *, const char *);
extern void mdb_iob_putc(mdb_iob_t *, int);
extern void mdb_iob_fill(mdb_iob_t *, int, size_t);
extern void mdb_iob_ws(mdb_iob_t *, size_t);
extern void mdb_iob_tab(mdb_iob_t *);
extern void mdb_iob_nl(mdb_iob_t *);
extern ssize_t mdb_iob_ngets(mdb_iob_t *, char *, size_t);
extern int mdb_iob_getc(mdb_iob_t *);
extern int mdb_iob_ungetc(mdb_iob_t *, int);
extern int mdb_iob_eof(mdb_iob_t *);
extern int mdb_iob_err(mdb_iob_t *);
extern ssize_t mdb_iob_read(mdb_iob_t *, void *, size_t);
extern ssize_t mdb_iob_write(mdb_iob_t *, const void *, size_t);
extern int mdb_iob_ctl(mdb_iob_t *, int, void *);
extern const char *mdb_iob_name(mdb_iob_t *);
extern size_t mdb_iob_lineno(mdb_iob_t *);
extern size_t mdb_iob_gettabstop(mdb_iob_t *);
extern size_t mdb_iob_getmargin(mdb_iob_t *);
extern void mdb_iob_set_autowrap(mdb_iob_t *);
extern void mdb_iob_stack_push(mdb_iob_stack_t *, mdb_iob_t *, size_t);
extern mdb_iob_t *mdb_iob_stack_pop(mdb_iob_stack_t *);
extern int mdb_iob_isastr(mdb_iob_t *);
extern int mdb_iob_isatty(mdb_iob_t *);
extern int mdb_iob_isapipe(mdb_iob_t *);
mdb_iob_t *stk_top; /* Topmost stack element */
mdb_iob_t *ctx_iob; /* Storage for iob save/restore */
typedef void mdb_iobsvc_f(mdb_iob_t *, mdb_iob_t *, mdb_iob_ctx_t *);
extern mdb_iob_t *mdb_iob_create(mdb_io_t *, uint_t);
extern void mdb_iob_pipe(mdb_iob_t **, mdb_iobsvc_f *, mdb_iobsvc_f *);
mdb_iob_t *iob_next; /* Stack next pointer */
extern void no_io_link(mdb_io_t *, mdb_iob_t *);
extern void no_io_unlink(mdb_io_t *, mdb_iob_t *);
void (*io_link)(mdb_io_t *, mdb_iob_t *);
void (*io_unlink)(mdb_io_t *, mdb_iob_t *);
mdb_iob_t *iob = mdb_iob_create(rc_io, MDB_IOB_RDONLY);
mdb_iob_t *old = mdb.m_in;
pio_link(mdb_io_t *io, mdb_iob_t *iob)
pio_unlink(mdb_io_t *io, mdb_iob_t *iob)
mdb_iob_isapipe(mdb_iob_t *iob)
mdb_iob_t *pipe_rdiob; /* Read-side i/o buffer */
mdb_iob_t *pipe_wriob; /* Write-side i/o buffer */
shellio_unlink(mdb_io_t *io, mdb_iob_t *iob)
mdb_iob_t *iob;
mdb_iob_isastr(mdb_iob_t *iob)
mdb_iob_isatty(mdb_iob_t *iob)
mdb_iob_t *tio_out; /* I/o buffer for terminal output */
mdb_iob_t *tio_in; /* I/o buffer for terminal input */
mdb_iob_t *tio_link; /* I/o buffer to resize on WINCH */
static void termio_link(mdb_io_t *, mdb_iob_t *);
static void termio_unlink(mdb_io_t *, mdb_iob_t *);
termio_link(mdb_io_t *io, mdb_iob_t *iob)
termio_unlink(mdb_io_t *io, mdb_iob_t *iob)
mdb_iob_t iob;
mdb_iob_t iob;