Changeset 4285f384 in mainline for uspace/lib/device
- Timestamp:
- 2025-02-25T20:25:43Z (12 months ago)
- Branches:
- master
- Children:
- d30e067, f35749e
- Parents:
- d231a54
- Location:
- uspace/lib/device
- Files:
-
- 9 edited
-
include/bd.h (modified) (2 diffs)
-
include/bd_srv.h (modified) (2 diffs)
-
include/ipc/bd.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/vol.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/device/include/bd.h
rd231a54 r4285f384 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
rd231a54 r4285f384 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/ipc/bd.h
rd231a54 r4285f384 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/vol.h
rd231a54 r4285f384 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
rd231a54 r4285f384 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
rd231a54 r4285f384 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
rd231a54 r4285f384 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
rd231a54 r4285f384 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/vol.c
rd231a54 r4285f384 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.
