int main() { textInit(); simplePrintf("Hello world!"); // 28KB return 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); }
// 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. }
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; } }