Changeset 3636964 in mainline for uspace/srv/ns/ns.c


Ignore:
Timestamp:
2009-04-06T19:32:58Z (15 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
2845930
Parents:
13a638d
Message:

make klog more generic

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/ns/ns.c

    r13a638d r3636964  
    121121}
    122122
    123 static void get_as_area(ipc_callid_t callid, ipc_call_t *call, char *name, void **addr)
    124 {
    125         void *ph_addr;
    126        
    127         if (!*addr) {
    128                 ph_addr = (void *) sysinfo_value(name);
    129                 if (!ph_addr) {
     123static void get_as_area(ipc_callid_t callid, ipc_call_t *call, void *ph_addr, count_t pages, void **addr)
     124{
     125        if (ph_addr == NULL) {
     126                ipc_answer_0(callid, ENOENT);
     127                return;
     128        }
     129       
     130        if (*addr == NULL) {
     131                *addr = as_get_mappable_page(pages * PAGE_SIZE);
     132               
     133                if (*addr == NULL) {
    130134                        ipc_answer_0(callid, ENOENT);
    131135                        return;
    132136                }
    133                 *addr = as_get_mappable_page(PAGE_SIZE);
    134                 if (physmem_map(ph_addr, *addr, 1,
     137               
     138                if (physmem_map(ph_addr, *addr, pages,
    135139                    AS_AREA_READ | AS_AREA_CACHEABLE) != 0) {
    136140                        ipc_answer_0(callid, ENOENT);
     
    138142                }
    139143        }
     144       
    140145        ipc_answer_2(callid, EOK, (ipcarg_t) *addr, AS_AREA_READ);
    141146}
     
    198203                        switch (IPC_GET_ARG3(call)) {
    199204                        case SERVICE_MEM_REALTIME:
    200                                 get_as_area(callid, &call, "clock.faddr", &clockaddr);
     205                                get_as_area(callid, &call, sysinfo_value("clock.faddr"), 1, &clockaddr);
    201206                                break;
    202207                        case SERVICE_MEM_KLOG:
    203                                 get_as_area(callid, &call, "klog.faddr", &klogaddr);
     208                                get_as_area(callid, &call, sysinfo_value("klog.faddr"), sysinfo_value("klog.pages"), &klogaddr);
    204209                                break;
    205210                        default:
Note: See TracChangeset for help on using the changeset viewer.