Changeset 79ae36dd in mainline for uspace/drv/vhc/hub.c


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/drv/vhc/hub.c

    r764d71e r79ae36dd  
    3333 * @brief Virtual USB hub.
    3434 */
     35
    3536#include <usb/classes/classes.h>
    3637#include <usbvirt/device.h>
    3738#include <errno.h>
     39#include <async.h>
    3840#include <str_error.h>
    3941#include <stdlib.h>
     
    4446
    4547#include "hub.h"
    46 //#include "hub/virthub.h"
    4748#include "vhcd.h"
    4849#include "conn.h"
     
    9798         * Wait until parent device is properly initialized.
    9899         */
    99         int phone;
     100        async_sess_t *sess;
    100101        do {
    101                 phone = devman_device_connect(hc_dev->handle, 0);
    102         } while (phone < 0);
    103         async_hangup(phone);
     102                sess = devman_device_connect(EXCHANGE_SERIALIZE, hc_dev->handle, 0);
     103        } while (!sess);
     104        async_hangup(sess);
    104105
    105106        int rc;
     
    129130        return 0;
    130131}
    131        
    132132
    133133/**
Note: See TracChangeset for help on using the changeset viewer.