Changes in uspace/lib/c/generic/vfs/vfs.c [6b8e5b7:286286c] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/lib/c/generic/vfs/vfs.c
r6b8e5b7 r286286c 831 831 } 832 832 833 int get_mtab_list(list_t *mtab_list)834 {835 sysarg_t rc;836 aid_t req;837 size_t i;838 sysarg_t num_mounted_fs;839 840 async_exch_t *exch = vfs_exchange_begin();841 842 req = async_send_0(exch, VFS_IN_MTAB_GET, NULL);843 844 /* Ask VFS how many filesystems are mounted */845 rc = async_req_0_1(exch, VFS_IN_PING, &num_mounted_fs);846 if (rc != EOK)847 goto exit;848 849 for (i = 0; i < num_mounted_fs; ++i) {850 mtab_ent_t *mtab_ent;851 852 mtab_ent = malloc(sizeof(mtab_ent_t));853 if (!mtab_ent) {854 rc = ENOMEM;855 goto exit;856 }857 858 memset(mtab_ent, 0, sizeof(mtab_ent_t));859 860 rc = async_data_read_start(exch, (void *) mtab_ent->mp,861 MAX_PATH_LEN);862 if (rc != EOK)863 goto exit;864 865 rc = async_data_read_start(exch, (void *) mtab_ent->opts,866 MAX_MNTOPTS_LEN);867 if (rc != EOK)868 goto exit;869 870 rc = async_data_read_start(exch, (void *) mtab_ent->fs_name,871 FS_NAME_MAXLEN);872 if (rc != EOK)873 goto exit;874 875 sysarg_t p[2];876 877 rc = async_req_0_2(exch, VFS_IN_PING, &p[0], &p[1]);878 if (rc != EOK)879 goto exit;880 881 mtab_ent->instance = p[0];882 mtab_ent->service_id = p[1];883 884 link_initialize(&mtab_ent->link);885 list_append(&mtab_ent->link, mtab_list);886 }887 888 exit:889 async_wait_for(req, &rc);890 vfs_exchange_end(exch);891 return rc;892 }893 894 833 /** @} 895 834 */
Note:
See TracChangeset
for help on using the changeset viewer.