Changeset d30e067 in mainline for uspace/lib/device


Ignore:
Timestamp:
2025-03-02T20:02:33Z (11 months ago)
Author:
Miroslav Cimerman <mc@…>
Children:
8cdf360
Parents:
7debda3 (diff), 4285f384 (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:

Merge 'upstream/master' into helenraid-para

Location:
uspace/lib/device
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/device/include/bd.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5151extern errno_t bd_get_block_size(bd_t *, size_t *);
    5252extern errno_t bd_get_num_blocks(bd_t *, aoff64_t *);
     53extern errno_t bd_eject(bd_t *);
    5354
    5455#endif
  • uspace/lib/device/include/bd_srv.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    6666        errno_t (*get_block_size)(bd_srv_t *, size_t *);
    6767        errno_t (*get_num_blocks)(bd_srv_t *, aoff64_t *);
     68        errno_t (*eject)(bd_srv_t *);
    6869};
    6970
  • uspace/lib/device/include/devman.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2009 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * Copyright (c) 2010 Lenka Trochtova
    44 * All rights reserved.
     
    5252extern errno_t devman_drv_fun_online(devman_handle_t);
    5353extern errno_t devman_drv_fun_offline(devman_handle_t);
     54extern errno_t devman_drv_fun_wait_stable(devman_handle_t);
    5455
    5556extern async_sess_t *devman_device_connect(devman_handle_t, unsigned int);
  • uspace/lib/device/include/ipc/bd.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2009 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4444        BD_SYNC_CACHE,
    4545        BD_WRITE_BLOCKS,
    46         BD_READ_TOC
     46        BD_READ_TOC,
     47        BD_EJECT
    4748} bd_request_t;
    4849
  • uspace/lib/device/include/ipc/devman.h

    r7debda3 rd30e067  
    11/*
     2 * Copyright (c) 2025 Jiri Svoboda
    23 * Copyright (c) 2010 Lenka Trochtova
    34 * All rights reserved.
     
    147148        DEVMAN_DRV_FUN_ONLINE,
    148149        DEVMAN_DRV_FUN_OFFLINE,
     150        DEVMAN_DRV_FUN_WAIT_STABLE,
    149151        DEVMAN_REMOVE_FUNCTION
    150152} driver_to_devman_t;
  • uspace/lib/device/include/ipc/vol.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2015 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    5454} vol_request_t;
    5555
     56/** Volume eject flags */
     57typedef enum {
     58        /** No flags */
     59        vef_none = 0x0,
     60        /** Physically eject medium */
     61        vef_physical = 0x1
     62} vol_eject_flags_t;
     63
    5664#endif
    5765
  • uspace/lib/device/include/types/vol.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2015 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
  • uspace/lib/device/include/vol.h

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2015 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    4848extern errno_t vol_part_add(vol_t *, service_id_t);
    4949extern errno_t vol_part_info(vol_t *, service_id_t, vol_part_info_t *);
    50 extern errno_t vol_part_eject(vol_t *, service_id_t);
     50extern errno_t vol_part_eject(vol_t *, service_id_t, vol_eject_flags_t);
    5151extern errno_t vol_part_empty(vol_t *, service_id_t);
    5252extern errno_t vol_part_insert(vol_t *, service_id_t);
  • uspace/lib/device/src/bd.c

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2012 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    196196}
    197197
     198errno_t bd_eject(bd_t *bd)
     199{
     200        async_exch_t *exch = async_exchange_begin(bd->sess);
     201
     202        errno_t rc = async_req_0_0(exch, BD_EJECT);
     203        async_exchange_end(exch);
     204
     205        return rc;
     206}
     207
    198208static void bd_cb_conn(ipc_call_t *icall, void *arg)
    199209{
  • uspace/lib/device/src/bd_srv.c

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2023 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    206206}
    207207
     208static void bd_eject_srv(bd_srv_t *srv, ipc_call_t *call)
     209{
     210        errno_t rc;
     211
     212        if (srv->srvs->ops->eject == NULL) {
     213                async_answer_0(call, ENOTSUP);
     214                return;
     215        }
     216
     217        rc = srv->srvs->ops->eject(srv);
     218        async_answer_0(call, rc);
     219}
     220
    208221static bd_srv_t *bd_srv_create(bd_srvs_t *srvs)
    209222{
     
    276289                        bd_get_num_blocks_srv(srv, &call);
    277290                        break;
     291                case BD_EJECT:
     292                        bd_eject_srv(srv, &call);
     293                        break;
    278294                default:
    279295                        async_answer_0(&call, EINVAL);
  • uspace/lib/device/src/devman.c

    r7debda3 rd30e067  
    11/*
     2 * Copyright (c) 2025 Jiri Svoboda
    23 * Copyright (c) 2007 Josef Cejka
    3  * Copyright (c) 2013 Jiri Svoboda
    44 * Copyright (c) 2010 Lenka Trochtova
    55 * All rights reserved.
     
    343343}
    344344
     345errno_t devman_drv_fun_wait_stable(devman_handle_t funh)
     346{
     347        async_exch_t *exch = devman_exchange_begin(INTERFACE_DDF_DRIVER);
     348        if (exch == NULL)
     349                return ENOMEM;
     350
     351        errno_t retval = async_req_1_0(exch, DEVMAN_DRV_FUN_WAIT_STABLE, funh);
     352
     353        devman_exchange_end(exch);
     354        return retval;
     355}
     356
    345357async_sess_t *devman_parent_device_connect(devman_handle_t handle,
    346358    unsigned int flags)
  • uspace/lib/device/src/vol.c

    r7debda3 rd30e067  
    11/*
    2  * Copyright (c) 2015 Jiri Svoboda
     2 * Copyright (c) 2025 Jiri Svoboda
    33 * All rights reserved.
    44 *
     
    253253 * @param vol Volume service
    254254 * @param sid Service ID of the partition
    255  * @return EOK on success or an error code
    256  */
    257 errno_t vol_part_eject(vol_t *vol, service_id_t sid)
    258 {
    259         async_exch_t *exch;
    260         errno_t retval;
    261 
    262         exch = async_exchange_begin(vol->sess);
    263         retval = async_req_1_0(exch, VOL_PART_EJECT, sid);
     255 * @param flags Ejection flags
     256 * @return EOK on success or an error code
     257 */
     258errno_t vol_part_eject(vol_t *vol, service_id_t sid, vol_eject_flags_t flags)
     259{
     260        async_exch_t *exch;
     261        errno_t retval;
     262
     263        exch = async_exchange_begin(vol->sess);
     264        retval = async_req_2_0(exch, VOL_PART_EJECT, sid, flags);
    264265        async_exchange_end(exch);
    265266
Note: See TracChangeset for help on using the changeset viewer.