Changeset d30e067 in mainline for uspace/lib/device
- Timestamp:
- 2025-03-02T20:02:33Z (11 months ago)
- 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. - Location:
- uspace/lib/device
- Files:
-
- 12 edited
-
include/bd.h (modified) (2 diffs)
-
include/bd_srv.h (modified) (2 diffs)
-
include/devman.h (modified) (2 diffs)
-
include/ipc/bd.h (modified) (2 diffs)
-
include/ipc/devman.h (modified) (2 diffs)
-
include/ipc/vol.h (modified) (2 diffs)
-
include/types/vol.h (modified) (1 diff)
-
include/vol.h (modified) (2 diffs)
-
src/bd.c (modified) (2 diffs)
-
src/bd_srv.c (modified) (3 diffs)
-
src/devman.c (modified) (2 diffs)
-
src/vol.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/device/include/bd.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 51 51 extern errno_t bd_get_block_size(bd_t *, size_t *); 52 52 extern errno_t bd_get_num_blocks(bd_t *, aoff64_t *); 53 extern errno_t bd_eject(bd_t *); 53 54 54 55 #endif -
uspace/lib/device/include/bd_srv.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 66 66 errno_t (*get_block_size)(bd_srv_t *, size_t *); 67 67 errno_t (*get_num_blocks)(bd_srv_t *, aoff64_t *); 68 errno_t (*eject)(bd_srv_t *); 68 69 }; 69 70 -
uspace/lib/device/include/devman.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 09Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * Copyright (c) 2010 Lenka Trochtova 4 4 * All rights reserved. … … 52 52 extern errno_t devman_drv_fun_online(devman_handle_t); 53 53 extern errno_t devman_drv_fun_offline(devman_handle_t); 54 extern errno_t devman_drv_fun_wait_stable(devman_handle_t); 54 55 55 56 extern async_sess_t *devman_device_connect(devman_handle_t, unsigned int); -
uspace/lib/device/include/ipc/bd.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 09Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 44 44 BD_SYNC_CACHE, 45 45 BD_WRITE_BLOCKS, 46 BD_READ_TOC 46 BD_READ_TOC, 47 BD_EJECT 47 48 } bd_request_t; 48 49 -
uspace/lib/device/include/ipc/devman.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2010 Lenka Trochtova 3 4 * All rights reserved. … … 147 148 DEVMAN_DRV_FUN_ONLINE, 148 149 DEVMAN_DRV_FUN_OFFLINE, 150 DEVMAN_DRV_FUN_WAIT_STABLE, 149 151 DEVMAN_REMOVE_FUNCTION 150 152 } driver_to_devman_t; -
uspace/lib/device/include/ipc/vol.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 15 Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 54 54 } vol_request_t; 55 55 56 /** Volume eject flags */ 57 typedef enum { 58 /** No flags */ 59 vef_none = 0x0, 60 /** Physically eject medium */ 61 vef_physical = 0x1 62 } vol_eject_flags_t; 63 56 64 #endif 57 65 -
uspace/lib/device/include/types/vol.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 15 Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * -
uspace/lib/device/include/vol.h
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 15 Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 48 48 extern errno_t vol_part_add(vol_t *, service_id_t); 49 49 extern 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 );50 extern errno_t vol_part_eject(vol_t *, service_id_t, vol_eject_flags_t); 51 51 extern errno_t vol_part_empty(vol_t *, service_id_t); 52 52 extern errno_t vol_part_insert(vol_t *, service_id_t); -
uspace/lib/device/src/bd.c
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 12Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 196 196 } 197 197 198 errno_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 198 208 static void bd_cb_conn(ipc_call_t *icall, void *arg) 199 209 { -
uspace/lib/device/src/bd_srv.c
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 202 3Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 206 206 } 207 207 208 static 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 208 221 static bd_srv_t *bd_srv_create(bd_srvs_t *srvs) 209 222 { … … 276 289 bd_get_num_blocks_srv(srv, &call); 277 290 break; 291 case BD_EJECT: 292 bd_eject_srv(srv, &call); 293 break; 278 294 default: 279 295 async_answer_0(&call, EINVAL); -
uspace/lib/device/src/devman.c
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 2025 Jiri Svoboda 2 3 * Copyright (c) 2007 Josef Cejka 3 * Copyright (c) 2013 Jiri Svoboda4 4 * Copyright (c) 2010 Lenka Trochtova 5 5 * All rights reserved. … … 343 343 } 344 344 345 errno_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 345 357 async_sess_t *devman_parent_device_connect(devman_handle_t handle, 346 358 unsigned int flags) -
uspace/lib/device/src/vol.c
r7debda3 rd30e067 1 1 /* 2 * Copyright (c) 20 15 Jiri Svoboda2 * Copyright (c) 2025 Jiri Svoboda 3 3 * All rights reserved. 4 4 * … … 253 253 * @param vol Volume service 254 254 * @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 */ 258 errno_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); 264 265 async_exchange_end(exch); 265 266
Note:
See TracChangeset
for help on using the changeset viewer.
