Changeset 72c72d4 in mainline for uspace/srv


Ignore:
Timestamp:
2018-06-29T13:41:13Z (7 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
1a9174e
Parents:
db9c889
git-author:
Jiri Svoboda <jiri@…> (2018-06-28 17:40:58)
git-committer:
Jiri Svoboda <jiri@…> (2018-06-29 13:41:13)
Message:

Basic volume eject implementation.

Location:
uspace/srv/volsrv
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/volsrv/part.c

    rdb9c889 r72c72d4  
    478478errno_t vol_part_get_info(vol_part_t *part, vol_part_info_t *pinfo)
    479479{
     480        memset(pinfo, 0, sizeof(*pinfo));
     481
    480482        pinfo->pcnt = part->pcnt;
    481483        pinfo->fstype = part->fstype;
    482484        str_cpy(pinfo->label, sizeof(pinfo->label), part->label);
    483         str_cpy(pinfo->cur_mp, sizeof(pinfo->cur_mp), part->cur_mp);
     485        if (part->cur_mp != NULL)
     486                str_cpy(pinfo->cur_mp, sizeof(pinfo->cur_mp), part->cur_mp);
    484487        pinfo->cur_mp_auto = part->cur_mp_auto;
    485488        return EOK;
  • uspace/srv/volsrv/volsrv.c

    rdb9c889 r72c72d4  
    181181}
    182182
     183static void vol_part_eject_srv(cap_call_handle_t icall_handle, ipc_call_t *icall)
     184{
     185        service_id_t sid;
     186        vol_part_t *part;
     187        errno_t rc;
     188
     189        sid = IPC_GET_ARG1(*icall);
     190        log_msg(LOG_DEFAULT, LVL_DEBUG, "vol_part_eject_srv(%zu)", sid);
     191
     192        rc = vol_part_find_by_id(sid, &part);
     193        if (rc != EOK) {
     194                async_answer_0(icall_handle, ENOENT);
     195                return;
     196        }
     197
     198        rc = vol_part_eject_part(part);
     199        if (rc != EOK) {
     200                async_answer_0(icall_handle, EIO);
     201                return;
     202        }
     203
     204        async_answer_0(icall_handle, EOK);
     205}
     206
    183207static void vol_part_empty_srv(cap_call_handle_t icall_handle, ipc_call_t *icall)
    184208{
     
    314338                        vol_part_info_srv(chandle, &call);
    315339                        break;
     340                case VOL_PART_EJECT:
     341                        vol_part_eject_srv(chandle, &call);
     342                        break;
    316343                case VOL_PART_EMPTY:
    317344                        vol_part_empty_srv(chandle, &call);
Note: See TracChangeset for help on using the changeset viewer.