Lines Matching refs:partition

81 			struct devfs_partition*	partition;
298 if (vnode->stream.u.dev.partition == NULL) {
305 put_vnode(fs->volume, vnode->stream.u.dev.partition->raw_device->id);
437 if (device->stream.u.dev.partition != NULL)
444 // create partition
445 struct devfs_partition* partition = (struct devfs_partition*)malloc(
447 if (partition == NULL)
450 memcpy(&partition->info, &info, sizeof(partition_info));
454 // you cannot change a partition once set
461 // the partition device really needs it
462 status = get_vnode(fs->volume, device->id, (void**)&partition->raw_device);
466 // now create the partition vnode
475 partitionNode->stream.u.dev.partition = partition;
488 free(partition);
494 translate_partition_access(devfs_partition* partition, off_t& offset,
498 ASSERT(offset < partition->info.size);
500 size = (size_t)min_c((off_t)size, partition->info.size - offset);
501 offset += partition->info.offset;
506 translate_partition_access(devfs_partition* partition, uint64& offset,
509 const off_t partitionSize = partition->info.size;
510 const off_t partitionOffset = partition->info.offset;
513 // partition offset can theoretically be negative
537 translate_partition_access(devfs_partition* partition, io_request* request)
542 ASSERT(offset + (off_t)request->Length() <= partition->info.size);
544 request->SetOffset(offset + partition->info.offset);
850 kprintf(" partition: %p\n", vnode->stream.u.dev.partition);
851 if (vnode->stream.u.dev.partition != NULL) {
852 partition_info& info = vnode->stream.u.dev.partition->info;
854 vnode->stream.u.dev.partition->raw_device);
859 kprintf(" partition: %" B_PRId32 "\n", info.partition);
862 (addr_t)vnode->stream.u.dev.partition->raw_device);
1227 if (vnode->stream.u.dev.partition != NULL) {
1228 if (pos >= vnode->stream.u.dev.partition->info.size)
1231 translate_partition_access(vnode->stream.u.dev.partition, pos,
1260 if (vnode->stream.u.dev.partition != NULL) {
1261 if (pos >= vnode->stream.u.dev.partition->info.size)
1264 translate_partition_access(vnode->stream.u.dev.partition, pos,
1458 struct devfs_partition* partition
1459 = vnode->stream.u.dev.partition;
1460 if (partition == NULL)
1469 // patch values to match partition size
1474 partition->info.size / geometry.bytes_per_sector,
1482 struct devfs_partition* partition
1483 = vnode->stream.u.dev.partition;
1502 if (partition != NULL) {
1503 // If there is a partition, offset all ranges according
1504 // to the partition start.
1505 // Range size may be reduced to fit the partition size.
1507 if (!translate_partition_access(partition,
1515 dprintf("TRIM: devfs: TRIM ranges after partition"
1539 struct devfs_partition* partition
1540 = vnode->stream.u.dev.partition;
1542 || partition == NULL
1546 return user_memcpy(buffer, &partition->info,
1686 if (vnode->stream.u.dev.partition != NULL) {
1687 if (pos >= vnode->stream.u.dev.partition->info.size)
1690 translate_partition_access(vnode->stream.u.dev.partition, pos,
1745 if (vnode->stream.u.dev.partition != NULL) {
1746 if (pos >= vnode->stream.u.dev.partition->info.size)
1749 translate_partition_access(vnode->stream.u.dev.partition, pos,
1803 if (vnode->stream.u.dev.partition != NULL) {
1805 > vnode->stream.u.dev.partition->info.size) {
1809 translate_partition_access(vnode->stream.u.dev.partition, request);
1846 if (vnode->stream.u.dev.partition != NULL) {
1847 stat->st_size = vnode->stream.u.dev.partition->info.size;
2096 TRACE(("publish partition: %s (device \"%s\", offset %" B_PRIdOFF
2221 if (!S_ISCHR(node->stream.type) || node->stream.u.dev.partition != NULL) {