Subversion Repositories HelenOS

Rev

Rev 4343 | Rev 4347 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 4343 Rev 4346
Line 281... Line 281...
281
/** Print character to screen
281
/** Print character to screen
282
 *
282
 *
283
 * Emulate basic terminal commands.
283
 * Emulate basic terminal commands.
284
 *
284
 *
285
 */
285
 */
286
static void fb_putchar(chardev_t *dev, char ch, bool silent)
286
static void fb_putchar(outdev_t *dev, char ch, bool silent)
287
{
287
{
288
    spinlock_lock(&fb_lock);
288
    spinlock_lock(&fb_lock);
289
   
289
   
290
    switch (ch) {
290
    switch (ch) {
291
    case '\n':
291
    case '\n':
Line 324... Line 324...
324
    cursor_put(silent);
324
    cursor_put(silent);
325
   
325
   
326
    spinlock_unlock(&fb_lock);
326
    spinlock_unlock(&fb_lock);
327
}
327
}
328
 
328
 
329
static chardev_t framebuffer;
329
static outdev_t fb_console;
330
static chardev_operations_t fb_ops = {
330
static outdev_operations_t fb_ops = {
331
    .write = fb_putchar,
331
    .write = fb_putchar
332
};
332
};
333
 
333
 
334
 
334
 
335
/** Render glyphs
335
/** Render glyphs
336
 *
336
 *
Line 421... Line 421...
421
            memcpy(&fb_addr[FB_POS(0, y)], bgscan, bgscanbytes);
421
            memcpy(&fb_addr[FB_POS(0, y)], bgscan, bgscanbytes);
422
    }
422
    }
423
}
423
}
424
 
424
 
425
 
425
 
426
/** Initialize framebuffer as a chardev output device
426
/** Initialize framebuffer as a output character device
427
 *
427
 *
428
 * @param addr   Physical address of the framebuffer
428
 * @param addr   Physical address of the framebuffer
429
 * @param x      Screen width in pixels
429
 * @param x      Screen width in pixels
430
 * @param y      Screen height in pixels
430
 * @param y      Screen height in pixels
431
 * @param scan   Bytes per one scanline
431
 * @param scan   Bytes per one scanline
Line 524... Line 524...
524
    sysinfo_set_item_val("fb.visual", NULL, props->visual);
524
    sysinfo_set_item_val("fb.visual", NULL, props->visual);
525
    sysinfo_set_item_val("fb.address.physical", NULL, props->addr);
525
    sysinfo_set_item_val("fb.address.physical", NULL, props->addr);
526
   
526
   
527
    fb_redraw();
527
    fb_redraw();
528
   
528
   
529
    chardev_initialize("fb", &framebuffer, &fb_ops);
529
    outdev_initialize("fb", &fb_console, &fb_ops);
530
    stdout = &framebuffer;
530
    stdout = &fb_console;
531
}
531
}
532
 
532
 
533
/** @}
533
/** @}
534
 */
534
 */