Changeset b3f8fb7 in mainline for kernel/generic/include/ipc


Ignore:
Timestamp:
2007-01-28T13:25:49Z (18 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8e8c1a5
Parents:
1ba41c5
Message:

huge type system cleanup
remove cyclical type dependencies across multiple header files
many minor coding style fixes

Location:
kernel/generic/include/ipc
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/include/ipc/ipc.h

    r1ba41c5 rb3f8fb7  
    159159#ifdef KERNEL
    160160
    161 #include <synch/waitq.h>
    162 #include <adt/list.h>
    163 
    164 #define IPC_MAX_PHONES  16
    165 
    166 typedef struct answerbox_s answerbox_t;
    167 typedef struct phone_s phone_t;
     161#include <proc/task.h>
     162
    168163typedef struct {
    169164        unative_t args[IPC_CALL_LEN];
    170165        phone_t *phone;
    171166} ipc_data_t;
    172 
    173 struct answerbox_s {
    174         SPINLOCK_DECLARE(lock);
    175 
    176         task_t *task;
    177 
    178         waitq_t wq;
    179 
    180         link_t connected_phones;        /**< Phones connected to this answerbox */
    181         link_t calls;                   /**< Received calls */
    182         link_t dispatched_calls;        /* Should be hash table in the future */
    183 
    184         link_t answers;                 /**< Answered calls */
    185 
    186         SPINLOCK_DECLARE(irq_lock);
    187         link_t irq_notifs;              /**< Notifications from IRQ handlers */
    188         link_t irq_head;                /**< IRQs with notifications to this answerbox. */
    189 };
    190 
    191 typedef enum {
    192         IPC_PHONE_FREE = 0,     /**< Phone is free and can be allocated */
    193         IPC_PHONE_CONNECTING,   /**< Phone is connecting somewhere */
    194         IPC_PHONE_CONNECTED,    /**< Phone is connected */
    195         IPC_PHONE_HUNGUP,       /**< Phone is hung up, waiting for answers to come */
    196         IPC_PHONE_SLAMMED       /**< Phone was hungup from server */
    197 } ipc_phone_state_t;
    198 
    199 /** Structure identifying phone (in TASK structure) */
    200 struct phone_s {
    201         SPINLOCK_DECLARE(lock);
    202         link_t link;
    203         answerbox_t *callee;
    204         ipc_phone_state_t state;
    205         atomic_t active_calls;
    206 };
    207167
    208168typedef struct {
  • kernel/generic/include/ipc/irq.h

    r1ba41c5 rb3f8fb7  
    3939#define IRQ_MAX_PROG_SIZE 10
    4040
    41 typedef enum {
    42         CMD_MEM_READ_1 = 0,
    43         CMD_MEM_READ_2,
    44         CMD_MEM_READ_4,
    45         CMD_MEM_READ_8,
    46         CMD_MEM_WRITE_1,
    47         CMD_MEM_WRITE_2,
    48         CMD_MEM_WRITE_4,
    49         CMD_MEM_WRITE_8,
    50         CMD_PORT_READ_1,
    51         CMD_PORT_WRITE_1,
    52         CMD_IA64_GETCHAR,
    53         CMD_PPC32_GETCHAR,
    54         CMD_LAST
    55 } irq_cmd_type;
    56 
    57 typedef struct {
    58         irq_cmd_type cmd;
    59         void *addr;
    60         unsigned long long value;
    61         int dstarg;
    62 } irq_cmd_t;
    63 
    64 typedef struct {
    65         unsigned int cmdcount;
    66         irq_cmd_t *cmds;
    67 } irq_code_t;
    68 
    69 #ifdef KERNEL
    70 
    7141#include <ipc/ipc.h>
    72 #include <typedefs.h>
     42#include <ddi/irq.h>
    7343#include <arch/types.h>
    7444#include <adt/list.h>
    75 
    76 /** IPC notification config structure.
    77  *
    78  * Primarily, this structure is encapsulated in the irq_t structure.
    79  * It is protected by irq_t::lock.
    80  */
    81 struct ipc_notif_cfg {
    82         bool notify;                    /**< When false, notifications are not sent. */
    83         answerbox_t *answerbox;         /**< Answerbox for notifications. */
    84         unative_t method;               /**< Method to be used for the notification. */
    85         irq_code_t *code;               /**< Top-half pseudocode. */
    86         count_t counter;                /**< Counter. */
    87         link_t link;                    /**< Link between IRQs that are notifying the
    88                                              same answerbox. The list is protected by
    89                                              the answerbox irq_lock. */
    90 };
    9145
    9246extern int ipc_irq_register(answerbox_t *box, inr_t inr, devno_t devno, unative_t method,
     
    9953#endif
    10054
    101 #endif
    102 
    10355/** @}
    10456 */
  • kernel/generic/include/ipc/sysipc.h

    r1ba41c5 rb3f8fb7  
    3939#include <ipc/irq.h>
    4040#include <arch/types.h>
    41 #include <typedefs.h>
    4241
    4342unative_t sys_ipc_call_sync_fast(unative_t phoneid, unative_t method,
Note: See TracChangeset for help on using the changeset viewer.