Subversion Repositories HelenOS

Compare Revisions

Regard whitespace Rev 2470 → Rev 2471

/trunk/kernel/generic/include/ipc/ipc.h
61,15 → 61,17
/** Interrupt notification */
#define IPC_CALL_NOTIF (1 << 5)
 
/* Flags of callid (the addresses are aligned at least to 4,
* that is why we can use bottom 2 bits of the call address
/*
* Bits used in call hashes.
* The addresses are aligned at least to 4 that is why we can use the 2 least
* significant bits of the call address.
*/
/** Type of this msg is 'answer' */
/** Type of this call is 'answer' */
#define IPC_CALLID_ANSWERED 1
/** Type of this msg is 'notification' */
/** Type of this call is 'notification' */
#define IPC_CALLID_NOTIFICATION 2
 
/* Return values from IPC_ASYNC */
/* Return values from sys_ipc_call_async(). */
#define IPC_CALLRET_FATAL -1
#define IPC_CALLRET_TEMPORARY -2
 
203,17 → 205,17
 
waitq_t wq;
 
/** Phones connected to this answerbox */
/** Phones connected to this answerbox. */
link_t connected_phones;
/** Received calls */
/** Received calls. */
link_t calls;
link_t dispatched_calls; /* Should be hash table in the future */
 
/** Answered calls */
/** Answered calls. */
link_t answers;
 
SPINLOCK_DECLARE(irq_lock);
/** Notifications from IRQ handlers */
/** Notifications from IRQ handlers. */
link_t irq_notifs;
/** IRQs with notifications to this answerbox. */
link_t irq_head;
229,17 → 231,16
 
int flags;
 
/* Identification of the caller */
/** Identification of the caller. */
struct task *sender;
/* The caller box is different from sender->answerbox
* for synchronous calls
*/
/** The caller box is different from sender->answerbox for synchronous
* calls. */
answerbox_t *callerbox;
 
/** Private data to internal IPC */
/** Private data to internal IPC. */
unative_t priv;
 
/** Data passed from/to userspace */
/** Data passed from/to userspace. */
ipc_data_t data;
} call_t;
 
/trunk/kernel/generic/include/ipc/irq.h
46,7 → 46,8
extern int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno,
unative_t method, irq_code_t *ucode);
extern void ipc_irq_send_notif(irq_t *irq);
extern void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2, unative_t a3);
extern void ipc_irq_send_msg(irq_t *irq, unative_t a1, unative_t a2,
unative_t a3);
extern void ipc_irq_unregister(answerbox_t *box, inr_t inr, devno_t devno);
extern void ipc_irq_cleanup(answerbox_t *box);
 
/trunk/kernel/generic/include/ipc/ipcrsc.h
35,10 → 35,10
#ifndef KERN_IPCRSC_H_
#define KERN_IPCRSC_H_
 
call_t * get_call(unative_t callid);
int phone_alloc(void);
void phone_connect(int phoneid, answerbox_t *box);
void phone_dealloc(int phoneid);
extern call_t * get_call(unative_t callid);
extern int phone_alloc(void);
extern void phone_connect(int phoneid, answerbox_t *box);
extern void phone_dealloc(int phoneid);
 
#endif