Main Page   File List  

Virtual Console Interface (with pSLIM)

virtual console (thread) interface. More...

Functions

long con::vc::smode ([in] byte mode,[in] l4_threadid_t ev_handler)
 Set vc IN/OUT mode.
long con::vc::gmode ([out] byte *mode,[out] unsigned long *sbuf_1size,[out] unsigned long *sbuf_2size,[out] unsigned long *sbuf_3size)
 Get IN/OUT mode.
long con::vc::share ([in] l4_threadid_t client)
 Allow client to access the console and map the physical framebuffer.
long con::vc::revoke ([in] l4_threadid_t client)
 Revoke right to access the console and map the physcial framebuffer.
long con::vc::close ()
 Close virtual console.
long con::vc::pslim_fill ([in] l4con_pslim_rect_t rect,[in] l4con_pslim_color_t color)
 Fill rectangular area of virtual framebuffer with color.
long con::vc::pslim_copy ([in] l4con_pslim_rect_t rect,[in] short dx,[in] short dy)
 Copy rectangular area of virtual framebuffer.
long con::vc::pslim_bmap ([in] l4con_pslim_rect_t rect,[in] l4con_pslim_color_t fg_color,[in] l4con_pslim_color_t bg_color,[in, ref, size_is(bmap_size)] byte *bmap,[in] long bmap_size,[in] byte bmap_type)
 Set rectangular area of virtual framebuffer with foreground and background color mask in (monochrome) bitmap.
long con::vc::pslim_set ([in] l4con_pslim_rect_t rect,[in, ref, size_is(pmap_size)] byte *pmap,[in] long pmap_size)
 Set rectangular area of virtual framebuffer with color in pixelmap.
long con::vc::pslim_cscs ([in] l4con_pslim_rect_t rect,[in, ref, size_is(y_l)] unsigned char *y,[in] int y_l,[in, ref, size_is(u_l)] unsigned char *u,[in] int u_l,[in, ref, size_is(v_l)] unsigned char *v,[in] int v_l,[in] long yuv_type,[in] char scale)
 Convert pixmap from YUV to RGB color space, scale and set rectangular area of virtual framebuffer.
long con::vc::stream_cscs ([in] l4con_pslim_rect_t rect_src,[in] l4con_pslim_rect_t rect_dst,[in] byte yuv_type,[out] fpage *buffer,[out] unsigned long *offs_y,[out] unsigned long *offs_u,[out] unsigned long *offs_v)
 Streaming version of pslim_cscs().
long con::vc::graph_smode ([in] byte g_mode)
 Setup graphics mode of current virtual console.
long con::vc::graph_gmode ([out] byte *g_mode,[out] l4_uint32_t *xres,[out] l4_uint32_t *yres,[out] l4_uint32_t *bits_per_pixel,[out] l4_uint32_t *bytes_per_pixel,[out] l4_uint32_t *bytes_per_line,[out] l4_uint32_t *flags,[out] l4_uint32_t *xtxt,[out] l4_uint32_t *ytxt)
 Get graphics mode and mode parameters of current virtual console.
long con::vc::graph_get_rgb ([out] l4_uint32_t *red_offs,[out] l4_uint32_t *red_len,[out] l4_uint32_t *green_offs,[out] l4_uint32_t *green_len,[out] l4_uint32_t *blue_offs,[out] l4_uint32_t *blue_len)
 Get RGB values of current virtual console.
long con::vc::graph_mapfb ([in] unsigned long fb_offset,[out] fpage *page,[out] unsigned long *page_offset)
 Map the graphics memory into the client.
long con::vc::ev_sflt ([in] unsigned long filter)
 Setup input event filter.
long con::vc::ev_gflt ([out] unsigned long *filter)
 Get event filter of current virtual console.
long con::vc::puts ([in, ref, size_is(len)] char *s,[in] int len,[in] short x,[in] short y,[in] l4con_pslim_color_t fg_color,[in] l4con_pslim_color_t bg_color)
 Put string at x, y.
long con::vc::puts_scale ([in, ref, size_is(len)] char *s,[in] int len,[in] short x,[in] short y,[in] l4con_pslim_color_t fg_color,[in] l4con_pslim_color_t bg_color,[in] short scale_x,[in] short scale_y)
 Put string at x, y.
long con::vc::puts_attr ([in, ref, size_is(strattr_size)] short *s,[in] int strattr_size,[in] short x,[in] short y)
 Put colored string at x, y.
long con::vc::direct_setfb ([in] l4dm_dataspace_t data_ds)
 Make virtual framebuffer public to console.
long con::vc::direct_update ([in] l4con_pslim_rect_t rect)
 Update region using virtual framebuffer.

Detailed Description

virtual console (thread) interface.


Function Documentation

long con::vc::smode ( [in] byte  mode,
[in] l4_threadid_t  ev_handler 
) [inherited]

Set vc IN/OUT mode.

