Exemplo n.º 1
0
int main()
{
	textInit();
	
	simplePrintf("Hello world!"); // 28KB
	return 0;
}
Exemplo n.º 2
0
int
main(int argc, char *argv[]) {
    char *me, *server=NULL;
    int opt; /* current option being parsed */
    unsigned short port=0;

    me = argv[0];
    while ((opt = getopt(argc, argv, "qs:p:")) != -1)
        switch (opt) {
        case 'q':
            quiet = 1;
            break;
        case 's':
            server = optarg;
            break;
        case 'p':
            if (1 != sscanf(optarg, "%hu", &port)) {
                fprintf(stderr, "%s: couldn't parse \"%s\" as port for -p\n",
                        me, optarg);
                break;
            }
            break;
        default:
            usage(me);
        }
    if (!( server && port )) {
        usage(me);
    }

    /* gets the socket for the connection with the server */
    connfd = serverConnect(server, port);
    if (-1 == connfd) {
        fprintf(stderr, "%s: Couldn't connect to server %s:%u\n",
                me, server, port);
        exit(1);
    }

    textInit();

    exit(0);
}
Exemplo n.º 3
0
// The main function
int init(unsigned long magic, multiboot_info_t* hdr)
{
        setGDT();
        init_heap();
#ifdef SLAB
        slab_alloc_init();
#endif
        textInit();
        /**
         * \todo Make complement_heap so that it allocates memory from pte
         */
        complement_heap(&end, HEAPSIZE);
        addr_t tmp = (addr_t)hdr + offset;
        hdr = (multiboot_info_t*)tmp;

        if (magic != MULTIBOOT_BOOTLOADER_MAGIC)
        {
                printf("\nInvalid magic word: %X\n", magic);
                panic("");
        }
        if (hdr->flags & MULTIBOOT_INFO_MEMORY)
        {
                memsize = hdr->mem_upper;
                memsize += 1024;
        }
        else
                panic("No memory flags!");
        if (!(hdr->flags & MULTIBOOT_INFO_MEM_MAP))
                panic("Invalid memory map");

        mmap = (multiboot_memory_map_t*) hdr->mmap_addr;

        /** Build the memory map and allow for allocation */
        x86_pte_init();
        page_alloc_init(mmap, (unsigned int)hdr->mmap_length);
        vm_init();
#ifdef PA_DBG
//         endProg();
#endif
        /** In the progress of phasing out */
        /** Set up paging administration */
        x86_page_init(memsize);
        mboot_page_setup(mmap, (uint32_t)hdr->mmap_length);
        mboot_map_modules((void*)hdr->mods_addr, hdr->mods_count);

        /** For now this is the temporary page table map */
        build_map(mmap, (unsigned int) hdr->mmap_length);

        /** end of deprication */
        task_init();

        page_init();
        printf(WELCOME); // The only screen output that should be maintained
        page_unmap_low_mem();
        pic_init();
        setIDT();
        setup_irq_data();

        if (dev_init() != -E_SUCCESS)
                panic("Couldn't initialise /dev");

        ol_pit_init(1024); // program pic to 1024 hertz

        debug("Size of the heap: 0x%x\tStarting at: %x\n", HEAPSIZE, heap);

        acpi_init();
        ol_cpu_t cpu = kalloc(sizeof (*cpu));
        if (cpu == NULL)
                panic("OUT OF MEMORY!");
        ol_cpu_init(cpu);

        ol_ps2_init_keyboard();
        ol_apic_init(cpu);
        init_ioapic();
        ol_pci_init();
        debug("Little endian 0xf in net endian %x\n", htons(0xf));
#ifdef DBG
#ifdef __IOAPIC_DBG
        ioapic_debug();
#endif
#ifdef __MEMTEST
        ol_detach_all_devices(); /* free's al the pci devices */
#endif
#ifdef __DBG_HEAP
        printf("Heap list:\n");
        ol_dbg_heap();
#endif
        printf("\nSome (temp) debug info:\n");
        printf("CPU vendor: %s\n", cpus->vendor);

        if(systables->magic == SYS_TABLE_MAGIC)
        {
                printf("RSDP ASCII signature: 0x%x%x\n",
                *(((uint32_t*) systables->rsdp->signature) + 1),
                *(((uint32_t*) systables->rsdp->signature)));
                printf("MP specification signature: 0x%x\n", systables->mp->signature);
        }
#endif
#ifdef PA_DBG
        addr_t p = (addr_t)page_alloc();
        page_free((void*)p);
        printf("Allocated: %X\n", p);
        page_dump();
#endif
#ifdef PA_DBG
        addr_t p = (addr_t)page_alloc();
        page_free((void*)p);
        printf("Allocated: %X\n", p);
        page_dump();
#endif

        core_loop();
        return 0; // To keep the compiler happy.
}
Exemplo n.º 4
0
WindowSFML::WindowSFML()
{
	//constructor
	
	textInit();
	
	err.setPrefix("widap::WindowSFML: ");
	
	drawClr=Clr(0, 0, 0);
	drawAlpha=1;
	data=0;
	
	if (firstInstance)
	{
		/*if
		(
			!font.loadFromFile("/usr/share/fonts/truetype/ubuntu-font-family/UbuntuMono-R.ttf") &&
			!font.loadFromFile("/usr/share/fonts/truetype/freefont/FreeMono.ttf") &&
			!font.loadFromFile("/usr/share/fonts/TTF/DejaVuSans.ttf")
		)
		{
			err << "font failed to load" << err;
		}*/
		
		int i;
		
		for (i=0; i<127; ++i)
		{
			key2char[i]=1;
		}
		
		for (i=sf::Keyboard::A; i<=sf::Keyboard::Z; ++i) //letters
			key2char[i]=i-sf::Keyboard::A+int('A');
			
		for (i=sf::Keyboard::Num0; i<=sf::Keyboard::Num9; ++i) //number row
			key2char[i]=i-sf::Keyboard::Num0+int('0');
			
		for (i=sf::Keyboard::Numpad0; i<=sf::Keyboard::Numpad9; ++i) //number pad
			key2char[i]=i-sf::Keyboard::Numpad0+int('0');
			
		key2char[int(sf::Keyboard::Space)]=' ';
		key2char[int(sf::Keyboard::Period)]='.';
		key2char[int(sf::Keyboard::Comma)]=',';
		key2char[int(sf::Keyboard::BackSlash)]='\\';
		key2char[int(sf::Keyboard::Slash)]='/';
		key2char[int(sf::Keyboard::LBracket)]='[';
		key2char[int(sf::Keyboard::RBracket)]=']';
		key2char[int(sf::Keyboard::Quote)]='\'';
		key2char[int(sf::Keyboard::SemiColon)]=';';
		key2char[int(sf::Keyboard::Delete)]=127;
		key2char[int(sf::Keyboard::BackSpace)]='\b';
		key2char[int(sf::Keyboard::Return)]='\n';
		key2char[int(sf::Keyboard::Tab)]='\t';
		key2char[int(sf::Keyboard::Equal)]='=';
		key2char[int(sf::Keyboard::Dash)]='-';
		key2char[int(sf::Keyboard::Left)]='a'; //I use lower key2char[int(wasd for arrow keys)]
		key2char[int(sf::Keyboard::Right)]='d';
		key2char[int(sf::Keyboard::Up)]='w';
		key2char[int(sf::Keyboard::Down)]='s';
		
		firstInstance=0;
	}
}