void pvm_internal_init_tty( struct pvm_object_storage * ttyos ) { struct data_area_4_tty *tty = (struct data_area_4_tty *)ttyos->da; /* tty->w.xsize = PVM_DEF_TTY_XSIZE; tty->w.ysize = PVM_DEF_TTY_YSIZE; tty->w.x = 100; tty->w.y = 100; */ tty->font_height = 16; tty->font_width = 8; tty->x = 0; tty->y = 0; tty->xsize = tty->w.xsize/tty->font_width; tty->ysize = tty->w.ysize/tty->font_height; tty->fg = COLOR_BLACK; tty->bg = COLOR_WHITE; strlcpy( tty->title, "VM TTY Window", sizeof(tty->title) ); //tty->w.title = tty->title; drv_video_window_init( &(tty->w), PVM_DEF_TTY_XSIZE, PVM_DEF_TTY_YSIZE, 100, 100, COLOR_WHITE, WFLAG_WIN_DECORATED, tty->title ); { pvm_object_t o; o.data = ttyos; o.interface = pvm_get_default_interface(ttyos).data; // This object needs OS attention at restart // TODO do it by class flag in create fixed or earlier? pvm_add_object_to_restart_list( o ); } }
void pvm_internal_init_window(struct pvm_object_storage * os) { struct data_area_4_window *da = (struct data_area_4_window *)os->da; strlcpy( da->title, "Window", sizeof(da->title) ); //da->w.title = da->title; da->fg = COLOR_BLACK; da->bg = COLOR_WHITE; da->x = 0; da->y = 0; drv_video_window_init( &(da->w), PVM_DEF_TTY_XSIZE, PVM_DEF_TTY_YSIZE, 100, 100, da->bg, WFLAG_WIN_DECORATED, da->title ); { pvm_object_t o; o.data = os; o.interface = pvm_get_default_interface(os).data; da->connector = pvm_create_connection_object(); struct data_area_4_connection *cda = (struct data_area_4_connection *)da->connector.data->da; phantom_connect_object_internal(cda, 0, o, 0); // This object needs OS attention at restart // TODO do it by class flag in create fixed or earlier? pvm_add_object_to_restart_list( o ); } }
pvm_object_t pvm_storage_to_object(pvm_object_storage_t *st) { pvm_object_t ret; ret.data = st; ret.interface = pvm_get_default_interface(st).data; return ret; }