Changes in uspace/srv/bd/rd/rd.c [15f3c3f:47b7006] in mainline


Ignore:
File:
1 edited

Legend:

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

    r15f3c3f r47b7006  
    5252#include <fibril_synch.h>
    5353#include <stdio.h>
    54 #include <loc.h>
     54#include <devmap.h>
    5555#include <ipc/bd.h>
    5656#include <macros.h>
     
    8484 * @param icall Call data of the request that opened the connection.
    8585 */
    86 static void rd_connection(ipc_callid_t iid, ipc_call_t *icall, void *arg)
     86static void rd_connection(ipc_callid_t iid, ipc_call_t *icall)
    8787{
    8888        ipc_callid_t callid;
     
    123123        while (true) {
    124124                callid = async_get_call(&call);
    125                
    126                 if (!IPC_GET_IMETHOD(call)) {
     125                switch (IPC_GET_IMETHOD(call)) {
     126                case IPC_M_PHONE_HUNGUP:
    127127                        /*
    128128                         * The other side has hung up.
    129                          * Exit the fibril.
     129                         * Answer the message and exit the fibril.
    130130                         */
    131131                        async_answer_0(callid, EOK);
    132132                        return;
    133                 }
    134                
    135                 switch (IPC_GET_IMETHOD(call)) {
    136133                case BD_READ_BLOCKS:
    137134                        ba = MERGE_LOUP32(IPC_GET_ARG1(call),
     
    235232            (void *) rd_ph_addr, rd_size);
    236233       
    237         int rc = loc_server_register(NAME, rd_connection);
     234        int rc = devmap_driver_register(NAME, rd_connection);
    238235        if (rc < 0) {
    239236                printf("%s: Unable to register driver (%d)\n", NAME, rc);
     
    241238        }
    242239       
    243         service_id_t service_id;
    244         if (loc_service_register("bd/initrd", &service_id) != EOK) {
    245                 printf("%s: Unable to register device service\n", NAME);
    246                 return false;
    247         }
    248        
     240        devmap_handle_t devmap_handle;
     241        if (devmap_device_register("bd/initrd", &devmap_handle) != EOK) {
     242                printf("%s: Unable to register device\n", NAME);
     243                return false;
     244        }
     245
    249246        fibril_rwlock_initialize(&rd_lock);
    250247       
     
    261258        printf("%s: Accepting connections\n", NAME);
    262259        async_manager();
    263        
     260
    264261        /* Never reached */
    265262        return 0;
Note: See TracChangeset for help on using the changeset viewer.