- Timestamp:
- 2006-06-06T07:42:20Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 1890e312
- Parents:
- e9073f2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
ns/ns.c
re9073f2 r51dbadf3 34 34 #include <ipc/ipc.h> 35 35 #include <ipc/ns.h> 36 #include <ipc/services.h> 36 37 #include <stdio.h> 37 38 #include <unistd.h> … … 77 78 int static ping_phone; 78 79 79 static void get_realtime_as(ipc_callid_t callid, ipc_call_t *call) 80 { 81 static void *addr = NULL; 80 static void *clockaddr = NULL; 81 static void *klogaddr = NULL; 82 83 static void get_as(ipc_callid_t callid, ipc_call_t *call, char *name, void **addr) 84 { 82 85 void *ph_addr; 83 86 84 if (! addr) {85 ph_addr = (void *)sysinfo_value( "clock.faddr");87 if (!*addr) { 88 ph_addr = (void *)sysinfo_value(name); 86 89 if (!ph_addr) { 87 90 ipc_answer_fast(callid, ENOENT, 0, 0); 88 91 return; 89 92 } 90 addr = as_get_mappable_page(PAGE_SIZE);91 map_physmem(ph_addr, addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE);92 } 93 ipc_answer_fast(callid, 0, (ipcarg_t) addr, AS_AREA_READ);93 *addr = as_get_mappable_page(PAGE_SIZE); 94 map_physmem(ph_addr, *addr, 1, AS_AREA_READ | AS_AREA_CACHEABLE); 95 } 96 ipc_answer_fast(callid, 0, (ipcarg_t)*addr, AS_AREA_READ); 94 97 } 95 98 … … 110 113 switch (IPC_GET_METHOD(call)) { 111 114 case IPC_M_AS_AREA_RECV: 112 get_realtime_as(callid, &call); 115 switch (IPC_GET_ARG3(call)) { 116 case SERVICE_MEM_REALTIME: 117 get_as(callid, &call, "clock.faddr", &clockaddr); 118 break; 119 case SERVICE_MEM_KLOG: 120 get_as(callid, &call, "klog.faddr", &klogaddr); 121 break; 122 default: 123 ipc_answer_fast(callid, ENOENT, 0, 0); 124 } 113 125 continue; 114 126 case IPC_M_PHONE_HUNGUP:
Note:
See TracChangeset
for help on using the changeset viewer.