Changeset 22fb7ab in mainline for uspace/srv/bd/vbd/vbd.c


Ignore:
Timestamp:
2015-06-26T16:15:31Z (9 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
28ed0d9
Parents:
1356f85a
Message:

Delegate disks to volsrv and labels to vbd.

File:
1 edited

Legend:

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

    r1356f85a r22fb7ab  
    2727 */
    2828
    29 /** @addtogroup dnsres
     29/** @addtogroup vbd
    3030 * @{
    3131 */
     
    3838#include <io/log.h>
    3939#include <ipc/services.h>
     40#include <ipc/vbd.h>
    4041#include <loc.h>
    4142#include <stdio.h>
     
    4344#include <task.h>
    4445
     46#include "types/vbd.h"
     47
    4548#define NAME  "vbd"
    4649
     
    5053{
    5154        int rc;
    52         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_init()");
     55        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_init()");
    5356
    5457        async_set_client_connection(vbd_client_conn);
     
    7073}
    7174
     75static int vbd_disk_add(service_id_t sid)
     76{
     77        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_add(%zu)", sid);
     78        return EOK;
     79}
     80
     81static int vbd_disk_remove(service_id_t sid)
     82{
     83        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_remove(%zu)", sid);
     84        return EOK;
     85}
     86
     87static int vbd_disk_info(service_id_t sid, vbd_disk_info_t *info)
     88{
     89        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_info(%zu)", sid);
     90        info->ltype = lt_mbr;
     91        return EOK;
     92}
     93
     94static int vbd_label_create(service_id_t sid, label_type_t ltype)
     95{
     96        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_label_create(%zu, %d)", sid,
     97            ltype);
     98        return EOK;
     99}
     100
     101static int vbd_label_delete(service_id_t sid, label_type_t ltype)
     102{
     103        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_label_delete(%zu, %d)", sid,
     104            ltype);
     105        return EOK;
     106}
     107
     108static void vbd_disk_add_srv(ipc_callid_t iid, ipc_call_t *icall)
     109{
     110        service_id_t disk_sid;
     111        int rc;
     112
     113        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_add_srv()");
     114
     115        disk_sid = IPC_GET_ARG1(*icall);
     116        rc = vbd_disk_add(disk_sid);
     117        async_answer_0(iid, (sysarg_t) rc);
     118}
     119
     120static void vbd_disk_remove_srv(ipc_callid_t iid, ipc_call_t *icall)
     121{
     122        service_id_t disk_sid;
     123        int rc;
     124
     125        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_remove_srv()");
     126
     127        disk_sid = IPC_GET_ARG1(*icall);
     128        rc = vbd_disk_remove(disk_sid);
     129        async_answer_0(iid, (sysarg_t) rc);
     130}
     131
     132static void vbd_disk_info_srv(ipc_callid_t iid, ipc_call_t *icall)
     133{
     134        service_id_t disk_sid;
     135        vbd_disk_info_t dinfo;
     136        int rc;
     137
     138        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_disk_info_srv()");
     139
     140        disk_sid = IPC_GET_ARG1(*icall);
     141        rc = vbd_disk_info(disk_sid, &dinfo);
     142        async_answer_1(iid, (sysarg_t)rc, (sysarg_t)dinfo.ltype);
     143}
     144
     145static void vbd_label_create_srv(ipc_callid_t iid, ipc_call_t *icall)
     146{
     147        service_id_t disk_sid;
     148        label_type_t ltype;
     149        int rc;
     150
     151        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_label_create_srv()");
     152
     153        disk_sid = IPC_GET_ARG1(*icall);
     154        ltype = IPC_GET_ARG2(*icall);
     155        rc = vbd_label_create(disk_sid, ltype);
     156        async_answer_0(iid, (sysarg_t) rc);
     157}
     158
     159static void vbd_label_delete_srv(ipc_callid_t iid, ipc_call_t *icall)
     160{
     161        service_id_t disk_sid;
     162        label_type_t ltype;
     163        int rc;
     164
     165        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_label_delete_srv()");
     166
     167        disk_sid = IPC_GET_ARG1(*icall);
     168        ltype = IPC_GET_ARG2(*icall);
     169        rc = vbd_label_delete(disk_sid, ltype);
     170        async_answer_0(iid, (sysarg_t) rc);
     171}
    72172
    73173static void vbd_client_conn(ipc_callid_t iid, ipc_call_t *icall, void *arg)
    74174{
    75         log_msg(LOG_DEFAULT, LVL_DEBUG, "vbd_client_conn()");
     175        log_msg(LOG_DEFAULT, LVL_NOTE, "vbd_client_conn()");
    76176
    77177        /* Accept the connection */
     
    90190
    91191                switch (method) {
     192                case VBD_DISK_ADD:
     193                        vbd_disk_add_srv(callid, &call);
     194                        break;
     195                case VBD_DISK_REMOVE:
     196                        vbd_disk_remove_srv(callid, &call);
     197                        break;
     198                case VBD_DISK_INFO:
     199                        vbd_disk_info_srv(callid, &call);
     200                        break;
     201                case VBD_LABEL_CREATE:
     202                        vbd_label_create_srv(callid, &call);
     203                        break;
     204                case VBD_LABEL_DELETE:
     205                        vbd_label_delete_srv(callid, &call);
     206                        break;
    92207                default:
    93208                        async_answer_0(callid, EINVAL);
Note: See TracChangeset for help on using the changeset viewer.