/uspace/trunk/libc/include/async.h |
---|
46,6 → 46,8 |
aid_t async_send_2(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
ipc_call_t *dataptr); |
aid_t async_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
ipcarg_t arg3, ipc_call_t *dataptr); |
void async_wait_for(aid_t amsgid, ipcarg_t *result); |
int async_wait_timeout(aid_t amsgid, ipcarg_t *retval, suseconds_t timeout); |
68,8 → 70,25 |
*r2 = IPC_GET_ARG2(result); |
return rc; |
} |
static inline ipcarg_t sync_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1, |
ipcarg_t arg2, ipcarg_t arg3, ipcarg_t *r1, |
ipcarg_t *r2, ipcarg_t *r3) |
{ |
ipc_call_t result; |
ipcarg_t rc; |
aid_t eid = async_send_3(phoneid, method, arg1, arg2, arg3, &result); |
async_wait_for(eid, &rc); |
if (r1) |
*r1 = IPC_GET_ARG1(result); |
if (r2) |
*r2 = IPC_GET_ARG2(result); |
if (r3) |
*r3 = IPC_GET_ARG3(result); |
return rc; |
} |
pstid_t async_new_connection(ipcarg_t in_phone_hash,ipc_callid_t callid, |
ipc_call_t *call, |
void (*cthread)(ipc_callid_t,ipc_call_t *)); |
/uspace/trunk/libc/include/ipc/fb.h |
---|
20,4 → 20,8 |
#define FB_DRAW_TEXT_DATA 1036 |
#define FB_FLUSH 1037 |
#define FB_DRAW_PPM 1038 |
#define FB_PREPARE_SHM 1039 |
#define FB_DROP_SHM 1040 |
#endif |
/uspace/trunk/libc/include/sys/mman.h |
---|
31,6 → 31,8 |
#include <as.h> |
#define MAP_FAILED ((void *) -1) |
#define MAP_SHARED (1 << 0) |
#define MAP_PRIVATE (1 << 1) |
#define MAP_FIXED (1 << 2) |
/uspace/trunk/libc/generic/time.c |
---|
73,7 → 73,7 |
printf("Failed to initialize timeofday memarea\n"); |
_exit(1); |
} |
if (rights != (AS_AREA_READ | AS_AREA_CACHEABLE)) { |
if (! (rights & AS_AREA_READ)) { |
printf("Received bad rights on time area: %X\n", |
rights); |
as_area_destroy(mapping); |
/uspace/trunk/libc/generic/async.c |
---|
623,6 → 623,27 |
return (aid_t) msg; |
} |
/** Send message and return id of the sent message |
* |
* The return value can be used as input for async_wait() to wait |
* for completion. |
*/ |
aid_t async_send_3(int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, |
ipcarg_t arg3, ipc_call_t *dataptr) |
{ |
amsg_t *msg; |
msg = malloc(sizeof(*msg)); |
msg->done = 0; |
msg->dataptr = dataptr; |
msg->wdata.active = 1; /* We may sleep in next method, but it |
* will use it's own mechanism */ |
ipc_call_async_3(phoneid,method,arg1,arg2,arg3, msg,reply_received,1); |
return (aid_t) msg; |
} |
/** Wait for a message sent by async framework |
* |
* @param amsgid Message ID to wait for |
/uspace/trunk/libc/generic/mmap.c |
---|
33,15 → 33,15 |
void *mmap(void *start, size_t length, int prot, int flags, int fd, |
off_t offset) |
{ |
int rc; |
if (!start) |
start = as_get_mappable_page(length); |
prot |= AS_AREA_CACHEABLE; |
// if (! ((flags & MAP_SHARED) ^ (flags & MAP_PRIVATE))) |
// return NULL; |
// return MAP_FAILED; |
if (! (flags & MAP_ANONYMOUS)) |
return NULL; |
return MAP_FAILED; |
return as_area_create(start, length, prot); |
} |
/uspace/trunk/libc/arch/ia64/Makefile.inc |
---|
38,3 → 38,6 |
ARCH_SOURCES += arch/$(ARCH)/src/syscall.S \ |
arch/$(ARCH)/src/psthread.S \ |
arch/$(ARCH)/src/thread.c |
BFD_NAME = elf64-little |
BFD_ARCH = ia64-elf64 |
/uspace/trunk/libc/arch/mips32eb/Makefile.inc |
---|
31,9 → 31,13 |
TARGET = mips-sgi-irix5 |
TOOLCHAIN_DIR = /usr/local/mips/bin |
CFLAGS += -mno-abicalls -mips3 |
CFLAGS += -mips3 |
ARCH_SOURCES += arch/$(ARCH)/src/syscall.c |
ARCH_SOURCES += arch/$(ARCH)/src/syscall.c \ |
arch/$(ARCH)/src/psthread.S \ |
arch/$(ARCH)/src/thread.c |
LFLAGS += -N |
BFD_ARCH = mips |
BFD_NAME = elf32-big |
/uspace/trunk/libc/arch/ppc32/Makefile.inc |
---|
39,3 → 39,6 |
CFLAGS += -mcpu=powerpc -msoft-float -m32 |
AFLAGS += -a32 |
LFLAGS += -N |
BFD_NAME = elf32-powerpc |
BFD_ARCH = powerpc:common |
/uspace/trunk/libc/arch/amd64/Makefile.inc |
---|
37,3 → 37,6 |
arch/$(ARCH)/src/thread.c |
LFLAGS += -N |
BFD_NAME = elf64-x86-64 |
BFD_ARCH = i386:x86-64 |
/uspace/trunk/libc/arch/mips32/Makefile.inc |
---|
37,4 → 37,5 |
arch/$(ARCH)/src/psthread.S \ |
arch/$(ARCH)/src/thread.c |
BFD_ARCH = mips |
BFD_NAME = elf32-little |
/uspace/trunk/libc/arch/ia32/Makefile.inc |
---|
37,3 → 37,6 |
arch/$(ARCH)/src/thread.c |
LFLAGS += -N |
BFD_NAME = elf32-i386 |
BFD_ARCH = i386 |