block.c (0d54a6fed3ebaf0e17656a712e5d6575c712459b) | block.c (03c320d803fd881736b63015048498cf97d410d3) |
---|---|
1/* 2 * QEMU System Emulator block driver 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and associated documentation files (the "Software"), to deal 8 * in the Software without restriction, including without limitation the rights --- 183 unchanged lines hidden (view full) --- 192 if (len > dest_size - 1) 193 len = dest_size - 1; 194 memcpy(dest, base_path, len); 195 dest[len] = '\0'; 196 pstrcat(dest, dest_size, filename); 197 } 198} 199 | 1/* 2 * QEMU System Emulator block driver 3 * 4 * Copyright (c) 2003 Fabrice Bellard 5 * 6 * Permission is hereby granted, free of charge, to any person obtaining a copy 7 * of this software and associated documentation files (the "Software"), to deal 8 * in the Software without restriction, including without limitation the rights --- 183 unchanged lines hidden (view full) --- 192 if (len > dest_size - 1) 193 len = dest_size - 1; 194 memcpy(dest, base_path, len); 195 dest[len] = '\0'; 196 pstrcat(dest, dest_size, filename); 197 } 198} 199 |
200/* 201 * Helper function for bdrv_parse_filename() implementations to remove optional 202 * protocol prefixes (especially "file:") from a filename and for putting the 203 * stripped filename into the options QDict if there is such a prefix. 204 */ 205void bdrv_parse_filename_strip_prefix(const char *filename, const char *prefix, 206 QDict *options) 207{ 208 if (strstart(filename, prefix, &filename)) { 209 /* Stripping the explicit protocol prefix may result in a protocol 210 * prefix being (wrongly) detected (if the filename contains a colon) */ 211 if (path_has_protocol(filename)) { 212 QString *fat_filename; 213 214 /* This means there is some colon before the first slash; therefore, 215 * this cannot be an absolute path */ 216 assert(!path_is_absolute(filename)); 217 218 /* And we can thus fix the protocol detection issue by prefixing it 219 * by "./" */ 220 fat_filename = qstring_from_str("./"); 221 qstring_append(fat_filename, filename); 222 223 assert(!path_has_protocol(qstring_get_str(fat_filename))); 224 225 qdict_put(options, "filename", fat_filename); 226 } else { 227 /* If no protocol prefix was detected, we can use the shortened 228 * filename as-is */ 229 qdict_put_str(options, "filename", filename); 230 } 231 } 232} 233 234 |
|
200/* Returns whether the image file is opened as read-only. Note that this can 201 * return false and writing to the image file is still not possible because the 202 * image is inactivated. */ 203bool bdrv_is_read_only(BlockDriverState *bs) 204{ 205 return bs->read_only; 206} 207 --- 4689 unchanged lines hidden --- | 235/* Returns whether the image file is opened as read-only. Note that this can 236 * return false and writing to the image file is still not possible because the 237 * image is inactivated. */ 238bool bdrv_is_read_only(BlockDriverState *bs) 239{ 240 return bs->read_only; 241} 242 --- 4689 unchanged lines hidden --- |