Changeset 7447572 in mainline


Ignore:
Timestamp:
2009-01-09T21:15:07Z (15 years ago)
Author:
Jiri Svoboda <jirik.svoboda@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
4a62ec9
Parents:
f651e80
Message:

Fix fb-con interbuffer for much faster redraw on a VC switch.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/console/console.c

    rf651e80 r7447572  
    495495        ipcarg_t phonehash;
    496496        int kbd_phone;
     497        size_t ib_size;
    497498        int i;
    498499       
     
    545546        }
    546547        connections[KERNEL_CONSOLE].used = 1;
    547        
    548         interbuffer = mmap(NULL,
    549             sizeof(keyfield_t) * fb_info.cols * fb_info.rows,
    550             PROTO_READ | PROTO_WRITE, MAP_ANONYMOUS | MAP_PRIVATE, 0, 0);
    551         if (!interbuffer) {
     548
     549        /* Set up shared memory buffer. */
     550        ib_size = sizeof(keyfield_t) * fb_info.cols * fb_info.rows;
     551        interbuffer = as_get_mappable_page(ib_size);
     552
     553        if (as_area_create(interbuffer, ib_size, AS_AREA_READ |
     554            AS_AREA_WRITE | AS_AREA_CACHEABLE) != interbuffer) {
     555                interbuffer = NULL;
     556        }
     557
     558        if (interbuffer) {
    552559                if (ipc_share_out_start(fb_info.phone, interbuffer,
    553560                    AS_AREA_READ) != EOK) {
    554                         munmap(interbuffer,
    555                             sizeof(keyfield_t) * fb_info.cols * fb_info.rows);
     561                        as_area_destroy(interbuffer);
    556562                        interbuffer = NULL;
    557563                }
Note: See TracChangeset for help on using the changeset viewer.