- Timestamp:
- 2011-09-24T20:25:46Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- d03da17
- Parents:
- 4093b14 (diff), f1a9e87 (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
- Files:
-
- 21 edited
-
app/bdsh/cmds/modules/mount/mount.c (modified) (3 diffs)
-
app/init/init.c (modified) (4 diffs)
-
drv/bus/usb/usbhub/usbhub.c (modified) (1 diff)
-
lib/c/arch/ia64/include/ddi.h (modified) (4 diffs)
-
lib/c/generic/adt/hash_table.c (modified) (1 diff)
-
lib/c/generic/adt/list.c (modified) (1 diff)
-
lib/c/generic/malloc.c (modified) (1 diff)
-
lib/c/generic/vfs/vfs.c (modified) (2 diffs)
-
lib/c/include/ipc/vfs.h (modified) (1 diff)
-
lib/c/include/vfs/vfs.h (modified) (1 diff)
-
srv/devman/main.c (modified) (2 diffs)
-
srv/fs/cdfs/cdfs.c (modified) (2 diffs)
-
srv/fs/exfat/exfat.c (modified) (2 diffs)
-
srv/fs/ext2fs/ext2fs.c (modified) (2 diffs)
-
srv/fs/fat/fat.c (modified) (2 diffs)
-
srv/fs/locfs/locfs.c (modified) (2 diffs)
-
srv/fs/mfs/mfs.c (modified) (3 diffs)
-
srv/fs/tmpfs/tmpfs.c (modified) (2 diffs)
-
srv/vfs/vfs.h (modified) (1 diff)
-
srv/vfs/vfs_ops.c (modified) (3 diffs)
-
srv/vfs/vfs_register.c (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/bdsh/cmds/modules/mount/mount.c
r4093b14 reb87adb 43 43 static struct option const long_options[] = { 44 44 { "help", no_argument, 0, 'h' }, 45 { "instance", required_argument, 0, 'i' }, 45 46 { 0, 0, 0, 0 } 46 47 }; … … 68 69 const char *dev = ""; 69 70 int rc, c, opt_ind; 71 unsigned int instance = 0; 72 bool instance_set = false; 73 char **t_argv; 70 74 71 75 argc = cli_count_args(argv); 72 76 73 77 for (c = 0, optind = 0, opt_ind = 0; c != -1;) { 74 c = getopt_long(argc, argv, " h", long_options, &opt_ind);78 c = getopt_long(argc, argv, "i:h", long_options, &opt_ind); 75 79 switch (c) { 76 80 case 'h': 77 81 help_cmd_mount(HELP_LONG); 78 82 return CMD_SUCCESS; 83 case 'i': 84 instance = (unsigned int) strtol(optarg, NULL, 10); 85 instance_set = true; 86 break; 79 87 } 80 88 } 89 90 if (instance_set) { 91 argc -= 2; 92 t_argv = &argv[2]; 93 } else 94 t_argv = &argv[0]; 81 95 82 96 if ((argc < 3) || (argc > 5)) { … … 86 100 } 87 101 if (argc > 3) 88 dev = argv[3];102 dev = t_argv[3]; 89 103 if (argc == 5) 90 mopts = argv[4];104 mopts = t_argv[4]; 91 105 92 rc = mount( argv[1], argv[2], dev, mopts, 0);106 rc = mount(t_argv[1], t_argv[2], dev, mopts, 0, instance); 93 107 if (rc != EOK) { 94 108 printf("Unable to mount %s filesystem to %s on %s (rc=%d)\n", 95 argv[1], argv[2],argv[3], rc);109 t_argv[1], t_argv[2], t_argv[3], rc); 96 110 return CMD_FAILURE; 97 111 } -
uspace/app/init/init.c
r4093b14 reb87adb 121 121 122 122 int rc = mount(fstype, ROOT_MOUNT_POINT, ROOT_DEVICE, opts, 123 IPC_FLAG_BLOCKING );123 IPC_FLAG_BLOCKING, 0); 124 124 return mount_report("Root filesystem", ROOT_MOUNT_POINT, fstype, 125 125 ROOT_DEVICE, rc); … … 138 138 { 139 139 int rc = mount(LOCFS_FS_TYPE, LOCFS_MOUNT_POINT, "", "", 140 IPC_FLAG_BLOCKING );140 IPC_FLAG_BLOCKING, 0); 141 141 return mount_report("Location service filesystem", LOCFS_MOUNT_POINT, 142 142 LOCFS_FS_TYPE, NULL, rc); … … 261 261 static bool mount_tmpfs(void) 262 262 { 263 int rc = mount(TMPFS_FS_TYPE, TMPFS_MOUNT_POINT, "", "", 0 );263 int rc = mount(TMPFS_FS_TYPE, TMPFS_MOUNT_POINT, "", "", 0, 0); 264 264 return mount_report("Temporary filesystem", TMPFS_MOUNT_POINT, 265 265 TMPFS_FS_TYPE, NULL, rc); … … 268 268 static bool mount_data(void) 269 269 { 270 int rc = mount(DATA_FS_TYPE, DATA_MOUNT_POINT, DATA_DEVICE, "wtcache", 0 );270 int rc = mount(DATA_FS_TYPE, DATA_MOUNT_POINT, DATA_DEVICE, "wtcache", 0, 0); 271 271 return mount_report("Data filesystem", DATA_MOUNT_POINT, DATA_FS_TYPE, 272 272 DATA_DEVICE, rc); -
uspace/drv/bus/usb/usbhub/usbhub.c
r4093b14 reb87adb 130 130 131 131 opResult = ddf_fun_bind(hub_fun); 132 assert(opResult == EOK);133 opResult = ddf_fun_add_to_category(hub_fun, "hub");134 132 assert(opResult == EOK); 135 133 -
uspace/lib/c/arch/ia64/include/ddi.h
r4093b14 reb87adb 52 52 static inline void pio_write_8(ioport8_t *port, uint8_t v) 53 53 { 54 uintptr_t prt = (uintptr_t) port; 54 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 55 uintptr_t prt = (uintptr_t) port; 55 56 56 *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 57 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 57 *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 58 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 59 } else { 60 *port = v; 61 } 58 62 59 63 asm volatile ("mf\n" ::: "memory"); … … 62 66 static inline void pio_write_16(ioport16_t *port, uint16_t v) 63 67 { 64 uintptr_t prt = (uintptr_t) port; 68 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 69 uintptr_t prt = (uintptr_t) port; 65 70 66 *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 67 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 71 *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 72 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 73 } else { 74 *port = v; 75 } 68 76 69 77 asm volatile ("mf\n" ::: "memory"); … … 72 80 static inline void pio_write_32(ioport32_t *port, uint32_t v) 73 81 { 74 uintptr_t prt = (uintptr_t) port; 82 if (port < (ioport32_t *) IO_SPACE_BOUNDARY) { 83 uintptr_t prt = (uintptr_t) port; 75 84 76 *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 77 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 85 *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 86 ((prt & 0xfff) | ((prt >> 2) << 12)))) = v; 87 } else { 88 *port = v; 89 } 78 90 79 91 asm volatile ("mf\n" ::: "memory"); … … 82 94 static inline uint8_t pio_read_8(ioport8_t *port) 83 95 { 84 uint ptr_t prt = (uintptr_t) port;96 uint8_t v; 85 97 86 98 asm volatile ("mf\n" ::: "memory"); 87 99 88 return *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 89 ((prt & 0xfff) | ((prt >> 2) << 12)))); 100 if (port < (ioport8_t *) IO_SPACE_BOUNDARY) { 101 uintptr_t prt = (uintptr_t) port; 102 103 v = *((ioport8_t *)(IA64_IOSPACE_ADDRESS + 104 ((prt & 0xfff) | ((prt >> 2) << 12)))); 105 } else { 106 v = *port; 107 } 108 109 return v; 90 110 } 91 111 92 112 static inline uint16_t pio_read_16(ioport16_t *port) 93 113 { 94 uint ptr_t prt = (uintptr_t) port;114 uint16_t v; 95 115 96 116 asm volatile ("mf\n" ::: "memory"); 97 117 98 return *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 99 ((prt & 0xfff) | ((prt >> 2) << 12)))); 118 if (port < (ioport16_t *) IO_SPACE_BOUNDARY) { 119 uintptr_t prt = (uintptr_t) port; 120 121 v = *((ioport16_t *)(IA64_IOSPACE_ADDRESS + 122 ((prt & 0xfff) | ((prt >> 2) << 12)))); 123 } else { 124 v = *port; 125 } 126 127 return v; 100 128 } 101 129 102 130 static inline uint32_t pio_read_32(ioport32_t *port) 103 131 { 104 uint ptr_t prt = (uintptr_t) port;132 uint32_t v; 105 133 106 134 asm volatile ("mf\n" ::: "memory"); 107 135 108 return *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 109 ((prt & 0xfff) | ((prt >> 2) << 12)))); 136 if (port < (ioport32_t *) port) { 137 uintptr_t prt = (uintptr_t) port; 138 139 v = *((ioport32_t *)(IA64_IOSPACE_ADDRESS + 140 ((prt & 0xfff) | ((prt >> 2) << 12)))); 141 } else { 142 v = *port; 143 } 144 145 return v; 110 146 } 111 147 -
uspace/lib/c/generic/adt/hash_table.c
r4093b14 reb87adb 190 190 } 191 191 192 /** Apply fu cntion to all items in hash table.192 /** Apply function to all items in hash table. 193 193 * 194 194 * @param h Hash table. -
uspace/lib/c/generic/adt/list.c
r4093b14 reb87adb 33 33 /** 34 34 * @file 35 * @brief Functions completing doubly linked circular list implementa ion.35 * @brief Functions completing doubly linked circular list implementation. 36 36 * 37 37 * This file contains some of the functions implementing doubly linked circular lists. -
uspace/lib/c/generic/malloc.c
r4093b14 reb87adb 873 873 void free(const void *addr) 874 874 { 875 if (addr == NULL) 876 return; 877 875 878 futex_down(&malloc_futex); 876 879 -
uspace/lib/c/generic/vfs/vfs.c
r4093b14 reb87adb 143 143 144 144 int mount(const char *fs_name, const char *mp, const char *fqsn, 145 const char *opts, unsigned int flags )145 const char *opts, unsigned int flags, unsigned int instance) 146 146 { 147 147 int null_id = -1; … … 181 181 182 182 sysarg_t rc_orig; 183 aid_t req = async_send_2(exch, VFS_IN_MOUNT, service_id, flags, NULL); 183 aid_t req = async_send_3(exch, VFS_IN_MOUNT, service_id, flags, 184 instance, NULL); 184 185 sysarg_t rc = async_data_write_start(exch, (void *) mpa, mpa_size); 185 186 if (rc != EOK) { -
uspace/lib/c/include/ipc/vfs.h
r4093b14 reb87adb 56 56 /** Unique identifier of the fs. */ 57 57 char name[FS_NAME_MAXLEN + 1]; 58 unsigned int instance; 58 59 bool concurrent_read_write; 59 60 bool write_retains_size; -
uspace/lib/c/include/vfs/vfs.h
r4093b14 reb87adb 49 49 50 50 extern int mount(const char *, const char *, const char *, const char *, 51 unsigned int );51 unsigned int, unsigned int); 52 52 extern int unmount(const char *); 53 53 -
uspace/srv/devman/main.c
r4093b14 reb87adb 490 490 if (rc == EOK) { 491 491 loc_service_add_to_cat(fun->service_id, cat_id); 492 log_msg(LVL_NOTE, "Function `%s' added to category `%s'.", 493 fun->pathname, cat_name); 492 494 } else { 493 495 log_msg(LVL_ERROR, "Failed adding function `%s' to category " … … 495 497 } 496 498 497 log_msg(LVL_NOTE, "Function `%s' added to category `%s'.",498 fun->pathname, cat_name);499 500 499 fibril_rwlock_read_unlock(&device_tree.rwlock); 501 500 fun_del_ref(fun); 502 503 async_answer_0(callid, EOK);501 502 async_answer_0(callid, rc); 504 503 } 505 504 -
uspace/srv/fs/cdfs/cdfs.c
r4093b14 reb87adb 52 52 .concurrent_read_write = false, 53 53 .write_retains_size = false, 54 .instance = 0, 54 55 }; 55 56 … … 58 59 printf("%s: HelenOS cdfs file system server\n", NAME); 59 60 61 if (argc == 3) { 62 if (!str_cmp(argv[1], "--instance")) 63 cdfs_vfs_info.instance = strtol(argv[2], NULL, 10); 64 else { 65 printf(NAME " Unrecognized parameters"); 66 return -1; 67 } 68 } 69 60 70 if (!cdfs_init()) { 61 71 printf("%s: failed to initialize cdfs\n", NAME); -
uspace/srv/fs/exfat/exfat.c
r4093b14 reb87adb 54 54 .name = NAME, 55 55 .concurrent_read_write = false, 56 .write_retains_size = false, 56 .write_retains_size = false, 57 .instance = 0, 57 58 }; 58 59 … … 60 61 { 61 62 printf(NAME ": HelenOS exFAT file system server\n"); 63 64 if (argc == 3) { 65 if (!str_cmp(argv[1], "--instance")) 66 exfat_vfs_info.instance = strtol(argv[2], NULL, 10); 67 else { 68 printf(NAME " Unrecognized parameters"); 69 return -1; 70 } 71 } 62 72 63 73 int rc = exfat_idx_init(); -
uspace/srv/fs/ext2fs/ext2fs.c
r4093b14 reb87adb 52 52 vfs_info_t ext2fs_vfs_info = { 53 53 .name = NAME, 54 .instance = 0, 54 55 }; 55 56 … … 57 58 { 58 59 printf(NAME ": HelenOS EXT2 file system server\n"); 60 61 if (argc == 3) { 62 if (!str_cmp(argv[1], "--instance")) 63 ext2fs_vfs_info.instance = strtol(argv[2], NULL, 10); 64 else { 65 printf(NAME " Unrecognized parameters"); 66 return -1; 67 } 68 } 59 69 60 70 async_sess_t *vfs_sess = service_connect_blocking(EXCHANGE_SERIALIZE, -
uspace/srv/fs/fat/fat.c
r4093b14 reb87adb 54 54 .name = NAME, 55 55 .concurrent_read_write = false, 56 .write_retains_size = false, 56 .write_retains_size = false, 57 .instance = 0, 57 58 }; 58 59 … … 61 62 printf(NAME ": HelenOS FAT file system server\n"); 62 63 64 if (argc == 3) { 65 if (!str_cmp(argv[1], "--instance")) 66 fat_vfs_info.instance = strtol(argv[2], NULL, 10); 67 else { 68 printf(NAME " Unrecognized parameters"); 69 return -1; 70 } 71 } 72 63 73 int rc = fat_idx_init(); 64 74 if (rc != EOK) -
uspace/srv/fs/locfs/locfs.c
r4093b14 reb87adb 55 55 .concurrent_read_write = false, 56 56 .write_retains_size = false, 57 .instance = 0, 57 58 }; 58 59 … … 61 62 printf("%s: HelenOS Device Filesystem\n", NAME); 62 63 64 if (argc == 3) { 65 if (!str_cmp(argv[1], "--instance")) 66 locfs_vfs_info.instance = strtol(argv[2], NULL, 10); 67 else { 68 printf(NAME " Unrecognized parameters"); 69 return -1; 70 } 71 } 72 73 63 74 if (!locfs_init()) { 64 75 printf("%s: failed to initialize locfs\n", NAME); -
uspace/srv/fs/mfs/mfs.c
r4093b14 reb87adb 39 39 40 40 #include <ipc/services.h> 41 #include <stdlib.h> 42 #include <str.h> 41 43 #include <ns.h> 42 44 #include <async.h> … … 52 54 .concurrent_read_write = false, 53 55 .write_retains_size = false, 56 .instance = 0, 54 57 }; 55 58 … … 59 62 60 63 printf(NAME ": HelenOS Minix file system server\n"); 64 65 if (argc == 3) { 66 if (!str_cmp(argv[1], "--instance")) 67 mfs_vfs_info.instance = strtol(argv[2], NULL, 10); 68 else { 69 printf(NAME " Unrecognized parameters"); 70 rc = -1; 71 goto err; 72 } 73 } 61 74 62 75 async_sess_t *vfs_sess = service_connect_blocking(EXCHANGE_SERIALIZE, -
uspace/srv/fs/tmpfs/tmpfs.c
r4093b14 reb87adb 59 59 .concurrent_read_write = false, 60 60 .write_retains_size = false, 61 .instance = 0, 61 62 }; 62 63 … … 64 65 { 65 66 printf(NAME ": HelenOS TMPFS file system server\n"); 67 68 if (argc == 3) { 69 if (!str_cmp(argv[1], "--instance")) 70 tmpfs_vfs_info.instance = strtol(argv[2], NULL, 10); 71 else { 72 printf(NAME " Unrecognized parameters"); 73 return -1; 74 } 75 } 66 76 67 77 if (!tmpfs_init()) { -
uspace/srv/vfs/vfs.h
r4093b14 reb87adb 171 171 extern void vfs_exchange_release(async_exch_t *); 172 172 173 extern fs_handle_t fs_name_to_handle( char *, bool);173 extern fs_handle_t fs_name_to_handle(unsigned int instance, char *, bool); 174 174 extern vfs_info_t *fs_handle_to_info(fs_handle_t); 175 175 -
uspace/srv/vfs/vfs_ops.c
r4093b14 reb87adb 146 146 147 147 rindex = (fs_index_t) IPC_GET_ARG1(answer); 148 rsize = (aoff64_t) MERGE_LOUP32(IPC_GET_ARG2(answer), IPC_GET_ARG3(answer)); 148 rsize = (aoff64_t) MERGE_LOUP32(IPC_GET_ARG2(answer), 149 IPC_GET_ARG3(answer)); 149 150 rlnkcnt = (unsigned) IPC_GET_ARG4(answer); 150 151 … … 276 277 277 278 /* 278 * For now, don't make use of ARG3, but it can be used to279 * carry mount options in the future.280 */281 279 * Instance number is passed as ARG3. 280 */ 281 unsigned int instance = IPC_GET_ARG3(*request); 282 282 283 /* We want the client to send us the mount point. */ 283 284 char *mp; … … 335 336 fs_handle_t fs_handle; 336 337 recheck: 337 fs_handle = fs_name_to_handle( fs_name, false);338 fs_handle = fs_name_to_handle(instance, fs_name, false); 338 339 if (!fs_handle) { 339 340 if (flags & IPC_FLAG_BLOCKING) { -
uspace/srv/vfs/vfs_register.c
r4093b14 reb87adb 154 154 * Check for duplicit registrations. 155 155 */ 156 if (fs_name_to_handle(fs_info->vfs_info.name, false)) { 156 if (fs_name_to_handle(fs_info->vfs_info.instance, 157 fs_info->vfs_info.name, false)) { 157 158 /* 158 159 * We already register a fs like this. … … 297 298 * 298 299 */ 299 fs_handle_t fs_name_to_handle( char *name, bool lock)300 fs_handle_t fs_name_to_handle(unsigned int instance, char *name, bool lock) 300 301 { 301 302 int handle = 0; … … 306 307 list_foreach(fs_list, cur) { 307 308 fs_info_t *fs = list_get_instance(cur, fs_info_t, fs_link); 308 if (str_cmp(fs->vfs_info.name, name) == 0) { 309 if (str_cmp(fs->vfs_info.name, name) == 0 && 310 instance == fs->vfs_info.instance) { 309 311 handle = fs->fs_handle; 310 312 break;
Note:
See TracChangeset
for help on using the changeset viewer.
