Welcome to The Fiwix Project
A UNIX-like kernel for the i386 architecture
addr 25 drivers/block/dma.c #define LOW_BYTE(addr) (addr & 0x00FF) addr 26 drivers/block/dma.c #define HIGH_BYTE(addr) ((addr & 0xFF00) >> 8) addr 115 drivers/block/ramdisk.c memcpy_b((void *)buffer, ramdisk->addr + offset, blksize); addr 136 drivers/block/ramdisk.c memcpy_b(ramdisk->addr + offset, buffer, blksize); addr 190 drivers/block/ramdisk.c printk("ram%d 0x%08X-0x%08X %d RAMdisk(s) of %dKB size, %dKB blocksize\n", n, ramdisk->addr, ramdisk->addr + (_ramdisksize * 1024), RAMDISK_MINORS, _ramdisksize, BLKSIZE_1K / 1024); addr 85 drivers/char/fb.c unsigned int addr; addr 91 drivers/char/fb.c addr = (unsigned int)video.address + fd_table->offset; addr 93 drivers/char/fb.c memcpy_b(buffer, (void *)addr, count); addr 100 drivers/char/fb.c unsigned int addr; addr 106 drivers/char/fb.c addr = (unsigned int)video.address + fd_table->offset; addr 108 drivers/char/fb.c memcpy_b((void *)addr, buffer, count); addr 490 drivers/char/memdev.c unsigned int addr, length; addr 495 drivers/char/memdev.c for(addr = 0; addr < length; addr += PAGE_SIZE) { addr 497 drivers/char/memdev.c if(!addr_in_bios_map(vma->offset + addr)) { addr 498 drivers/char/memdev.c if(!map_page(current, (vma->start + addr) & PAGE_MASK, (vma->offset + addr) & PAGE_MASK, PROT_READ | PROT_WRITE)) { addr 503 drivers/char/memdev.c printk("\tinvalid mapping: 0x%08x -> 0x%08x\n", (vma->start + addr) & PAGE_MASK, (vma->offset + addr) & PAGE_MASK); addr 130 drivers/char/serial.c outport_b(s->addr + UART_FCR, (UART_FCR_FIFO | addr 135 drivers/char/serial.c value = inport_b(s->addr + UART_IIR); addr 153 drivers/char/serial.c value = inport_b(s->addr + UART_SR); /* save its value */ addr 154 drivers/char/serial.c outport_b(s->addr + UART_SR, 0xAA); /* put a random value */ addr 155 drivers/char/serial.c if(inport_b(s->addr + UART_SR) != 0xAA) { addr 159 drivers/char/serial.c outport_b(s->addr + UART_SR, value); /* restore it */ addr 171 drivers/char/serial.c outport_b(s->addr + UART_IER, 0); /* disable all interrupts */ addr 174 drivers/char/serial.c outport_b(s->addr + UART_LCR, UART_LCR_DLAB); /* enable DLAB */ addr 175 drivers/char/serial.c outport_b(s->addr + UART_DLL, divisor & 0xFF); /* LSB of divisor */ addr 176 drivers/char/serial.c outport_b(s->addr + UART_DLH, divisor >> 8); /* MSB of divisor */ addr 177 drivers/char/serial.c outport_b(s->addr + UART_LCR, s->lctrl); /* line control */ addr 188 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI); addr 200 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI | UART_IER_THREI); addr 286 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI); addr 293 drivers/char/serial.c outport_b(s->addr + UART_TD, ch); addr 298 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI); addr 317 drivers/char/serial.c ch = inport_b(s->addr + UART_RD); addr 319 drivers/char/serial.c status = inport_b(s->addr + UART_LSR); addr 336 drivers/char/serial.c while(!(inport_b(s->addr + UART_IIR) & UART_IIR_NOINT)) { addr 337 drivers/char/serial.c status = inport_b(s->addr + UART_LSR); addr 368 drivers/char/serial.c outport_b(s->addr + UART_FCR, UART_FCR_FIFO | UART_FCR_FIFO14); addr 370 drivers/char/serial.c outport_b(s->addr + UART_MCR, UART_MCR_OUT2 | UART_MCR_RTS | UART_MCR_DTR); addr 373 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI); addr 376 drivers/char/serial.c inport_b(s->addr + UART_RD); addr 377 drivers/char/serial.c inport_b(s->addr + UART_IIR); addr 378 drivers/char/serial.c inport_b(s->addr + UART_LSR); addr 379 drivers/char/serial.c inport_b(s->addr + UART_MSR); addr 401 drivers/char/serial.c outport_b(s->addr + UART_IER, 0); addr 404 drivers/char/serial.c outport_b(s->addr + UART_FCR, UART_FCR_CRCVR | UART_FCR_CXMTR); addr 407 drivers/char/serial.c inport_b(s->addr + UART_RD); addr 427 drivers/char/serial.c outport_b(s->addr + UART_LCR, UART_LCR_DLAB); /* enable DLAB */ addr 428 drivers/char/serial.c outport_b(s->addr + UART_DLL, divisor & 0xFF); /* LSB of divisor */ addr 429 drivers/char/serial.c outport_b(s->addr + UART_DLH, divisor >> 8); /* MSB of divisor */ addr 467 drivers/char/serial.c outport_b(s->addr + UART_LCR, lctrl); /* line control */ addr 477 drivers/char/serial.c outport_b(s->addr + UART_IER, UART_IER_RDAI | UART_IER_THREI); addr 513 drivers/char/serial.c printk("ttyS%d 0x%04X-0x%04X %d type=%s%s\n", n, s->addr, s->addr + 7, s->irq, serial_chip[type], s->flags & UART_HAS_FIFO ? " FIFO=yes" : ""); addr 63 drivers/video/fbcon.c static void set_color(void *addr, int color) addr 72 drivers/video/fbcon.c addr32 = (unsigned int *)addr; addr 76 drivers/video/fbcon.c addr8 = (unsigned char *)addr; addr 86 drivers/video/fbcon.c addr16 = (unsigned short int *)addr; addr 93 drivers/video/fbcon.c addr16 = (unsigned short int *)addr; addr 99 drivers/video/fbcon.c static void draw_glyph(unsigned char *addr, int x, int y, unsigned char *ch, int color) addr 108 drivers/video/fbcon.c addr += offset; addr 113 drivers/video/fbcon.c addr += video.fb_pitch; addr 118 drivers/video/fbcon.c set_color(addr, get_bg_color(color)); addr 119 drivers/video/fbcon.c addr += video.fb_pixelwidth; addr 126 drivers/video/fbcon.c set_color(addr, get_fg_color(color)); addr 128 drivers/video/fbcon.c set_color(addr, get_bg_color(color)); addr 130 drivers/video/fbcon.c addr += video.fb_pixelwidth; addr 134 drivers/video/fbcon.c addr += (video.fb_width - video.fb_char_width) * video.fb_pixelwidth; addr 80 fs/elf.c unsigned int n, addr; addr 86 fs/elf.c addr = KERNEL_BASE_ADDR - ((ARG_MAX - n) * PAGE_SIZE); addr 87 fs/elf.c memcpy_b((void *)addr, (void *)barg->page[n], PAGE_SIZE); addr 442 fs/procfs/data.c unsigned int addr, offset; addr 450 fs/procfs/data.c addr = get_mapped_addr(p, (int)argv) & PAGE_MASK; addr 451 fs/procfs/data.c addr = P2V(addr); addr 452 fs/procfs/data.c argv = (char **)(addr + offset); addr 454 fs/procfs/data.c addr = get_mapped_addr(p, (int)argv[0]) & PAGE_MASK; addr 455 fs/procfs/data.c addr = P2V(addr); addr 456 fs/procfs/data.c arg = (char *)(addr + offset); addr 493 fs/procfs/data.c unsigned int addr, offset; addr 501 fs/procfs/data.c addr = get_mapped_addr(p, (int)envp) & PAGE_MASK; addr 502 fs/procfs/data.c addr = P2V(addr); addr 503 fs/procfs/data.c envp = (char **)(addr + offset); addr 505 fs/procfs/data.c addr = get_mapped_addr(p, (int)envp[0]) & PAGE_MASK; addr 506 fs/procfs/data.c addr = P2V(addr); addr 507 fs/procfs/data.c env = (char *)(addr + offset); addr 19 include/fiwix/mm.h #define P2V(addr) (addr < KERNEL_BASE_ADDR ? addr + KERNEL_BASE_ADDR : addr) addr 21 include/fiwix/mm.h #define V2P(addr) (addr - KERNEL_BASE_ADDR) addr 26 include/fiwix/mm.h #define PAGE_ALIGN(addr) (((addr) + (PAGE_SIZE - 1)) & PAGE_MASK) addr 129 include/fiwix/multiboot1.h multiboot_uint32_t addr; addr 139 include/fiwix/multiboot1.h multiboot_uint32_t addr; addr 233 include/fiwix/multiboot1.h multiboot_uint64_t addr; addr 19 include/fiwix/ramdisk.h char *addr; /* ramdisk memory address */ addr 96 include/fiwix/serial.h short int addr; /* port I/O address */ addr 44 include/fiwix/traps.h const char * elf_lookup_symbol(unsigned int addr); addr 16 kernel/cmos.c unsigned char cmos_read_date(unsigned char addr) addr 22 kernel/cmos.c return BCD2BIN(cmos_read(addr)); addr 24 kernel/cmos.c return cmos_read(addr); addr 27 kernel/cmos.c void cmos_write_date(unsigned char addr, unsigned char value) addr 33 kernel/cmos.c cmos_write(addr, BIN2BCD(value)); addr 35 kernel/cmos.c cmos_write(addr, value); addr 38 kernel/cmos.c unsigned char cmos_read(unsigned char addr) addr 43 kernel/cmos.c outport_b(CMOS_INDEX, addr); addr 49 kernel/cmos.c void cmos_write(unsigned char addr, unsigned char value) addr 54 kernel/cmos.c outport_b(CMOS_INDEX, addr); addr 160 kernel/multiboot.c unsigned int addr; addr 166 kernel/multiboot.c shdr = (Elf32_Shdr *)(hdr->addr + (n * hdr->size)); addr 175 kernel/multiboot.c addr = strtab->sh_addr + strtab->sh_size; addr 186 kernel/multiboot.c addr = mod->mod_end; addr 190 kernel/multiboot.c return P2V(addr); addr 255 kernel/multiboot.c ramdisk_table[0].addr = (char *)mod->mod_start; addr 107 kernel/pic.c int addr; addr 109 kernel/pic.c addr = (irq > 7) ? PIC_SLAVE + DATA : PIC_MASTER + DATA; addr 112 kernel/pic.c outport_b(addr, inport_b(addr) & ~(1 << irq)); addr 117 kernel/pic.c int addr; addr 119 kernel/pic.c addr = (irq > 7) ? PIC_SLAVE + DATA : PIC_MASTER + DATA; addr 122 kernel/pic.c outport_b(addr, inport_b(addr) | (1 << irq)); addr 19 kernel/sleep.c #define SLEEP_HASH(addr) ((addr) % (NR_BUCKETS)) addr 115 kernel/syscalls.c int check_user_area(int type, const void *addr, unsigned int size) addr 126 kernel/syscalls.c start = (unsigned int)addr; addr 19 kernel/syscalls/mprotect.c int sys_mprotect(unsigned int addr, __size_t length, int prot) addr 24 kernel/syscalls/mprotect.c printk("(pid %d) sys_mprotect(0x%08x, %d, %d)\n", current->pid, addr, length, prot); addr 27 kernel/syscalls/mprotect.c if((addr & ~PAGE_MASK) || length < 0) { addr 33 kernel/syscalls/mprotect.c if(!(vma = find_vma_region(addr))) { addr 37 kernel/syscalls/mprotect.c if((addr + length) > vma->end) { addr 48 kernel/syscalls/mprotect.c return do_mprotect(vma, addr, length, prot); addr 16 kernel/syscalls/munmap.c int sys_munmap(unsigned int addr, __size_t length) addr 19 kernel/syscalls/munmap.c printk("(pid %d) sys_munmap(0x%08x, %d)\n", current->pid, addr, length); addr 21 kernel/syscalls/munmap.c return do_munmap(addr, length); addr 265 kernel/traps.c const char * elf_lookup_symbol(unsigned int addr) addr 275 kernel/traps.c if(addr >= sym->st_value && addr < (sym->st_value + sym->st_size)) { addr 285 kernel/traps.c unsigned int addr, *sp; addr 302 kernel/traps.c addr = *sp; addr 303 kernel/traps.c str = elf_lookup_symbol(addr); addr 305 kernel/traps.c printk("<0x%08x> %s()\n", addr, str); addr 20 mm/alloc.c unsigned int addr; addr 23 mm/alloc.c addr = pg->page << PAGE_SHIFT; addr 24 mm/alloc.c return P2V(addr); addr 31 mm/alloc.c void kfree(unsigned int addr) addr 33 mm/alloc.c addr = V2P(addr); addr 34 mm/alloc.c release_page(addr >> PAGE_SHIFT); addr 25 mm/bios_map.c int addr_in_bios_map(unsigned int addr) addr 35 mm/bios_map.c if(addr >= bmm->from && addr < (bmm->to & PAGE_MASK)) { addr 45 mm/bios_map.c if(addr >= bmm->from && addr < (bmm->to & PAGE_MASK)) { addr 97 mm/bios_map.c from_high = (unsigned int)(bmmap->addr >> 32); addr 98 mm/bios_map.c from_low = (unsigned int)(bmmap->addr & 0xFFFFFFFF); addr 99 mm/bios_map.c to = bmmap->addr + bmmap->len; addr 36 mm/fault.c unsigned int pde, pte, addr; addr 56 mm/fault.c if(!(addr = kmalloc())) { addr 61 mm/fault.c memcpy_b((void *)addr, (void *)P2V((page << PAGE_SHIFT)), PAGE_SIZE); addr 62 mm/fault.c pgtbl[pte] = V2P(addr) | PAGE_PRESENT | PAGE_RW | PAGE_USER; addr 87 mm/fault.c unsigned int addr, file_offset; addr 123 mm/fault.c addr = (unsigned int)pg->data; addr 127 mm/fault.c if(!(addr = map_page(current, cr2, 0, vma->prot))) { addr 131 mm/fault.c pg = &page_table[V2P(addr) >> PAGE_SHIFT]; addr 140 mm/fault.c addr = 0; addr 144 mm/fault.c if(!addr) { addr 145 mm/fault.c if(!(addr = map_page(current, cr2, 0, vma->prot))) { addr 150 mm/fault.c memset_b((void *)(addr & PAGE_MASK), NULL, PAGE_SIZE); addr 66 mm/memory.c unsigned int addr; addr 67 mm/memory.c addr = _last_data_addr; addr 69 mm/memory.c kpage_dir[pde] = addr | flags; addr 70 mm/memory.c memset_b((void *)addr, NULL, PAGE_SIZE); addr 90 mm/memory.c unsigned int addr; addr 94 mm/memory.c addr = KERNEL_BASE_ADDR + PGDIR_4MB_ADDR; addr 96 mm/memory.c kpage_dir = (unsigned int *)addr; addr 99 mm/memory.c addr += PAGE_SIZE; addr 100 mm/memory.c kpage_table = (unsigned int *)addr; addr 107 mm/memory.c kpage_dir[pd] = (unsigned int)(addr + (PAGE_SIZE * pd) + 0x40000000) | PAGE_PRESENT | PAGE_RW; addr 108 mm/memory.c kpage_dir[GET_PGDIR(KERNEL_BASE_ADDR) + pd] = (unsigned int)(addr + (PAGE_SIZE * pd) + 0x40000000) | PAGE_PRESENT | PAGE_RW; addr 115 mm/memory.c unsigned int get_mapped_addr(struct proc *p, unsigned int addr) addr 121 mm/memory.c pde = GET_PGDIR(addr); addr 122 mm/memory.c pte = GET_PGTBL(addr); addr 201 mm/memory.c unsigned int map_page(struct proc *p, unsigned int vaddr, unsigned int addr, unsigned int prot) addr 221 mm/memory.c if(!addr) { addr 222 mm/memory.c if(!(addr = kmalloc())) { addr 225 mm/memory.c addr = V2P(addr); addr 228 mm/memory.c pgtbl[pte] = addr | PAGE_PRESENT | PAGE_USER; addr 233 mm/memory.c return P2V(addr); addr 239 mm/memory.c unsigned int addr; addr 256 mm/memory.c addr = pgtbl[pte] & PAGE_MASK; addr 258 mm/memory.c kfree(P2V(addr)); addr 407 mm/memory.c if(ramdisk_table[0].addr) { addr 419 mm/memory.c ramdisk_table[n].addr = (char *)_last_data_addr; addr 188 mm/mmap.c unsigned int n, addr; addr 195 mm/mmap.c addr = MMAP_START; addr 202 mm/mmap.c if(vma->start - addr >= length) { addr 203 mm/mmap.c return PAGE_ALIGN(addr); addr 205 mm/mmap.c addr = PAGE_ALIGN(vma->end); addr 212 mm/mmap.c unsigned int n, addr; addr 235 mm/mmap.c addr = start - vma->start + vma->offset; addr 236 mm/mmap.c write_page(pg, vma->inode, addr, length); addr 307 mm/mmap.c struct vma * find_vma_region(unsigned int addr) addr 312 mm/mmap.c if(!addr) { addr 316 mm/mmap.c addr &= PAGE_MASK; addr 320 mm/mmap.c if((addr >= vma->start) && (addr < vma->end)) { addr 453 mm/mmap.c int do_munmap(unsigned int addr, __size_t length) addr 459 mm/mmap.c if((addr & ~PAGE_MASK) || length < 0) { addr 466 mm/mmap.c if((vma = find_vma_region(addr))) { addr 467 mm/mmap.c if((addr + length) > vma->end) { addr 468 mm/mmap.c size = vma->end - addr; addr 473 mm/mmap.c free_vma_pages(addr, size, vma); addr 475 mm/mmap.c if((errno = free_vma_region(vma, addr, size))) { addr 483 mm/mmap.c addr += size; addr 492 mm/mmap.c int do_mprotect(struct vma *vma, unsigned int addr, __size_t length, int prot) addr 502 mm/mmap.c new->start = addr; addr 503 mm/mmap.c new->end = addr + length; addr 339 mm/page.c unsigned int addr, poffset, bytes; addr 358 mm/page.c if(!(addr = kmalloc())) { addr 363 mm/page.c pg = &page_table[V2P(addr) >> PAGE_SHIFT]; addr 365 mm/page.c kfree(addr); addr 371 mm/page.c addr = (unsigned int)pg->data; addr 381 mm/page.c kfree(addr); addr 392 mm/page.c unsigned int n, addr; addr 401 mm/page.c addr = n << PAGE_SHIFT; addr 402 mm/page.c if(addr >= KERNEL_ENTRY_ADDR && addr < V2P(_last_data_addr)) { addr 413 mm/page.c if(!addr_in_bios_map(addr)) { addr 419 mm/page.c pg->data = (char *)P2V(addr);