Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 2004 → Rev 2005

/trunk/uspace/rd/rd.c
38,6 → 38,11
#include <ipc/ipc.h>
#include <ipc/services.h>
#include <ipc/ns.h>
#include <sysinfo.h>
#include <as.h>
#include <ddi.h>
#include <align.h>
#include <bool.h>
#include <errno.h>
#include <async.h>
 
64,20 → 69,40
}
 
 
int main(int argc, char **argv)
static bool rd_init(void)
{
ipcarg_t phonead;
size_t rd_size = sysinfo_value("rd.size");
void * rd_ph_addr = (void *) sysinfo_value("rd.address.physical");
async_set_client_connection(rd_connection);
if (rd_size == 0)
return false;
/* Register service at nameserver */
if (ipc_connect_to_me(PHONE_NS, SERVICE_RD, 0, &phonead) != 0)
return -1;
void * rd_addr = as_get_mappable_page(rd_size);
map_physmem(rd_ph_addr, rd_addr, ALIGN_UP(rd_size, PAGE_SIZE) >> PAGE_WIDTH, AS_AREA_READ | AS_AREA_WRITE);
return true;
}
 
async_manager();
 
/* Never reached */
return 0;
int main(int argc, char **argv)
{
if (rd_init()) {
ipcarg_t phonead;
async_set_client_connection(rd_connection);
/* Register service at nameserver */
if (ipc_connect_to_me(PHONE_NS, SERVICE_RD, 0, &phonead) != 0)
return -1;
async_manager();
/* Never reached */
return 0;
}
return -1;
}
 
/**
/trunk/uspace/libc/generic/sysinfo.c
38,10 → 38,8
 
sysarg_t sysinfo_value(char *name)
{
return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name, (sysarg_t) strlen(name) );
return __SYSCALL2(SYS_SYSINFO_VALUE, (sysarg_t ) name, (sysarg_t) strlen(name));
}
 
/** @}
*/