Subversion Repositories HelenOS-historic

Rev

Rev 1435 | Rev 1493 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1435 Rev 1462
Line 79... Line 79...
79
static void get_realtime_as(ipc_callid_t callid, ipc_call_t *call)
79
static void get_realtime_as(ipc_callid_t callid, ipc_call_t *call)
80
{
80
{
81
    static void *addr = NULL;
81
    static void *addr = NULL;
82
    void *ph_addr;
82
    void *ph_addr;
83
 
83
 
84
    if (IPC_GET_ARG3(*call) != (AS_AREA_READ | AS_AREA_CACHEABLE)) {
-
 
85
        ipc_answer_fast(callid, EPERM, 0, 0);
-
 
86
        return;
-
 
87
    }
-
 
88
    if (!addr) {
84
    if (!addr) {
89
        ph_addr = (void *)sysinfo_value("clock.faddr");
85
        ph_addr = (void *)sysinfo_value("clock.faddr");
90
        if (!ph_addr) {
86
        if (!ph_addr) {
91
            ipc_answer_fast(callid, ENOENT, 0, 0);
87
            ipc_answer_fast(callid, ENOENT, 0, 0);
92
            return;
88
            return;
93
        }
89
        }
94
        addr = (void *)(200*1024*1024); /* TODO: intelligent freemem space */
90
        addr = (void *)(200*1024*1024); /* TODO: intelligent freemem space */
95
        map_physmem(task_get_id(), ph_addr, addr, 1,
91
        map_physmem(task_get_id(), ph_addr, addr, 1,
96
                AS_AREA_READ | AS_AREA_CACHEABLE);
92
                AS_AREA_READ | AS_AREA_CACHEABLE);
97
    }
93
    }
98
    ipc_answer_fast(callid, 0, (ipcarg_t)addr, 0);
94
    ipc_answer_fast(callid, 0, (ipcarg_t)addr, AS_AREA_READ | AS_AREA_CACHEABLE);
99
}
95
}
100
 
96
 
101
int main(int argc, char **argv)
97
int main(int argc, char **argv)
102
{
98
{
103
    ipc_call_t call;
99
    ipc_call_t call;