Files | |
file | libc/include/ipc/fb.h |
file | ipc.h |
file | ns.h |
file | services.h |
List of all known services and their codes. | |
file | ipc.c |
Data Structures | |
struct | ipc_call_t |
struct | async_call_t |
Defines | |
#define | FB_PUTCHAR 1025 |
#define | FB_CLEAR 1026 |
#define | FB_GET_CSIZE 1027 |
#define | FB_CURSOR_VISIBILITY 1028 |
#define | FB_CURSOR_GOTO 1029 |
#define | FB_SCROLL 1030 |
#define | FB_VIEWPORT_SWITCH 1031 |
#define | FB_VIEWPORT_CREATE 1032 |
#define | FB_VIEWPORT_DELETE 1033 |
#define | FB_SET_STYLE 1034 |
#define | FB_GET_RESOLUTION 1035 |
#define | FB_DRAW_TEXT_DATA 1036 |
#define | FB_FLUSH 1037 |
#define | FB_VIEWPORT_DB 1038 |
#define | FB_DRAW_PPM 1100 |
#define | FB_PREPARE_SHM 1101 |
#define | FB_DROP_SHM 1102 |
#define | FB_SHM2PIXMAP 1103 |
#define | FB_VP_DRAW_PIXMAP 1104 |
#define | FB_VP2PIXMAP 1105 |
#define | FB_DROP_PIXMAP 1106 |
#define | FB_TRANS_PUTCHAR 1107 |
#define | FB_ANIM_CREATE 1200 |
#define | FB_ANIM_DROP 1201 |
#define | FB_ANIM_ADDPIXMAP 1202 |
#define | FB_ANIM_CHGVP 1203 |
#define | FB_ANIM_START 1204 |
#define | FB_ANIM_STOP 1205 |
#define | FB_POINTER_MOVE 1300 |
#define | ipc_call_sync_2(phoneid, method, arg1, arg2, res1, res2) ipc_call_sync_3((phoneid), (method), (arg1), (arg2), 0, (res1), (res2), 0) |
#define | ipc_call_async(phoneid, method, arg1, private, callback, can_preempt) (ipc_call_async_2(phoneid, method, arg1, 0, private, callback, can_preempt)) |
#define | SERVICE_PCI 1 |
#define | SERVICE_KEYBOARD 2 |
#define | SERVICE_VIDEO 3 |
#define | SERVICE_CONSOLE 4 |
#define | SERVICE_MEM_REALTIME 1 |
#define | SERVICE_MEM_KLOG 2 |
Typedefs | |
typedef sysarg_t | ipcarg_t |
typedef sysarg_t | ipc_callid_t |
typedef void(* | ipc_async_callback_t )(void *private, int retval, ipc_call_t *data) |
Functions | |
int | ipc_call_sync_3 (int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, ipcarg_t *result1, ipcarg_t *result2, ipcarg_t *result3) |
int | ipc_call_sync (int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t *result) |
ipc_callid_t | ipc_wait_cycle (ipc_call_t *call, uint32_t usec, int flags) |
ipc_callid_t | ipc_wait_for_call_timeout (ipc_call_t *data, uint32_t usec) |
static ipc_callid_t | ipc_wait_for_call (ipc_call_t *data) |
ipc_callid_t | ipc_trywait_for_call (ipc_call_t *data) |
ipcarg_t | ipc_answer_fast (ipc_callid_t callid, ipcarg_t retval, ipcarg_t arg1, ipcarg_t arg2) |
ipcarg_t | ipc_answer (ipc_callid_t callid, ipc_call_t *call) |
void | ipc_call_async_2 (int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, void *private, ipc_async_callback_t callback, int can_preempt) |
void | ipc_call_async_3 (int phoneid, ipcarg_t method, ipcarg_t arg1, ipcarg_t arg2, ipcarg_t arg3, void *private, ipc_async_callback_t callback, int can_preempt) |
int | ipc_connect_to_me (int phoneid, int arg1, int arg2, ipcarg_t *phone) |
int | ipc_connect_me_to (int phoneid, int arg1, int arg2) |
int | ipc_hangup (int phoneid) |
int | ipc_register_irq (int irq, irq_code_t *code) |
int | ipc_unregister_irq (int irq) |
int | ipc_forward_fast (ipc_callid_t callid, int phoneid, int method, ipcarg_t arg1) |
LIST_INITIALIZE (dispatched_calls) | |
LIST_INITIALIZE (queued_calls) | |
static ipc_callid_t | _ipc_call_async (int phoneid, ipc_call_t *data) |
static async_call_t * | ipc_prepare_async (void *private, ipc_async_callback_t callback) |
static void | ipc_finish_async (ipc_callid_t callid, int phoneid, async_call_t *call, int can_preempt) |
static void | try_dispatch_queued_calls (void) |
static void | handle_answer (ipc_callid_t callid, ipc_call_t *data) |
Variables | |
static atomic_t | ipc_futex = FUTEX_INITIALIZER |
|
Definition at line 41 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), fb_client_connection(), and prtchr(). |
|
Definition at line 42 of file libc/include/ipc/fb.h. Referenced by clear(), client_connection(), clrscr(), ega_client_connection(), and fb_client_connection(). |
|
Definition at line 43 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), fb_client_connection(), and main(). |
|
Definition at line 44 of file libc/include/ipc/fb.h. Referenced by curs_visibility(), ega_client_connection(), and fb_client_connection(). |
|
Definition at line 45 of file libc/include/ipc/fb.h. Referenced by curs_goto(), ega_client_connection(), and fb_client_connection(). |
|
Definition at line 46 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), fb_client_connection(), and write_char(). |
|
Definition at line 47 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and vp_switch(). |
|
Definition at line 48 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and vp_create(). |
|
Definition at line 49 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(). |
|
Definition at line 50 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), fb_client_connection(), set_style(), and set_style_col(). |
|
Definition at line 51 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and gcons_init(). |
|
Definition at line 52 of file libc/include/ipc/fb.h. Referenced by change_console(), ega_client_connection(), and shm_handle(). |
|
Definition at line 53 of file libc/include/ipc/fb.h. Referenced by client_connection(), and main(). |
|
Definition at line 54 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and main(). |
|
Definition at line 56 of file libc/include/ipc/fb.h. Referenced by draw_pixmap(), and shm_handle(). |
|
Definition at line 57 of file libc/include/ipc/fb.h. Referenced by draw_pixmap(), make_pixmap(), and shm_handle(). |
|
Definition at line 58 of file libc/include/ipc/fb.h. Referenced by draw_pixmap(), make_pixmap(), and shm_handle(). |
|
Definition at line 59 of file libc/include/ipc/fb.h. Referenced by make_pixmap(), and shm_handle(). |
|
Definition at line 61 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), pixmap_handle(), redraw_state(), and switch_screens(). |
|
Definition at line 62 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), pixmap_handle(), and switch_screens(). |
|
Definition at line 63 of file libc/include/ipc/fb.h. Referenced by ega_client_connection(), pixmap_handle(), and switch_screens(). |
|
Definition at line 64 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and tran_putch(). |
|
Definition at line 66 of file libc/include/ipc/fb.h. Referenced by anim_handle(), and make_anim(). |
|
Definition at line 67 of file libc/include/ipc/fb.h. |
|
Definition at line 68 of file libc/include/ipc/fb.h. Referenced by make_anim(). |
|
Definition at line 69 of file libc/include/ipc/fb.h. |
|
Definition at line 70 of file libc/include/ipc/fb.h. Referenced by gcons_change_console(), and make_anim(). |
|
Definition at line 71 of file libc/include/ipc/fb.h. Referenced by gcons_in_kernel(). |
|
Definition at line 73 of file libc/include/ipc/fb.h. Referenced by fb_client_connection(), and gcons_mouse_move(). |
|
Definition at line 54 of file ipc.h. Referenced by do_send_msg(). |
|
Definition at line 75 of file ipc.h. Referenced by do_send_msg(). |
|
Definition at line 40 of file services.h. Referenced by main(). |
|
Definition at line 41 of file services.h. Referenced by main(). |
|
Definition at line 42 of file services.h. Referenced by main(). |
|
Definition at line 43 of file services.h. Referenced by main(), open_stdin(), and open_stdout(). |
|
Definition at line 46 of file services.h. Referenced by gettimeofday(), and main(). |
|
Definition at line 47 of file services.h. Referenced by main(). |
|
|
|
|
|
|
|
Definition at line 99 of file ipc.c. References __SYSCALL3. Referenced by gettimeofday(), ipc_connect_me_to(), ipc_connect_to_me(), and main(). |
|
Definition at line 84 of file ipc.c. References __SYSCALL4. |
|
One cycle of ipc wait for call call
Definition at line 357 of file ipc.c. References __SYSCALL3, handle_answer(), and try_dispatch_queued_calls(). Referenced by async_manager_worker(), ipc_trywait_for_call(), and ipc_wait_for_call_timeout(). Here is the call graph for this function: |
|
Wait some time for an IPC call.
Definition at line 379 of file ipc.c. References ipc_wait_cycle(). Referenced by ipc_wait_for_call(). Here is the call graph for this function: |
|
Definition at line 65 of file ipc.h. References ipc_wait_for_call_timeout(). Referenced by main(). Here is the call graph for this function: |
|
Check if there is an IPC call waiting to be picked up.
Definition at line 397 of file ipc.c. References ipc_wait_cycle(). Here is the call graph for this function: |
|
Send a fast answer to a received call. The fast answer makes use of passing retval and first two arguments in registers. If you need to return more, use the ipc_answer() instead.
Definition at line 256 of file ipc.c. References __SYSCALL4. Referenced by async_new_connection(), client_connection(), connection_thread(), console_connection(), default_client_connection(), ega_client_connection(), fb_client_connection(), get_as(), handle_call(), keyboard_events(), main(), pixmap_handle(), receive_comm_area(), and shm_handle(). |
|
Send a full answer to a received call.
Definition at line 269 of file ipc.c. References __SYSCALL2. Referenced by main(). |
|
Send asynchronous message
Definition at line 191 of file ipc.c. References __SYSCALL4, futex_down(), ipc_finish_async(), ipc_futex, ipc_prepare_async(), async_call_t::msg, and async_call_t::u. Referenced by async_msg_2(), and async_send_2(). Here is the call graph for this function: |
|
Send asynchronous message
Definition at line 220 of file ipc.c. References _ipc_call_async(), futex_down(), ipc_finish_async(), ipc_futex, ipc_prepare_async(), async_call_t::msg, and async_call_t::u. Referenced by async_msg_3(), and async_send_3(). Here is the call graph for this function: |
|
Ask destination to do a callback connection
Definition at line 412 of file ipc.c. References ipc_call_sync_3(). Referenced by main(). Here is the call graph for this function: |
|
Ask through phone for a new connection to some service
Definition at line 422 of file ipc.c. References ipc_call_sync_3(). Referenced by do_connect(), main(), open_stdin(), and open_stdout(). Here is the call graph for this function: |
|
Definition at line 435 of file ipc.c. References __SYSCALL1. Referenced by console_connection(), and do_hangup(). |
|
Definition at line 440 of file ipc.c. References __SYSCALL2. Referenced by main(). |
|
Definition at line 445 of file ipc.c. References __SYSCALL1. |
|
Definition at line 450 of file ipc.c. References __SYSCALL4. Referenced by connect_to_service(). |
|
|
|
List of async calls that were not accepted by kernel |
|
Syscall to send asynchronous message Definition at line 126 of file ipc.c. References __SYSCALL2. Referenced by ipc_call_async_3(), and try_dispatch_queued_calls(). |
|
Prolog to ipc_async_send functions Definition at line 132 of file ipc.c. References callback(), and NULL. Referenced by ipc_call_async_2(), and ipc_call_async_3(). Here is the call graph for this function: |
|
Epilogue of ipc_async_send functions Definition at line 149 of file ipc.c. References async_futex, async_call_t::callback, async_call_t::callid, futex_down(), futex_up(), ipc_futex, async_call_t::list, list_append(), async_call_t::msg, NULL, async_call_t::private, PS_TO_MANAGER, psthread_get_id(), psthread_schedule_next_adv(), async_call_t::ptid, and async_call_t::u. Referenced by ipc_call_async_2(), and ipc_call_async_3(). Here is the call graph for this function: |
|
Try to dispatch queed calls from async queue Definition at line 276 of file ipc.c. References _ipc_call_async(), async_futex, async_call_t::callback, async_call_t::callid, futex_down(), futex_up(), ipc_futex, async_call_t::list, list_append(), list_empty(), list_get_instance, list_remove(), async_call_t::msg, NULL, async_call_t::private, psthread_add_ready(), async_call_t::ptid, and async_call_t::u. Referenced by ipc_wait_cycle(). Here is the call graph for this function: |
|
Handle received answer TODO: Make it use hash table
Definition at line 322 of file ipc.c. References async_call_t::callback, async_call_t::callid, futex_down(), futex_up(), ipc_futex, async_call_t::list, list_get_instance, list_remove(), link::next, printf(), async_call_t::private, and async_call_t::u. Referenced by ipc_wait_cycle(). Here is the call graph for this function: |
|
Definition at line 82 of file ipc.c. Referenced by handle_answer(), ipc_call_async_2(), ipc_call_async_3(), ipc_finish_async(), and try_dispatch_queued_calls(). |