Changeset c4fb95d3 in mainline for uspace/lib/c/include/ipc
- Timestamp:
- 2011-02-18T20:04:56Z (15 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d011038
- Parents:
- 87e373b (diff), 8b1ea2d4 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)links above to see all the changes relative to each parent. - Location:
- uspace/lib/c/include/ipc
- Files:
-
- 1 added
- 28 edited
-
adb.h (modified) (1 diff)
-
arp.h (modified) (1 diff)
-
bd.h (modified) (1 diff)
-
char.h (modified) (1 diff)
-
clipboard.h (modified) (1 diff)
-
common.h (added)
-
console.h (modified) (1 diff)
-
dev_iface.h (modified) (1 diff)
-
devman.h (modified) (5 diffs)
-
devmap.h (modified) (1 diff)
-
fb.h (modified) (1 diff)
-
icmp.h (modified) (5 diffs)
-
il.h (modified) (1 diff)
-
ip.h (modified) (1 diff)
-
ipc.h (modified) (7 diffs)
-
irc.h (modified) (1 diff)
-
kbd.h (modified) (1 diff)
-
loader.h (modified) (1 diff)
-
mouse.h (modified) (1 diff)
-
net.h (modified) (1 diff)
-
net_net.h (modified) (1 diff)
-
netif.h (modified) (1 diff)
-
nil.h (modified) (1 diff)
-
ns.h (modified) (2 diffs)
-
packet.h (modified) (1 diff)
-
services.h (modified) (2 diffs)
-
socket.h (modified) (1 diff)
-
tl.h (modified) (1 diff)
-
vfs.h (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/include/ipc/adb.h
r87e373b rc4fb95d3 32 32 /** @file 33 33 * @brief ADB device interface. 34 */ 34 */ 35 35 36 36 #ifndef LIBC_IPC_ADB_H_ 37 37 #define LIBC_IPC_ADB_H_ 38 38 39 #include <ipc/ ipc.h>39 #include <ipc/common.h> 40 40 41 41 typedef enum { 42 42 ADB_REG_WRITE = IPC_FIRST_USER_METHOD 43 43 } adb_request_t; 44 45 44 46 45 typedef enum { -
uspace/lib/c/include/ipc/arp.h
r87e373b rc4fb95d3 39 39 #define LIBC_ARP_MESSAGES_ 40 40 41 #include <ipc/ipc.h>42 41 #include <ipc/net.h> 43 42 -
uspace/lib/c/include/ipc/bd.h
r87e373b rc4fb95d3 31 31 */ 32 32 /** @file 33 */ 33 */ 34 34 35 35 #ifndef LIBC_IPC_BD_H_ 36 36 #define LIBC_IPC_BD_H_ 37 37 38 #include <ipc/ ipc.h>38 #include <ipc/common.h> 39 39 40 40 typedef enum { -
uspace/lib/c/include/ipc/char.h
r87e373b rc4fb95d3 32 32 /** @file 33 33 * @brief Character device interface. 34 */ 34 */ 35 35 36 36 #ifndef LIBC_IPC_CHAR_H_ 37 37 #define LIBC_IPC_CHAR_H_ 38 38 39 #include <ipc/ ipc.h>39 #include <ipc/common.h> 40 40 41 41 typedef enum { 42 42 CHAR_WRITE_BYTE = IPC_FIRST_USER_METHOD 43 43 } char_request_t; 44 45 44 46 45 typedef enum { -
uspace/lib/c/include/ipc/clipboard.h
r87e373b rc4fb95d3 36 36 #define LIBC_IPC_CLIPBOARD_H_ 37 37 38 #include <ipc/ipc.h>39 40 38 typedef enum { 41 39 CLIPBOARD_PUT_DATA = IPC_FIRST_USER_METHOD, -
uspace/lib/c/include/ipc/console.h
r87e373b rc4fb95d3 36 36 #define LIBC_IPC_CONSOLE_H_ 37 37 38 #include <ipc/ipc.h>39 38 #include <ipc/vfs.h> 40 39 -
uspace/lib/c/include/ipc/dev_iface.h
r87e373b rc4fb95d3 30 30 #define LIBC_IPC_DEV_IFACE_H_ 31 31 32 #include <ipc/ipc.h>33 32 #include <malloc.h> 34 33 #include <unistd.h> -
uspace/lib/c/include/ipc/devman.h
r87e373b rc4fb95d3 30 30 * @{ 31 31 */ 32 32 33 33 #ifndef LIBC_IPC_DEVMAN_H_ 34 34 #define LIBC_IPC_DEVMAN_H_ 35 35 36 #include <ipc/common.h> 36 37 #include <adt/list.h> 37 #include <ipc/ipc.h> 38 #include <stdlib.h> 39 #include <stdio.h> 40 #include <str.h> 38 #include <malloc.h> 39 #include <mem.h> 41 40 42 #define DEVMAN_NAME_MAXLEN 25641 #define DEVMAN_NAME_MAXLEN 256 43 42 44 43 typedef sysarg_t devman_handle_t; 44 45 typedef enum { 46 /** Invalid value for debugging purposes */ 47 fun_invalid = 0, 48 /** Function to which child devices attach */ 49 fun_inner, 50 /** Fuction exported to external clients (leaf function) */ 51 fun_exposed 52 } fun_type_t; 45 53 46 54 /** Ids of device models used for device-to-driver matching. … … 67 75 } match_id_list_t; 68 76 69 70 static inline match_id_t * create_match_id() 77 static inline match_id_t *create_match_id(void) 71 78 { 72 79 match_id_t *id = malloc(sizeof(match_id_t)); … … 85 92 } 86 93 87 static inline void add_match_id(match_id_list_t *ids, match_id_t *id) 94 static inline void add_match_id(match_id_list_t *ids, match_id_t *id) 88 95 { 89 96 match_id_t *mid = NULL; 90 link_t *link = ids->ids.next; 97 link_t *link = ids->ids.next; 91 98 92 99 while (link != &ids->ids) { … … 98 105 } 99 106 100 list_insert_before(&id->link, link); 107 list_insert_before(&id->link, link); 101 108 } 102 109 … … 129 136 typedef enum { 130 137 DEVMAN_DRIVER_REGISTER = IPC_FIRST_USER_METHOD, 131 DEVMAN_ADD_ CHILD_DEVICE,138 DEVMAN_ADD_FUNCTION, 132 139 DEVMAN_ADD_MATCH_ID, 133 140 DEVMAN_ADD_DEVICE_TO_CLASS -
uspace/lib/c/include/ipc/devmap.h
r87e373b rc4fb95d3 34 34 #define DEVMAP_DEVMAP_H_ 35 35 36 #include <atomic.h> 37 #include <ipc/ipc.h> 38 #include <adt/list.h> 36 #include <ipc/common.h> 39 37 40 38 #define DEVMAP_NAME_MAXLEN 255 -
uspace/lib/c/include/ipc/fb.h
r87e373b rc4fb95d3 31 31 */ 32 32 /** @file 33 */ 33 */ 34 34 35 35 #ifndef LIBC_FB_H_ 36 36 #define LIBC_FB_H_ 37 37 38 #include <ipc/ ipc.h>38 #include <ipc/common.h> 39 39 40 40 typedef enum { -
uspace/lib/c/include/ipc/icmp.h
r87e373b rc4fb95d3 33 33 /** @file 34 34 * ICMP module messages. 35 * @see icmp_ interface.h35 * @see icmp_remote.h 36 36 */ 37 37 … … 39 39 #define LIBC_ICMP_MESSAGES_ 40 40 41 #include <ipc/ipc.h>42 41 #include <ipc/net.h> 43 42 #include <sys/types.h> 44 43 #include <sys/time.h> 45 46 44 #include <net/icmp_codes.h> 47 45 48 46 /** ICMP module messages. */ 49 47 typedef enum { 50 /** Send secho request. @see icmp_echo() */48 /** Send echo request. @see icmp_echo() */ 51 49 NET_ICMP_ECHO = NET_ICMP_FIRST, 52 50 53 51 /** 54 * Send sdestination unreachable error message.52 * Send destination unreachable error message. 55 53 * @see icmp_destination_unreachable_msg() 56 54 */ … … 58 56 59 57 /** 60 * Send ssource quench error message.58 * Send source quench error message. 61 59 * @see icmp_source_quench_msg() 62 60 */ … … 64 62 65 63 /** 66 * Send stime exceeded error message.64 * Send time exceeded error message. 67 65 * @see icmp_time_exceeded_msg() 68 66 */ … … 70 68 71 69 /** 72 * Send sparameter problem error message.70 * Send parameter problem error message. 73 71 * @see icmp_parameter_problem_msg() 74 72 */ 75 NET_ICMP_PARAMETERPROB, 76 77 /** Initializes new connection. */ 78 NET_ICMP_INIT 79 } icmp_messages; 73 NET_ICMP_PARAMETERPROB 74 } icmp_messages_t; 80 75 81 76 /** @name ICMP specific message parameters definitions */ -
uspace/lib/c/include/ipc/il.h
r87e373b rc4fb95d3 40 40 #define LIBC_IL_MESSAGES_H_ 41 41 42 #include <ipc/ipc.h>43 42 #include <ipc/net.h> 44 43 -
uspace/lib/c/include/ipc/ip.h
r87e373b rc4fb95d3 39 39 #define LIBC_IP_MESSAGES_H_ 40 40 41 #include <ipc/ipc.h>42 41 #include <ipc/net.h> 43 44 42 #include <net/in.h> 45 43 #include <net/ip_codes.h> -
uspace/lib/c/include/ipc/ipc.h
r87e373b rc4fb95d3 33 33 */ 34 34 35 #ifndef LIBIPC_IPC_H_ 36 #define LIBIPC_IPC_H_ 37 35 #if ((defined(LIBC_ASYNC_H_)) && (!defined(LIBC_ASYNC_C_))) 36 #error Do not intermix low-level IPC interface and async framework 37 #endif 38 39 #ifndef LIBC_IPC_H_ 40 #define LIBC_IPC_H_ 41 42 #include <sys/types.h> 43 #include <ipc/common.h> 44 #include <kernel/synch/synch.h> 38 45 #include <task.h> 39 #include <kernel/ipc/ipc.h> 40 #include <kernel/ddi/irq.h> 41 #include <sys/types.h> 42 #include <kernel/synch/synch.h> 43 44 #define IPC_FLAG_BLOCKING 0x01 45 46 typedef struct { 47 sysarg_t args[IPC_CALL_LEN]; 48 sysarg_t in_phone_hash; 49 } ipc_call_t; 50 51 typedef sysarg_t ipc_callid_t; 52 53 typedef void (* ipc_async_callback_t)(void *, int, ipc_call_t *); 46 47 typedef void (*ipc_async_callback_t)(void *, int, ipc_call_t *); 54 48 55 49 /* … … 59 53 * possible, the fast version is used. 60 54 */ 55 61 56 #define ipc_call_sync_0_0(phoneid, method) \ 62 57 ipc_call_sync_fast((phoneid), (method), 0, 0, 0, 0, 0, 0, 0, 0) … … 188 183 sysarg_t *); 189 184 190 extern ipc_callid_t ipc_wait_cycle(ipc_call_t *, uint32_t, int); 191 extern ipc_callid_t ipc_wait_for_call_timeout(ipc_call_t *, uint32_t); 185 extern ipc_callid_t ipc_wait_cycle(ipc_call_t *, sysarg_t, unsigned int); 192 186 extern void ipc_poke(void); 193 187 194 static inline ipc_callid_t ipc_wait_for_call(ipc_call_t *data) 195 { 196 return ipc_wait_for_call_timeout(data, SYNCH_NO_TIMEOUT); 197 } 198 188 #define ipc_wait_for_call(data) \ 189 ipc_wait_for_call_timeout(data, SYNCH_NO_TIMEOUT); 190 191 extern ipc_callid_t ipc_wait_for_call_timeout(ipc_call_t *, sysarg_t); 199 192 extern ipc_callid_t ipc_trywait_for_call(ipc_call_t *); 200 193 … … 205 198 * to m. 206 199 */ 200 207 201 #define ipc_answer_0(callid, retval) \ 208 202 ipc_answer_fast((callid), (retval), 0, 0, 0, 0) … … 229 223 * to m. 230 224 */ 225 231 226 #define ipc_call_async_0(phoneid, method, private, callback, can_preempt) \ 232 227 ipc_call_async_fast((phoneid), (method), 0, 0, 0, 0, (private), \ … … 254 249 255 250 extern void ipc_call_async_fast(int, sysarg_t, sysarg_t, sysarg_t, sysarg_t, 256 sysarg_t, void *, ipc_async_callback_t, int);251 sysarg_t, void *, ipc_async_callback_t, bool); 257 252 extern void ipc_call_async_slow(int, sysarg_t, sysarg_t, sysarg_t, sysarg_t, 258 sysarg_t, sysarg_t, void *, ipc_async_callback_t, int); 259 260 extern int ipc_connect_to_me(int, int, int, int, sysarg_t *); 261 extern int ipc_connect_me_to(int, int, int, int); 262 extern int ipc_connect_me_to_blocking(int, int, int, int); 253 sysarg_t, sysarg_t, void *, ipc_async_callback_t, bool); 254 255 extern int ipc_connect_to_me(int, sysarg_t, sysarg_t, sysarg_t, sysarg_t *, 256 sysarg_t *); 257 extern int ipc_connect_me_to(int, sysarg_t, sysarg_t, sysarg_t); 258 extern int ipc_connect_me_to_blocking(int, sysarg_t, sysarg_t, sysarg_t); 259 263 260 extern int ipc_hangup(int); 264 extern int ipc_register_irq(int, int, int, irq_code_t *); 265 extern int ipc_ unregister_irq(int, int);266 extern int ipc_forward_fast(ipc_callid_t, int, int, sysarg_t, sysarg_t,int);267 extern int ipc_forward_slow(ipc_callid_t, int, int, sysarg_t, sysarg_t,268 sysarg_t, sysarg_t, sysarg_t, int);261 262 extern int ipc_forward_fast(ipc_callid_t, int, sysarg_t, sysarg_t, sysarg_t, 263 unsigned int); 264 extern int ipc_forward_slow(ipc_callid_t, int, sysarg_t, sysarg_t, sysarg_t, 265 sysarg_t, sysarg_t, sysarg_t, unsigned int); 269 266 270 267 /* 271 268 * User-friendly wrappers for ipc_share_in_start(). 272 269 */ 270 273 271 #define ipc_share_in_start_0_0(phoneid, dst, size) \ 274 272 ipc_share_in_start((phoneid), (dst), (size), 0, NULL) … … 280 278 ipc_share_in_start((phoneid), (dst), (size), (arg), (flags)) 281 279 282 extern int ipc_share_in_start(int, void *, size_t, sysarg_t, int *);283 extern int ipc_share_in_finalize(ipc_callid_t, void *, int);284 extern int ipc_share_out_start(int, void *, int);280 extern int ipc_share_in_start(int, void *, size_t, sysarg_t, unsigned int *); 281 extern int ipc_share_in_finalize(ipc_callid_t, void *, unsigned int); 282 extern int ipc_share_out_start(int, void *, unsigned int); 285 283 extern int ipc_share_out_finalize(ipc_callid_t, void *); 286 284 extern int ipc_data_read_start(int, void *, size_t); -
uspace/lib/c/include/ipc/irc.h
r87e373b rc4fb95d3 36 36 #define LIBC_IRC_H_ 37 37 38 #include <ipc/ ipc.h>38 #include <ipc/common.h> 39 39 40 40 typedef enum { -
uspace/lib/c/include/ipc/kbd.h
r87e373b rc4fb95d3 38 38 #define LIBC_IPC_KBD_H_ 39 39 40 #include <ipc/ ipc.h>40 #include <ipc/common.h> 41 41 42 42 typedef enum { -
uspace/lib/c/include/ipc/loader.h
r87e373b rc4fb95d3 31 31 */ 32 32 /** @file 33 */ 33 */ 34 34 35 35 #ifndef LIBC_IPC_LOADER_H_ 36 36 #define LIBC_IPC_LOADER_H_ 37 37 38 #include <ipc/ ipc.h>38 #include <ipc/common.h> 39 39 40 40 typedef enum { -
uspace/lib/c/include/ipc/mouse.h
r87e373b rc4fb95d3 37 37 #define LIBC_IPC_MOUSE_H_ 38 38 39 #include <ipc/ ipc.h>39 #include <ipc/common.h> 40 40 41 41 typedef enum { -
uspace/lib/c/include/ipc/net.h
r87e373b rc4fb95d3 38 38 #define LIBC_NET_MESSAGES_H_ 39 39 40 #include <ipc/ipc.h>41 40 #include <ipc/services.h> 42 43 41 #include <net/device.h> 44 42 #include <net/packet.h> -
uspace/lib/c/include/ipc/net_net.h
r87e373b rc4fb95d3 39 39 #define LIBC_NET_NET_MESSAGES_H_ 40 40 41 #include <ipc/ipc.h>42 41 #include <ipc/net.h> 43 42 -
uspace/lib/c/include/ipc/netif.h
r87e373b rc4fb95d3 38 38 #define LIBC_NETIF_MESSAGES_H_ 39 39 40 #include <ipc/ipc.h>41 40 #include <ipc/net.h> 42 41 -
uspace/lib/c/include/ipc/nil.h
r87e373b rc4fb95d3 38 38 #define LIBC_NIL_MESSAGES_H_ 39 39 40 #include <ipc/ipc.h>41 40 #include <ipc/net.h> 42 41 -
uspace/lib/c/include/ipc/ns.h
r87e373b rc4fb95d3 33 33 */ 34 34 35 #ifndef LIB IPC_NS_H_36 #define LIB IPC_NS_H_35 #ifndef LIBC_NS_H_ 36 #define LIBC_NS_H_ 37 37 38 #include <ipc/ipc.h> 38 #include <sys/types.h> 39 #include <ipc/common.h> 39 40 40 41 typedef enum { … … 45 46 } ns_request_t; 46 47 48 extern int service_register(sysarg_t); 49 extern int service_connect(sysarg_t, sysarg_t, sysarg_t); 50 extern int service_connect_blocking(sysarg_t, sysarg_t, sysarg_t); 51 47 52 #endif 48 53 -
uspace/lib/c/include/ipc/packet.h
r87e373b rc4fb95d3 38 38 #define LIBC_PACKET_MESSAGES_ 39 39 40 #include <ipc/ipc.h>41 40 #include <ipc/net.h> 42 41 -
uspace/lib/c/include/ipc/services.h
r87e373b rc4fb95d3 35 35 */ 36 36 37 #ifndef LIB IPC_SERVICES_H_38 #define LIB IPC_SERVICES_H_37 #ifndef LIBC_SERVICES_H_ 38 #define LIBC_SERVICES_H_ 39 39 40 40 typedef enum { … … 66 66 } services_t; 67 67 68 /* Memory area to be received from NS */69 #define SERVICE_MEM_REALTIME 170 #define SERVICE_MEM_KLOG 271 72 68 #endif 73 69 -
uspace/lib/c/include/ipc/socket.h
r87e373b rc4fb95d3 38 38 #define LIBC_SOCKET_MESSAGES_H_ 39 39 40 #include <ipc/ipc.h>41 40 #include <ipc/net.h> 42 41 -
uspace/lib/c/include/ipc/tl.h
r87e373b rc4fb95d3 39 39 #define LIBC_TL_MESSAGES_H_ 40 40 41 #include <ipc/ipc.h>42 41 #include <ipc/net.h> 43 42 -
uspace/lib/c/include/ipc/vfs.h
r87e373b rc4fb95d3 36 36 #define LIBC_IPC_VFS_H_ 37 37 38 #include <ipc/ ipc.h>38 #include <ipc/common.h> 39 39 #include <sys/types.h> 40 40 #include <bool.h>
Note:
See TracChangeset
for help on using the changeset viewer.
