Changeset d2c8533 in mainline for uspace/lib/c
- Timestamp:
- 2017-05-08T20:38:47Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f066a87
- Parents:
- 582a0b8
- Location:
- uspace/lib/c
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/vfs/vfs.c
r582a0b8 rd2c8533 347 347 return loc_service_connect(stat.service, iface, 0); 348 348 } 349 350 /** Determine if a device contains the specified file system type. If so, 351 * return identification information. 352 * 353 * @param fs_name File system name 354 * @param serv Service representing the mountee 355 * @param info Place to store volume identification information 356 * 357 * @return EOK on success or a negative error code 358 */ 359 int vfs_fsprobe(const char *fs_name, service_id_t serv, 360 vfs_fs_probe_info_t *info) 361 { 362 sysarg_t rc; 363 364 ipc_call_t answer; 365 async_exch_t *exch = vfs_exchange_begin(); 366 aid_t req = async_send_1(exch, VFS_IN_FSPROBE, serv, &answer); 367 368 rc = async_data_write_start(exch, (void *) fs_name, 369 str_size(fs_name)); 370 371 async_wait_for(req, &rc); 372 373 if (rc != EOK) { 374 vfs_exchange_end(exch); 375 return rc; 376 } 377 378 rc = async_data_read_start(exch, info, sizeof(*info)); 379 vfs_exchange_end(exch); 380 381 return rc; 382 } 383 349 384 350 385 /** Return a list of currently available file system types -
uspace/lib/c/include/ipc/vfs.h
r582a0b8 rd2c8533 41 41 42 42 #define FS_NAME_MAXLEN 20 43 #define FS_LABEL_MAXLEN 256 44 #define FS_VUID_MAXLEN 128 43 45 #define MAX_PATH_LEN (32 * 1024) 44 46 #define MAX_MNTOPTS_LEN 256 … … 62 64 } vfs_info_t; 63 65 66 /** Data returned by filesystem probe regarding a specific volume. */ 67 typedef struct { 68 char label[FS_LABEL_MAXLEN + 1]; 69 char vuid[FS_VUID_MAXLEN + 1]; 70 } vfs_fs_probe_info_t; 71 64 72 typedef enum { 65 73 VFS_IN_CLONE = IPC_FIRST_USER_METHOD, 74 VFS_IN_FSPROBE, 66 75 VFS_IN_FSTYPES, 67 76 VFS_IN_MOUNT, … … 85 94 VFS_OUT_CLOSE = IPC_FIRST_USER_METHOD, 86 95 VFS_OUT_DESTROY, 96 VFS_OUT_FSPROBE, 87 97 VFS_OUT_IS_EMPTY, 88 98 VFS_OUT_LINK, -
uspace/lib/c/include/vfs/vfs.h
r582a0b8 rd2c8533 88 88 extern async_exch_t *vfs_exchange_begin(void); 89 89 extern void vfs_exchange_end(async_exch_t *); 90 extern int vfs_fsprobe(const char *, service_id_t, vfs_fs_probe_info_t *); 90 91 extern int vfs_fstypes(vfs_fstypes_t *); 91 92 extern void vfs_fstypes_free(vfs_fstypes_t *);
Note:
See TracChangeset
for help on using the changeset viewer.