Parameters:
mode con protocol macro describing vc mode:
  • CON_OUT, CON_INOUT
ev_handler thread id of event handler
Returns:
0 on success, negative error codes otherwise

long con::vc::gmode ( [out] byte *  mode,
[out] unsigned long *  sbuf_1size,
[out] unsigned long *  sbuf_2size,
[out] unsigned long *  sbuf_3size 
) [inherited]

Get IN/OUT mode.

Return values:
mode con protocol macro describing vc mode
sbuf_1size,sbuf_2size,sbuf_3size size of receive buffers
Returns:
0 on success, negative error codes otherwise

long con::vc::share ( [in] l4_threadid_t  client  )  [inherited]

Allow client to access the console and map the physical framebuffer.

Parameters:
client thread ID of client to share

long con::vc::revoke ( [in] l4_threadid_t  client  )  [inherited]

Revoke right to access the console and map the physcial framebuffer.

Parameters:
client thread ID of client to revoke

long con::vc::close (  )  [inherited]

Close virtual console.

Returns:
0 for success

long con::vc::pslim_fill ( [in] l4con_pslim_rect_t  rect,
[in] l4con_pslim_color_t  color 
) [inherited]

Fill rectangular area of virtual framebuffer with color.

Make use of hardware support if possible.

Parameters:
rect vfb area info
color fill color
Returns:
0 for success

long con::vc::pslim_copy ( [in] l4con_pslim_rect_t  rect,
[in] short  dx,
[in] short  dy 
) [inherited]

Copy rectangular area of virtual framebuffer.

Make use of hardware support if possible.

Parameters:
rect vfb area info
dx destination x coordinate (may be negative)
dy dito for y coordinate
Returns:
0 for success

long con::vc::pslim_bmap ( [in] l4con_pslim_rect_t  rect,
[in] l4con_pslim_color_t  fg_color,
[in] l4con_pslim_color_t  bg_color,
[in, ref, size_is(bmap_size)] byte *  bmap,
[in] long  bmap_size,
[in] byte  bmap_type 
) [inherited]

Set rectangular area of virtual framebuffer with foreground and background color mask in (monochrome) bitmap.

Parameters:
rect vfb area info
fg_color foreground color
bg_color background color
bmap mask as bitmap
bmap_size of of bitmap
bmap_type type of bitmap: starting most or least significant bit (START_MSB/_LSB)
Returns:
0 for success

long con::vc::pslim_set ( [in] l4con_pslim_rect_t  rect,
[in, ref, size_is(pmap_size)] byte *  pmap,
[in] long  pmap_size 
) [inherited]

Set rectangular area of virtual framebuffer with color in pixelmap.

Pixelmap is a colored bitmap.

Parameters:
rect vfb area info
pmap pixmap
pmap_size length of pixmap
Returns:
0 for success

long con::vc::pslim_cscs ( [in] l4con_pslim_rect_t  rect,
[in, ref, size_is(y_l)] unsigned char *  y,
[in] int  y_l,
[in, ref, size_is(u_l)] unsigned char *  u,
[in] int  u_l,
[in, ref, size_is(v_l)] unsigned char *  v,
[in] int  v_l,
[in] long  yuv_type,
[in] char  scale 
) [inherited]

Convert pixmap from YUV to RGB color space, scale and set rectangular area of virtual framebuffer.

Parameters:
rect vfb area info
yuv_type type of pixmap's YUV encoding
scale scale factor of pixmap (defaults to 1) (NOT SUPPORTED YET)
y,u,v YUV values as arrays
y_l,u_l,v_l lenght of arrays
Returns:
0 for success

long con::vc::stream_cscs ( [in] l4con_pslim_rect_t  rect_src,
[in] l4con_pslim_rect_t  rect_dst,
[in] byte  yuv_type,
[out] fpage *  buffer,
[out] unsigned long *  offs_y,
[out] unsigned long *  offs_u,
[out] unsigned long *  offs_v 
) [inherited]

Streaming version of pslim_cscs().

This function is intended to make use of hardware accelerator support of modern graphics cards. The client writes YUV data to a non-visible "offscreen" region of the graphics memory. The backend scaler of the graphics card converts the data into RGB values and scales the window to fit into the destination rectangle. Most speed is gained by reducing the transported amount of data when using YV12 mode: Instead of 16 bits per pixel we use 12 bits which saves 25% memory writes to the very slow video memory of the graphics card.

Parameters:
rect_src dimensions of the original YUV picture
rect_dst dimensions of the scaled RGB picture
yuv_type type of pixmap's YUV encoding, currently only formats pSLIM_CSCS_PLN_YV12 and pSLIM_CSCS_PCK_YUY2 are supported.
buffer offscreen buffer to copy the YUV picture into
offs_y Y offset into buffer
offs_u U offset into buffer
offs_v V offset into buffer
Returns:
0 for success

