ptem
tem_internal_init(struct tem_vt_state *ptem,
ptem->tvs_pix_data_size = tems.ts_pix_data_size;
ptem->tvs_pix_data = malloc(ptem->tvs_pix_data_size);
ptem->tvs_stateflags = TVS_AUTOWRAP;
ptem->tvs_outbuf = malloc(size);
if (ptem->tvs_outbuf == NULL)
ptem->tvs_maxtab = width / 8;
ptem->tvs_tabs = calloc(ptem->tvs_maxtab, sizeof (*ptem->tvs_tabs));
if (ptem->tvs_tabs == NULL)
tem_reset_display(ptem, clear_screen, init_color);
ptem->tvs_utf8_left = 0;
ptem->tvs_utf8_partial = 0;
ptem->tvs_initialized = true;
ptem->tvs_screen_buf = malloc(size);
tem_virtual_cls(ptem, width * height, 0, 0);
struct tem_vt_state *ptem = (struct tem_vt_state *)tem_arg;
return (ptem->tvs_initialized);
struct tem_vt_state *ptem;
ptem = calloc(1, sizeof (struct tem_vt_state));
if (ptem == NULL)
return ((tem_vt_state_t)ptem);
ptem->tvs_isactive = false;
ptem->tvs_fbmode = KD_TEXT;
ptem->tvs_initialized = 0;
tem_add(ptem);
return ((tem_vt_state_t)ptem);
tem_internal_init(ptem, true, false);
tem_add(ptem);
return ((tem_vt_state_t)ptem);
struct ptem *ntp; /* ptem entry for this PTEM module */
struct ptem *ntp; /* ptem entry for this PTEM module */
ntp = (struct ptem *)q->q_ptr;
struct ptem *ntp = (struct ptem *)q->q_ptr;
struct ptem *ntp = (struct ptem *)q->q_ptr;
struct ptem *ntp = (struct ptem *)q->q_ptr;
struct ptem *tp;
tp = (struct ptem *)q->q_ptr;
tem_internal_init(struct tem_vt_state *ptem, cred_t *credp,
ASSERT(MUTEX_HELD(&tems.ts_lock) && MUTEX_HELD(&ptem->tvs_lock));
ptem->tvs_pix_data_size = tems.ts_pix_data_size;
ptem->tvs_pix_data =
kmem_alloc(ptem->tvs_pix_data_size, KM_SLEEP);
ptem->tvs_stateflags = TVS_AUTOWRAP;
ptem->tvs_outbuf_size = tems.ts_c_dimension.width *
sizeof (*ptem->tvs_outbuf);
ptem->tvs_outbuf = kmem_alloc(ptem->tvs_outbuf_size, KM_SLEEP);
ptem->tvs_screen_history_size = height;
ptem->tvs_screen_buf_size = width * ptem->tvs_screen_history_size *
sizeof (*ptem->tvs_screen_buf);
ptem->tvs_screen_buf = kmem_alloc(ptem->tvs_screen_buf_size, KM_SLEEP);
ptem->tvs_screen_rows = kmem_alloc(ptem->tvs_screen_history_size *
ptem->tvs_maxtab = width / 8;
ptem->tvs_tabs = kmem_alloc(ptem->tvs_maxtab * sizeof (*ptem->tvs_tabs),
tem_safe_reset_display(ptem, credp, CALLED_FROM_NORMAL,
ptem->tvs_utf8_left = 0;
ptem->tvs_utf8_partial = 0;
tem_safe_get_attr(ptem, &fg, &bg, &attr, TEM_ATTR_SCREEN_REVERSE);
for (i = 0; i < ptem->tvs_screen_history_size; i++) {
ptem->tvs_screen_rows[i] = &ptem->tvs_screen_buf[i * width];
ptem->tvs_screen_rows[i][j].tc_fg_color = fg;
ptem->tvs_screen_rows[i][j].tc_bg_color = bg;
ptem->tvs_screen_rows[i][j].tc_char =
ptem->tvs_initialized = B_TRUE;
struct tem_vt_state *ptem = (struct tem_vt_state *)tem_arg;
mutex_enter(&ptem->tvs_lock);
ret = ptem->tvs_initialized;
mutex_exit(&ptem->tvs_lock);
struct tem_vt_state *ptem;
ptem = kmem_zalloc(sizeof (struct tem_vt_state), KM_SLEEP);
mutex_init(&ptem->tvs_lock, (char *)NULL, MUTEX_DRIVER, NULL);
mutex_enter(&ptem->tvs_lock);
ptem->tvs_isactive = B_FALSE;
ptem->tvs_fbmode = KD_TEXT;
ptem->tvs_queue = rq;
ptem->tvs_initialized = B_FALSE;
tem_add(ptem);
mutex_exit(&ptem->tvs_lock);
return ((tem_vt_state_t)ptem);
tem_internal_init(ptem, credp, B_TRUE, B_FALSE);
tem_add(ptem);
mutex_exit(&ptem->tvs_lock);
return ((tem_vt_state_t)ptem);
tem_vt_state_t ptem = NULL;
ptem = wc_get_screen_tem(pvc);
if (ptem == NULL) {
tem_write(ptem, nbp->b_rptr, cc, kcred);