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/hid/s3c24xx_ts/s3c24xx_ts.c

    r764d71e r79ae36dd  
    4444#include <ipc/mouse.h>
    4545#include <async.h>
     46#include <async_obsolete.h>
    4647#include <unistd.h>
    4748#include <stdio.h>
     
    5051#include <errno.h>
    5152#include <inttypes.h>
    52 
    5353#include "s3c24xx_ts.h"
     54
     55// FIXME: remove this header
     56#include <kernel/ipc/ipc_methods.h>
    5457
    5558#define NAME "s3c24ser"
     
    280283        button = 1;
    281284        press = 0;
    282         async_msg_2(ts->client_phone, MEVENT_BUTTON, button, press);
     285        async_obsolete_msg_2(ts->client_phone, MEVENT_BUTTON, button, press);
    283286
    284287        s3c24xx_ts_wait_for_int_mode(ts, updn_down);
     
    321324
    322325        /* Send notifications to client. */
    323         async_msg_2(ts->client_phone, MEVENT_MOVE, dx, dy);
    324         async_msg_2(ts->client_phone, MEVENT_BUTTON, button, press);
     326        async_obsolete_msg_2(ts->client_phone, MEVENT_MOVE, dx, dy);
     327        async_obsolete_msg_2(ts->client_phone, MEVENT_BUTTON, button, press);
    325328
    326329        ts->last_x = x_pos;
     
    380383        while (1) {
    381384                callid = async_get_call(&call);
    382                 switch (IPC_GET_IMETHOD(call)) {
    383                 case IPC_M_PHONE_HUNGUP:
     385               
     386                if (!IPC_GET_IMETHOD(call)) {
    384387                        if (ts->client_phone != -1) {
    385                                 async_hangup(ts->client_phone);
     388                                async_obsolete_hangup(ts->client_phone);
    386389                                ts->client_phone = -1;
    387390                        }
     
    389392                        async_answer_0(callid, EOK);
    390393                        return;
     394                }
     395               
     396                switch (IPC_GET_IMETHOD(call)) {
    391397                case IPC_M_CONNECT_TO_ME:
    392398                        if (ts->client_phone != -1) {
Note: See TracChangeset for help on using the changeset viewer.