long con::vc::graph_smode ( [in] byte  g_mode  )  [inherited]

Setup graphics mode of current virtual console.

Parameters:
g_mode con protocol macro describing graphics mode. Currently not implemented because the TUDOS console uses the video mode which is activated at boottime.
Returns:
0 for success, negative error codes otherwise
Todo:
implementation

long con::vc::graph_gmode ( [out] byte *  g_mode,
[out] l4_uint32_t *  xres,
[out] l4_uint32_t *  yres,
[out] l4_uint32_t *  bits_per_pixel,
[out] l4_uint32_t *  bytes_per_pixel,
[out] l4_uint32_t *  bytes_per_line,
[out] l4_uint32_t *  flags,
[out] l4_uint32_t *  xtxt,
[out] l4_uint32_t *  ytxt 
) [inherited]

Get graphics mode and mode parameters of current virtual console.

Return values:
g_mode con protocol macro describing graphics mode
xres,yres x/y dimension of the accessible screen
bits_per_pixel bits per pixel in this graphics mode
bytes_per_pixel bytes per pixel in this graphics mode
bytes_per_line bytes per line in this graphics mode
flags acceleration capabilities
xtxt,ytxt x/y dimension of the font
Returns:
0 for success, negative error codes otherwise

long con::vc::graph_get_rgb ( [out] l4_uint32_t *  red_offs,
[out] l4_uint32_t *  red_len,
[out] l4_uint32_t *  green_offs,
[out] l4_uint32_t *  green_len,
[out] l4_uint32_t *  blue_offs,
[out] l4_uint32_t *  blue_len 
) [inherited]

Get RGB values of current virtual console.

Return values:
red_offs start of red value in pixel
red_len length of red value in pixel
green_offs start of green value in pixel
green_len length of green value in pixel
blue_offs start of blue value in pixel
blue_len length of blue value in pixel
Returns:
0 for success, negative error codes otherwise

long con::vc::graph_mapfb ( [in] unsigned long  fb_offset,
[out] fpage *  page,
[out] unsigned long *  page_offset 
) [inherited]

Map the graphics memory into the client.

Return values:
page graphics memory
offset offset into mapped memory
Returns:
0 for success, negative error codes otherwise

long con::vc::ev_sflt ( [in] unsigned long  filter  )  [inherited]

Setup input event filter.

Parameters:
filter 
Returns:
0 for success, negative error codes otherwise
Todo:
implementation

long con::vc::ev_gflt ( [out] unsigned long *  filter  )  [inherited]

Get event filter of current virtual console.

Return values:
filter 
Returns:
0 for success, negative error codes otherwise
Todo:
implementation

long con::vc::puts ( [in, ref, size_is(len)] char *  s,
[in] int  len,
[in] short  x,
[in] short  y,
[in] l4con_pslim_color_t  fg_color,
[in] l4con_pslim_color_t  bg_color 
) [inherited]

Put string at x, y.

This is an extension of the original SLIM protocol to reduce the communication overhead of large text strings. Otherwise we would have to transmit graphics data between client and TUDOS console to write text.

Parameters:
s string containing char
len length of string
x destination x coordinate
y dito for y coordinate
fg_color foreground color
bg_color background color
Returns:
0 for success,

long con::vc::puts_scale ( [in, ref, size_is(len)] char *  s,
[in] int  len,
[in] short  x,
[in] short  y,
[in] l4con_pslim_color_t  fg_color,
[in] l4con_pslim_color_t  bg_color,
[in] short  scale_x,
[in] short  scale_y 
) [inherited]

Put string at x, y.

Parameters:
s string containing char
len length of string
x destination x coordinate
y dito for y coordinate
fg_color foreground color
bg_color background color
scale_x Horizontal scale factor
scale_y Vertical scale factor
Returns:
0 for success,

long con::vc::puts_attr ( [in, ref, size_is(strattr_size)] short *  s,
[in] int  strattr_size,
[in] short  x,
[in] short  y 
) [inherited]

Put colored string at x, y.

An extended version of puts especially designed for Linux.

Parameters:
s string containing char/attr.
strattr_size length of string
x destination x coordinate
y dito for y coordinate
Returns:
0 for success,

long con::vc::direct_setfb ( [in] l4dm_dataspace_t  data_ds  )  [inherited]

Make virtual framebuffer public to console.

This function makes it possible for a client to map a virtual framebuffer into the console. If something of the virtual framebuffer changes, the client sends an update event (using direct_update). This mechanism was especially designed for use with the XFree86 stub of the TUDOS console.

Parameters:
data_ds dataspace of virtual framebuffer
Returns:
0 for success,

long con::vc::direct_update ( [in] l4con_pslim_rect_t  rect  )  [inherited]

Update region using virtual framebuffer.

See direct_setfb for more explanations.

Parameters:
rect region to update
Returns:
0 for success,


DROPS Console User Manual, part of DROPS  © 2000-2003