Changeset eb522e8 in mainline for uspace/srv/bd/gxe_bd/gxe_bd.c


Ignore:
Timestamp:
2011-06-01T08:43:42Z (14 years ago)
Author:
Lubos Slovak <lubos.slovak@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
8d6c1f1
Parents:
9e2e715 (diff), e51a514 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Huuuuuge merge from development - all the work actually :)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/bd/gxe_bd/gxe_bd.c

    r9e2e715 reb522e8  
    3939#include <libarch/ddi.h>
    4040#include <ddi.h>
    41 #include <ipc/ipc.h>
    4241#include <ipc/bd.h>
    4342#include <async.h>
     
    9392static gxe_bd_t *dev;
    9493
    95 static dev_handle_t dev_handle[MAX_DISKS];
     94static devmap_handle_t devmap_handle[MAX_DISKS];
    9695
    9796static fibril_mutex_t dev_lock[MAX_DISKS];
     
    143142        for (i = 0; i < MAX_DISKS; i++) {
    144143                snprintf(name, 16, "%s/disk%d", NAMESPACE, i);
    145                 rc = devmap_device_register(name, &dev_handle[i]);
     144                rc = devmap_device_register(name, &devmap_handle[i]);
    146145                if (rc != EOK) {
    147                         devmap_hangup_phone(DEVMAP_DRIVER);
    148146                        printf(NAME ": Unable to register device %s.\n", name);
    149147                        return rc;
     
    160158        ipc_callid_t callid;
    161159        ipc_call_t call;
    162         ipcarg_t method;
    163         dev_handle_t dh;
    164         int flags;
     160        sysarg_t method;
     161        devmap_handle_t dh;
     162        unsigned int flags;
    165163        int retval;
    166164        uint64_t ba;
     
    174172        disk_id = -1;
    175173        for (i = 0; i < MAX_DISKS; i++)
    176                 if (dev_handle[i] == dh)
     174                if (devmap_handle[i] == dh)
    177175                        disk_id = i;
    178176
    179177        if (disk_id < 0) {
    180                 ipc_answer_0(iid, EINVAL);
     178                async_answer_0(iid, EINVAL);
    181179                return;
    182180        }
    183181
    184182        /* Answer the IPC_M_CONNECT_ME_TO call. */
    185         ipc_answer_0(iid, EOK);
     183        async_answer_0(iid, EOK);
    186184
    187185        if (!async_share_out_receive(&callid, &comm_size, &flags)) {
    188                 ipc_answer_0(callid, EHANGUP);
     186                async_answer_0(callid, EHANGUP);
    189187                return;
    190188        }
    191189
    192190        if (comm_size < block_size) {
    193                 ipc_answer_0(callid, EHANGUP);
     191                async_answer_0(callid, EHANGUP);
    194192                return;
    195193        }
     
    197195        fs_va = as_get_mappable_page(comm_size);
    198196        if (fs_va == NULL) {
    199                 ipc_answer_0(callid, EHANGUP);
     197                async_answer_0(callid, EHANGUP);
    200198                return;
    201199        }
     
    205203        while (1) {
    206204                callid = async_get_call(&call);
    207                 method = IPC_GET_METHOD(call);
     205                method = IPC_GET_IMETHOD(call);
    208206                switch (method) {
    209207                case IPC_M_PHONE_HUNGUP:
    210208                        /* The other side has hung up. */
    211                         ipc_answer_0(callid, EOK);
     209                        async_answer_0(callid, EOK);
    212210                        return;
    213211                case BD_READ_BLOCKS:
     
    232230                        break;
    233231                case BD_GET_BLOCK_SIZE:
    234                         ipc_answer_1(callid, EOK, block_size);
     232                        async_answer_1(callid, EOK, block_size);
    235233                        continue;
    236234                case BD_GET_NUM_BLOCKS:
     
    241239                        break;
    242240                }
    243                 ipc_answer_0(callid, retval);
     241                async_answer_0(callid, retval);
    244242        }
    245243}
Note: See TracChangeset for help on using the changeset viewer.