Ignore:
Timestamp:
2011-06-08T19:01:55Z (13 years ago)
Author:
Martin Decky <martin@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
0eff68e
Parents:
764d71e
Message:

new async framework with integrated exchange tracking

  • strict isolation between low-level IPC and high-level async framework with integrated exchange tracking
    • each IPC connection is represented by an async_sess_t structure
    • each IPC exchange is represented by an async_exch_t structure
    • exchange management is either based on atomic messages (EXCHANGE_ATOMIC), locking (EXCHANGE_SERIALIZE) or connection cloning (EXCHANGE_CLONE)
  • async_obsolete: temporary compatibility layer to keep old async clients working (several pieces of code are currently broken, but only non-essential functionality)
  • IPC_M_PHONE_HANGUP is now method no. 0 (for elegant boolean evaluation)
  • IPC_M_DEBUG_ALL has been renamed to IPC_M_DEBUG
  • IPC_M_PING has been removed (VFS protocol now has VFS_IN_PING)
  • console routines in libc have been rewritten for better abstraction
  • additional use for libc-private header files (FILE structure opaque to the client)
  • various cstyle changes (typos, indentation, missing externs in header files, improved comments, etc.)
File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/hw/bus/cuda_adb/cuda_adb.c

    r764d71e r79ae36dd  
    4848#include <ipc/adb.h>
    4949#include <async.h>
     50#include <async_obsolete.h>
    5051#include <assert.h>
    5152#include "cuda_adb.h"
     53
     54// FIXME: remove this header
     55#include <kernel/ipc/ipc_methods.h>
    5256
    5357#define NAME "cuda_adb"
     
    219223                callid = async_get_call(&call);
    220224                method = IPC_GET_IMETHOD(call);
    221                 switch (method) {
    222                 case IPC_M_PHONE_HUNGUP:
     225               
     226                if (!method) {
    223227                        /* The other side has hung up. */
    224228                        async_answer_0(callid, EOK);
    225229                        return;
     230                }
     231               
     232                switch (method) {
    226233                case IPC_M_CONNECT_TO_ME:
    227234                        if (adb_dev[dev_addr].client_phone != -1) {
     
    479486                return;
    480487
    481         async_msg_1(adb_dev[dev_addr].client_phone, ADB_REG_NOTIF, reg_val);
     488        async_obsolete_msg_1(adb_dev[dev_addr].client_phone, ADB_REG_NOTIF, reg_val);
    482489}
    483490
Note: See TracChangeset for help on using the changeset viewer.