Changeset 46321fb in mainline for kernel/arch/ia64/src/ddi/ddi.c
- Timestamp:
- 2008-11-25T20:22:04Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 83d9712
- Parents:
- 14c331a
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/ddi/ddi.c
r14c331a r46321fb 1 1 /* 2 * Copyright (c) 2006 Jakub Jermar 2 * Copyright (c) 2006 Jakub Jermar, Jakub vana 3 3 * All rights reserved. 4 4 * … … 36 36 #include <proc/task.h> 37 37 #include <arch/types.h> 38 #include <mm/slab.h> 39 #include <errno.h> 40 41 #define IO_MEMMAP_PAGES 16384 42 #define PORTS_PER_PAGE 4 38 43 39 44 /** Enable I/O space range for task. … … 49 54 int ddi_iospace_enable_arch(task_t *task, uintptr_t ioaddr, size_t size) 50 55 { 56 57 if(!task->arch.iomap) 58 { 59 uint8_t *map; 60 task->arch.iomap=malloc(sizeof(bitmap_t),0); 61 map=malloc(BITS2BYTES(IO_MEMMAP_PAGES),0); 62 if(!map) 63 return ENOMEM; 64 bitmap_initialize(task->arch.iomap,map,IO_MEMMAP_PAGES); 65 bitmap_clear_range(task->arch.iomap,0,IO_MEMMAP_PAGES); 66 } 67 68 uintptr_t iopage = ioaddr / PORTS_PER_PAGE; 69 size = ALIGN_UP (size+ioaddr-4*iopage,PORTS_PER_PAGE); 70 bitmap_set_range(task->arch.iomap,iopage,size/4); 71 72 51 73 return 0; 52 74 }
Note:
See TracChangeset
for help on using the changeset viewer.