Annotation of qemu/roms/openbios/arch/unix/gui_qt/qt-main.cpp, revision 1.1.1.1

1.1       root        1: /* tag: openbios qt user interface
                      2:  *
                      3:  * Copyright (C) 2003-2004 Stefan Reinauer
                      4:  *
                      5:  * See the file "COPYING" for further information about
                      6:  * the copyright and warranty status of this work.
                      7:  */
                      8: 
                      9: 
                     10: extern "C" {
                     11: #include <pthread.h>
                     12: #include <unistd.h>
                     13: #include "unix/plugins.h"
                     14: #include "unix/plugin_pci.h"
                     15: }
                     16: #include "gui-qt.h"
                     17: 
                     18: #define DEBUG
                     19: 
                     20: volatile unsigned char * fb=0;
                     21: volatile int gui_running=0;
                     22: 
                     23: typedef struct {
                     24:        int argc;
                     25:        char **argv;
                     26: } threaddata;
                     27: 
                     28: void *gui_thread(void *ptr)
                     29: {
                     30:        threaddata *td=(threaddata *)ptr;
                     31: 
                     32:        QApplication a(td->argc, td->argv);
                     33:        FrameBufferWidget w;
                     34: 
                     35:        a.setMainWidget(&w);
                     36:        w.show();
                     37: 
                     38:        fb=w.getFrameBuffer();
                     39: 
                     40:        gui_running=-1;
                     41:        a.exec();
                     42:        gui_running=0;
                     43: 
                     44:        return 0;
                     45: }
                     46: 
                     47: extern "C" {
                     48: extern int plugin_qt_init(void);
                     49: int plugin_qt_init(void)
                     50: {
                     51:        pthread_t mythread;
                     52:        char *args[]={ "plugin_qt" };
                     53:        threaddata mytd = { 1, args };
                     54: 
                     55: #ifdef DEBUG
                     56:        printf("Initializing \"framebuffer\" plugin...");
                     57: #endif
                     58:        pthread_create(&mythread, NULL, gui_thread, &mytd);
                     59:        while (!fb)
                     60:                usleep(20);
                     61: 
                     62: #if 0
                     63: 
                     64:        /* now we have the framebuffer start address.
                     65:         * updating pci config space to reflect this
                     66:         */
                     67: #if (BITS > 32)
                     68:        *(u32 *)(pci_config_space+0x14)=(u32)((unsigned long)fb>>32);
                     69: #else
                     70:        *(u32 *)(pci_config_space+0x14)=0;
                     71: #endif
                     72:        *(u32 *)(pci_config_space+0x10)=(u32)((unsigned long)fb&0xffffffff);
                     73: 
                     74:        /* next is to write the rom address. We write that at a random
                     75:         * address in pci config space for now.
                     76:         */
                     77: #if (BITS > 32)
                     78:        *(u32 *)(pci_config_space+0x34)=(u32)((unsigned long)qt_fcode>>32);
                     79: #else
                     80:        *(u32 *)(pci_config_space+0x34)=0;
                     81: #endif
                     82:        *(u32 *)(pci_config_space+0x30)=(u32)((unsigned long)qt_fcode&0xffffffff);
                     83: 
                     84:        /* FIXME: we need to put the fcode image for this
                     85:         * device to the rom resource, once it exists
                     86:         */
                     87: 
                     88:        /* register pci device to be available to beginagain */
                     89:        pci_register_device(0, 2, 0, pci_config_space);
                     90: #endif
                     91: #ifdef DEBUG
                     92:        printf("done.\n");
                     93: #endif
                     94:        return 0;
                     95: }
                     96: 
                     97: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.