/uspace/trunk/fb/ega.c |
---|
File deleted |
/uspace/trunk/fb/ega.h |
---|
File deleted |
/uspace/trunk/fb/main.c |
---|
33,7 → 33,6 |
#include "fb.h" |
#include "sysio.h" |
#include "ega.h" |
int main(int argc, char *argv[]) |
{ |
43,11 → 42,7 |
if (sysinfo_value("fb.kind") == 1) { |
if (fb_init() == 0) |
initialized = 1; |
} else if (sysinfo_value("fb.kind") == 2) { |
if (ega_init() == 0) |
initialized = 1; |
} |
if (!initialized) |
sysio_init(); |
/uspace/trunk/fb/fb.c |
---|
564,7 → 564,7 |
fb_addr=ALIGN_UP(((__address)set_maxheapsize(USER_ADDRESS_SPACE_SIZE_ARCH>>1)),PAGE_SIZE); |
map_physmem((void *)((__address)fb_ph_addr),(void *)fb_addr, |
map_physmem(task_get_id(),(void *)((__address)fb_ph_addr),(void *)fb_addr, |
(fb_scanline*fb_height+PAGE_SIZE-1)>>PAGE_WIDTH, |
AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE); |
/uspace/trunk/fb/Makefile |
---|
48,8 → 48,7 |
fb.c \ |
font-8x16.c \ |
main.c \ |
sysio.c \ |
ega.c |
sysio.c |
OBJECTS := $(addsuffix .o,$(basename $(SOURCES))) |
/uspace/trunk/libc/include/ddi.h |
---|
31,7 → 31,7 |
#include <task.h> |
extern int map_physmem(void *pf, void *vp, unsigned long pages, int flags); |
extern int map_physmem(task_id_t id, void *pf, void *vp, unsigned long pages, int flags); |
extern int iospace_enable(task_id_t id, void *ioaddr, unsigned long size); |
extern int preemption_control(int enable); |
/uspace/trunk/libc/generic/ddi.c |
---|
45,9 → 45,18 |
* ENOENT if there is no task with specified ID and ENOMEM if there |
* was some problem in creating address space area. |
*/ |
int map_physmem(void *pf, void *vp, unsigned long pages, int flags) |
int map_physmem(task_id_t id, void *pf, void *vp, unsigned long pages, int flags) |
{ |
return __SYSCALL4(SYS_MAP_PHYSMEM, (sysarg_t) pf, (sysarg_t)vp, pages, flags); |
task_id_t task_id; |
ddi_memarg_t arg; |
arg.task_id = id; |
arg.phys_base = pf; |
arg.virt_base = vp; |
arg.pages = pages; |
arg.flags = flags; |
return __SYSCALL1(SYS_MAP_PHYSMEM, (sysarg_t) &arg); |
} |
/** Enable I/O space range to task. |
/uspace/trunk/ns/ns.c |
---|
88,7 → 88,8 |
return; |
} |
addr = (void *)(200*1024*1024); /* TODO: intelligent freemem space */ |
map_physmem(ph_addr, addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE); |
map_physmem(task_get_id(), ph_addr, addr, 1, |
AS_AREA_READ | AS_AREA_CACHEABLE); |
} |
ipc_answer_fast(callid, 0, (ipcarg_t)addr, AS_AREA_READ | AS_AREA_CACHEABLE); |
} |