Subversion Repositories HelenOS-historic

Rev

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

Rev 1088 Rev 1090
Line 37... Line 37...
37
#define IPC_MAX_ASYNC_CALLS  4
37
#define IPC_MAX_ASYNC_CALLS  4
38
 
38
 
39
/* Flags for calls */
39
/* Flags for calls */
40
#define IPC_CALL_ANSWERED       (1<<0) /**< This is answer to a call */
40
#define IPC_CALL_ANSWERED       (1<<0) /**< This is answer to a call */
41
#define IPC_CALL_STATIC_ALLOC   (1<<1) /**< This call will not be freed on error */
41
#define IPC_CALL_STATIC_ALLOC   (1<<1) /**< This call will not be freed on error */
42
#define IPC_CALL_DISPATCHED     (1<<2) /**< Call is in dispatch queue */
-
 
43
#define IPC_CALL_DISCARD_ANSWER (1<<3) /**< Answer will not be passed to
42
#define IPC_CALL_DISCARD_ANSWER (1<<2) /**< Answer will not be passed to
44
                    * userspace, will be discarded */
43
                    * userspace, will be discarded */
45
#define IPC_CALL_FORWARDED      (1<<4) /* Call was forwarded */
44
#define IPC_CALL_FORWARDED      (1<<3) /* Call was forwarded */
-
 
45
#define IPC_CALL_CONN_ME_TO     (1<<4) /* Identify connect_me_to */
46
 
46
 
47
/* Flags for ipc_wait_for_call */
47
/* Flags for ipc_wait_for_call */
48
#define IPC_WAIT_NONBLOCKING   1
48
#define IPC_WAIT_NONBLOCKING   1
49
 
49
 
50
/* Flags of callid (the addresses are aligned at least to 4,
50
/* Flags of callid (the addresses are aligned at least to 4,
Line 180... Line 180...
180
    /* The caller box is different from sender->answerbox
180
    /* The caller box is different from sender->answerbox
181
     * for synchronous calls
181
     * for synchronous calls
182
     */
182
     */
183
    answerbox_t *callerbox;
183
    answerbox_t *callerbox;
184
 
184
 
-
 
185
    __native private; /**< Private data to internal IPC */
-
 
186
 
185
    ipc_data_t data;
187
    ipc_data_t data;  /**< Data passed from/to userspace */
186
}call_t;
188
}call_t;
187
 
189
 
188
extern void ipc_init(void);
190
extern void ipc_init(void);
189
extern call_t * ipc_wait_for_call(answerbox_t *box, int flags);
191
extern call_t * ipc_wait_for_call(answerbox_t *box, int flags);
190
extern void ipc_answer(answerbox_t *box, call_t *request);
192
extern void ipc_answer(answerbox_t *box, call_t *request);
Line 196... Line 198...
196
extern call_t * ipc_call_alloc(void);
198
extern call_t * ipc_call_alloc(void);
197
extern void ipc_answerbox_init(answerbox_t *box);
199
extern void ipc_answerbox_init(answerbox_t *box);
198
extern void ipc_call_static_init(call_t *call);
200
extern void ipc_call_static_init(call_t *call);
199
extern void task_print_list(void);
201
extern void task_print_list(void);
200
extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox);
202
extern int ipc_forward(call_t *call, phone_t *newphone, answerbox_t *oldbox);
201
 
-
 
202
extern answerbox_t *ipc_phone_0;
-
 
203
extern void ipc_cleanup(task_t *task);
203
extern void ipc_cleanup(task_t *task);
204
extern int ipc_phone_hangup(phone_t *phone);
204
extern int ipc_phone_hangup(phone_t *phone);
-
 
205
extern void ipc_backsend_err(phone_t *phone, call_t *call, __native err);
-
 
206
 
-
 
207
extern answerbox_t *ipc_phone_0;
205
 
208
 
206
#endif
209
#endif
207
 
210
 
208
#endif
211
#endif