Mostly empty implementations for the disk device manager classes. Save KPartition which is partially done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3455 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
parent
4c212afefb
commit
1844af0bfa
@ -45,6 +45,7 @@ KernelLd linkhack.so :
|
|||||||
|
|
||||||
SubInclude OBOS_TOP src kernel core addons ;
|
SubInclude OBOS_TOP src kernel core addons ;
|
||||||
SubInclude OBOS_TOP src kernel core arch ;
|
SubInclude OBOS_TOP src kernel core arch ;
|
||||||
|
SubInclude OBOS_TOP src kernel core disk_device_manager ;
|
||||||
SubInclude OBOS_TOP src kernel core fs ;
|
SubInclude OBOS_TOP src kernel core fs ;
|
||||||
SubInclude OBOS_TOP src kernel core vm ;
|
SubInclude OBOS_TOP src kernel core vm ;
|
||||||
#SubInclude OBOS_TOP src kernel core net ;
|
#SubInclude OBOS_TOP src kernel core net ;
|
||||||
|
31
src/kernel/core/disk_device_manager/Jamfile
Normal file
31
src/kernel/core/disk_device_manager/Jamfile
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
SubDir OBOS_TOP src kernel core disk_device_manager ;
|
||||||
|
|
||||||
|
SEARCH_SOURCE += [ FDirName $(SUBDIR) jobs ] ;
|
||||||
|
|
||||||
|
UsePrivateHeaders [ FDirName kernel disk_device_manager ] ;
|
||||||
|
UsePrivateHeaders [ FDirName shared ] ;
|
||||||
|
UsePrivateHeaders [ FDirName storage ] ;
|
||||||
|
|
||||||
|
SharedLibrary disk_device_manager :
|
||||||
|
KDiskDevice.cpp
|
||||||
|
KDiskDeviceJob.cpp
|
||||||
|
KDiskDeviceJobFactory.cpp
|
||||||
|
KDiskDeviceJobQueue.cpp
|
||||||
|
KDiskDeviceManager.cpp
|
||||||
|
KDiskSystem.cpp
|
||||||
|
KFileSystem.cpp
|
||||||
|
KPartition.cpp
|
||||||
|
KPartitioningSystem.cpp
|
||||||
|
disk_device_manager.cpp
|
||||||
|
|
||||||
|
# jobs
|
||||||
|
KCreateChildJob.cpp
|
||||||
|
KDefragmentJob.cpp
|
||||||
|
KDeleteChildJob.cpp
|
||||||
|
KInitializeJob.cpp
|
||||||
|
KMoveJob.cpp
|
||||||
|
KRepairJob.cpp
|
||||||
|
KResizeJob.cpp
|
||||||
|
KScanPartitionJob.cpp
|
||||||
|
KSetParametersJob.cpp
|
||||||
|
;
|
3
src/kernel/core/disk_device_manager/KDiskDevice.cpp
Normal file
3
src/kernel/core/disk_device_manager/KDiskDevice.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskDevice.cpp
|
||||||
|
|
||||||
|
#include "KDiskDevice.h"
|
3
src/kernel/core/disk_device_manager/KDiskDeviceJob.cpp
Normal file
3
src/kernel/core/disk_device_manager/KDiskDeviceJob.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskDeviceJob.cpp
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskDeviceJob.cpp
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskDeviceJobQueue.cpp
|
||||||
|
|
||||||
|
#include "KDiskDeviceJobQueue.h"
|
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskDeviceManager.cpp
|
||||||
|
|
||||||
|
#include "KDiskDeviceManager.h"
|
3
src/kernel/core/disk_device_manager/KDiskSystem.cpp
Normal file
3
src/kernel/core/disk_device_manager/KDiskSystem.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KDiskSystem.cpp
|
||||||
|
|
||||||
|
#include "KDiskSystem.h"
|
3
src/kernel/core/disk_device_manager/KFileSystem.cpp
Normal file
3
src/kernel/core/disk_device_manager/KFileSystem.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KFileSystem.cpp
|
||||||
|
|
||||||
|
#include "KFileSystem.h"
|
573
src/kernel/core/disk_device_manager/KPartition.cpp
Normal file
573
src/kernel/core/disk_device_manager/KPartition.cpp
Normal file
@ -0,0 +1,573 @@
|
|||||||
|
// KPartition.cpp
|
||||||
|
|
||||||
|
#include <new>
|
||||||
|
#include <stdlib.h>
|
||||||
|
|
||||||
|
//#include <Partition.h>
|
||||||
|
// TODO: Move the definitions needed in the kernel to a separate header.
|
||||||
|
|
||||||
|
#include "KPartition.h"
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
using BPrivate::DiskDevice::KDiskDevice;
|
||||||
|
using BPrivate::DiskDevice::KDiskSystem;
|
||||||
|
|
||||||
|
// set_string
|
||||||
|
// simple helper
|
||||||
|
static
|
||||||
|
status_t
|
||||||
|
set_string(char *&location, const char *newValue)
|
||||||
|
{
|
||||||
|
// unset old value
|
||||||
|
if (location) {
|
||||||
|
free(location);
|
||||||
|
location = NULL;
|
||||||
|
}
|
||||||
|
// set new value
|
||||||
|
status_t error = B_OK;
|
||||||
|
if (newValue) {
|
||||||
|
location = strdup(newValue);
|
||||||
|
if (!location)
|
||||||
|
error = B_NO_MEMORY;
|
||||||
|
}
|
||||||
|
return error;
|
||||||
|
}
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
KPartition::KPartition(partition_id id)
|
||||||
|
: fPartitionData(),
|
||||||
|
fChildren(),
|
||||||
|
fDevice(NULL),
|
||||||
|
fParent(NULL),
|
||||||
|
fDiskSystem(NULL),
|
||||||
|
fParentDiskSystem(NULL),
|
||||||
|
fReferenceCount(0)
|
||||||
|
{
|
||||||
|
fPartitionData.id = id;
|
||||||
|
fPartitionData.offset = 0;
|
||||||
|
fPartitionData.size = 0;
|
||||||
|
fPartitionData.block_size = 0;
|
||||||
|
fPartitionData.child_count = 0;
|
||||||
|
fPartitionData.index = -1;
|
||||||
|
fPartitionData.status = /*B_PARTITION_UNRECOGNIZED*/ 0;
|
||||||
|
fPartitionData.flags = 0;
|
||||||
|
fPartitionData.volume = -1;
|
||||||
|
fPartitionData.name = NULL;
|
||||||
|
fPartitionData.content_name = NULL;
|
||||||
|
fPartitionData.type = NULL;
|
||||||
|
fPartitionData.content_type = NULL;
|
||||||
|
fPartitionData.parameters = NULL;
|
||||||
|
fPartitionData.content_parameters = NULL;
|
||||||
|
fPartitionData.cookie = NULL;
|
||||||
|
fPartitionData.content_cookie = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// destructor
|
||||||
|
KPartition::~KPartition()
|
||||||
|
{
|
||||||
|
free(fPartitionData.name);
|
||||||
|
free(fPartitionData.content_name);
|
||||||
|
free(fPartitionData.type);
|
||||||
|
free(fPartitionData.content_type);
|
||||||
|
free(fPartitionData.parameters);
|
||||||
|
free(fPartitionData.content_parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Register
|
||||||
|
bool
|
||||||
|
KPartition::Register()
|
||||||
|
{
|
||||||
|
fReferenceCount++;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unregister
|
||||||
|
bool
|
||||||
|
KPartition::Unregister()
|
||||||
|
{
|
||||||
|
fReferenceCount--;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CountReferences
|
||||||
|
int32
|
||||||
|
KPartition::CountReferences() const
|
||||||
|
{
|
||||||
|
return fReferenceCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetBusy
|
||||||
|
void
|
||||||
|
KPartition::SetBusy(bool busy)
|
||||||
|
{
|
||||||
|
if (busy)
|
||||||
|
fPartitionData.flags |= B_PARTITION_BUSY;
|
||||||
|
else
|
||||||
|
fPartitionData.flags &= ~B_PARTITION_BUSY;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsBusy
|
||||||
|
bool
|
||||||
|
KPartition::IsBusy() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_BUSY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDescendantBusy
|
||||||
|
void
|
||||||
|
KPartition::SetDescendantBusy(bool busy)
|
||||||
|
{
|
||||||
|
if (busy)
|
||||||
|
fPartitionData.flags |= B_PARTITION_DESCENDANT_BUSY;
|
||||||
|
else
|
||||||
|
fPartitionData.flags &= ~B_PARTITION_DESCENDANT_BUSY;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsDescendantBusy
|
||||||
|
bool
|
||||||
|
KPartition::IsDescendantBusy() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_DESCENDANT_BUSY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetOffset
|
||||||
|
void
|
||||||
|
KPartition::SetOffset(off_t offset)
|
||||||
|
{
|
||||||
|
fPartitionData.offset = offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Offset
|
||||||
|
off_t
|
||||||
|
KPartition::Offset() const
|
||||||
|
{
|
||||||
|
return fPartitionData.offset;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetSize
|
||||||
|
void
|
||||||
|
KPartition::SetSize(off_t size)
|
||||||
|
{
|
||||||
|
fPartitionData.size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Size
|
||||||
|
off_t
|
||||||
|
KPartition::Size() const
|
||||||
|
{
|
||||||
|
return fPartitionData.size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetBlockSize
|
||||||
|
void
|
||||||
|
KPartition::SetBlockSize(uint32 blockSize)
|
||||||
|
{
|
||||||
|
fPartitionData.block_size = blockSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
// BlockSize
|
||||||
|
uint32
|
||||||
|
KPartition::BlockSize() const
|
||||||
|
{
|
||||||
|
return fPartitionData.block_size;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetIndex
|
||||||
|
void
|
||||||
|
KPartition::SetIndex(int32 index)
|
||||||
|
{
|
||||||
|
fPartitionData.index = index;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Index
|
||||||
|
int32
|
||||||
|
KPartition::Index() const
|
||||||
|
{
|
||||||
|
return fPartitionData.index;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetStatus
|
||||||
|
void
|
||||||
|
KPartition::SetStatus(uint32 status)
|
||||||
|
{
|
||||||
|
fPartitionData.status = status;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Status
|
||||||
|
uint32
|
||||||
|
KPartition::Status() const
|
||||||
|
{
|
||||||
|
return fPartitionData.status;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetFlags
|
||||||
|
void
|
||||||
|
KPartition::SetFlags(uint32 flags)
|
||||||
|
{
|
||||||
|
fPartitionData.flags = flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Flags
|
||||||
|
uint32
|
||||||
|
KPartition::Flags() const
|
||||||
|
{
|
||||||
|
return fPartitionData.flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsMountable
|
||||||
|
bool
|
||||||
|
KPartition::IsMountable() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_MOUNTABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsPartitionable
|
||||||
|
bool
|
||||||
|
KPartition::IsPartitionable() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_PARTITIONABLE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsReadOnly
|
||||||
|
bool
|
||||||
|
KPartition::IsReadOnly() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_READ_ONLY);
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsMounted
|
||||||
|
bool
|
||||||
|
KPartition::IsMounted() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_MOUNTED);
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsDevice
|
||||||
|
bool
|
||||||
|
KPartition::IsDevice() const
|
||||||
|
{
|
||||||
|
return (fPartitionData.flags & B_PARTITION_IS_DEVICE);
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetName
|
||||||
|
status_t
|
||||||
|
KPartition::SetName(const char *name)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.name, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Name
|
||||||
|
const char *
|
||||||
|
KPartition::Name() const
|
||||||
|
{
|
||||||
|
return fPartitionData.name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContentName
|
||||||
|
status_t
|
||||||
|
KPartition::SetContentName(const char *name)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.content_name, name);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContentName
|
||||||
|
const char *
|
||||||
|
KPartition::ContentName() const
|
||||||
|
{
|
||||||
|
return fPartitionData.content_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetType
|
||||||
|
status_t
|
||||||
|
KPartition::SetType(const char *type)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.type, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Type
|
||||||
|
const char *
|
||||||
|
KPartition::Type() const
|
||||||
|
{
|
||||||
|
return fPartitionData.type;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContentType
|
||||||
|
status_t
|
||||||
|
KPartition::SetContentType(const char *type)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.content_type, type);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContentType
|
||||||
|
const char *
|
||||||
|
KPartition::ContentType() const
|
||||||
|
{
|
||||||
|
return fPartitionData.content_type;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PartitionData
|
||||||
|
partition_data *
|
||||||
|
KPartition::PartitionData()
|
||||||
|
{
|
||||||
|
return &fPartitionData;
|
||||||
|
}
|
||||||
|
|
||||||
|
// PartitionData
|
||||||
|
const partition_data *
|
||||||
|
KPartition::PartitionData() const
|
||||||
|
{
|
||||||
|
return &fPartitionData;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetID
|
||||||
|
void
|
||||||
|
KPartition::SetID(partition_id id)
|
||||||
|
{
|
||||||
|
fPartitionData.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ID
|
||||||
|
partition_id
|
||||||
|
KPartition::ID() const
|
||||||
|
{
|
||||||
|
return fPartitionData.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ChangeCounter
|
||||||
|
int32
|
||||||
|
KPartition::ChangeCounter() const
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetPath
|
||||||
|
status_t
|
||||||
|
KPartition::GetPath(char *path) const
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetVolumeID
|
||||||
|
void
|
||||||
|
KPartition::SetVolumeID(dev_t volumeID)
|
||||||
|
{
|
||||||
|
fPartitionData.volume = volumeID;
|
||||||
|
}
|
||||||
|
|
||||||
|
// VolumeID
|
||||||
|
dev_t
|
||||||
|
KPartition::VolumeID() const
|
||||||
|
{
|
||||||
|
return fPartitionData.id;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Mount
|
||||||
|
status_t
|
||||||
|
KPartition::Mount(uint32 mountFlags, const char *parameters)
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Unmount
|
||||||
|
status_t
|
||||||
|
KPartition::Unmount()
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return B_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetParameters
|
||||||
|
status_t
|
||||||
|
KPartition::SetParameters(const char *parameters)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.parameters, parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parameters
|
||||||
|
const char *
|
||||||
|
KPartition::Parameters() const
|
||||||
|
{
|
||||||
|
return fPartitionData.parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContentParameters
|
||||||
|
status_t
|
||||||
|
KPartition::SetContentParameters(const char *parameters)
|
||||||
|
{
|
||||||
|
return set_string(fPartitionData.content_parameters, parameters);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContentParameters
|
||||||
|
const char *
|
||||||
|
KPartition::ContentParameters() const
|
||||||
|
{
|
||||||
|
return fPartitionData.content_parameters;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDevice
|
||||||
|
void
|
||||||
|
KPartition::SetDevice(KDiskDevice *device)
|
||||||
|
{
|
||||||
|
fDevice = device;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Device
|
||||||
|
KDiskDevice *
|
||||||
|
KPartition::Device() const
|
||||||
|
{
|
||||||
|
return fDevice;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetParent
|
||||||
|
void
|
||||||
|
KPartition::SetParent(KPartition *parent)
|
||||||
|
{
|
||||||
|
fParent = parent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Parent
|
||||||
|
KPartition *
|
||||||
|
KPartition::Parent() const
|
||||||
|
{
|
||||||
|
return fParent;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddChild
|
||||||
|
status_t
|
||||||
|
KPartition::AddChild(KPartition *partition, int32 index)
|
||||||
|
{
|
||||||
|
// check parameters
|
||||||
|
int32 count = fPartitionData.child_count;
|
||||||
|
if (index == -1)
|
||||||
|
index = count;
|
||||||
|
if (index < 0 || index > count || !partition)
|
||||||
|
return B_BAD_VALUE;
|
||||||
|
// add partition
|
||||||
|
// TODO: Lock the disk device manager!
|
||||||
|
if (!fChildren.AddItem(partition, index))
|
||||||
|
return B_NO_MEMORY;
|
||||||
|
fPartitionData.child_count++;
|
||||||
|
partition->SetParent(this);
|
||||||
|
partition->SetDevice(Device());
|
||||||
|
return B_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveChild
|
||||||
|
KPartition *
|
||||||
|
KPartition::RemoveChild(int32 index)
|
||||||
|
{
|
||||||
|
KPartition *partition = NULL;
|
||||||
|
if (index >= 0 && index < fPartitionData.child_count) {
|
||||||
|
// TODO: Lock the disk device manager!
|
||||||
|
partition = fChildren.ItemAt(index);
|
||||||
|
if (partition && fChildren.RemoveItem(index)) {
|
||||||
|
fPartitionData.child_count--;
|
||||||
|
partition->SetParent(NULL);
|
||||||
|
partition->SetDevice(NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return partition;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ChildAt
|
||||||
|
KPartition *
|
||||||
|
KPartition::ChildAt(int32 index) const
|
||||||
|
{
|
||||||
|
return fChildren.ItemAt(index);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CountChildren
|
||||||
|
int32
|
||||||
|
KPartition::CountChildren() const
|
||||||
|
{
|
||||||
|
return fPartitionData.child_count;
|
||||||
|
}
|
||||||
|
|
||||||
|
// CreateShadowPartition
|
||||||
|
KPartition *
|
||||||
|
KPartition::CreateShadowPartition()
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DeleteShadowPartition
|
||||||
|
void
|
||||||
|
KPartition::DeleteShadowPartition()
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
}
|
||||||
|
|
||||||
|
// ShadowPartition
|
||||||
|
KPartition *
|
||||||
|
KPartition::ShadowPartition() const
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsShadowPartition
|
||||||
|
bool
|
||||||
|
KPartition::IsShadowPartition() const
|
||||||
|
{
|
||||||
|
// not implemented
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetDiskSystem
|
||||||
|
void
|
||||||
|
KPartition::SetDiskSystem(KDiskSystem *diskSystem)
|
||||||
|
{
|
||||||
|
fDiskSystem = diskSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// DiskSystem
|
||||||
|
KDiskSystem *
|
||||||
|
KPartition::DiskSystem() const
|
||||||
|
{
|
||||||
|
return fDiskSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetParentDiskSystem
|
||||||
|
void
|
||||||
|
KPartition::SetParentDiskSystem(KDiskSystem *diskSystem)
|
||||||
|
{
|
||||||
|
fParentDiskSystem = diskSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ParentDiskSystem
|
||||||
|
KDiskSystem *
|
||||||
|
KPartition::ParentDiskSystem() const
|
||||||
|
{
|
||||||
|
return fParentDiskSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetCookie
|
||||||
|
void
|
||||||
|
KPartition::SetCookie(void *cookie)
|
||||||
|
{
|
||||||
|
fPartitionData.cookie = cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Cookie
|
||||||
|
void *
|
||||||
|
KPartition::Cookie() const
|
||||||
|
{
|
||||||
|
return fPartitionData.cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
// SetContentCookie
|
||||||
|
void
|
||||||
|
KPartition::SetContentCookie(void *cookie)
|
||||||
|
{
|
||||||
|
fPartitionData.content_cookie = cookie;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ContentCookie
|
||||||
|
void *
|
||||||
|
KPartition::ContentCookie() const
|
||||||
|
{
|
||||||
|
return fPartitionData.content_cookie;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,3 @@
|
|||||||
|
// KPartitioningSystem.cpp
|
||||||
|
|
||||||
|
#include "KPartitioningSystem.h"
|
385
src/kernel/core/disk_device_manager/List.h
Normal file
385
src/kernel/core/disk_device_manager/List.h
Normal file
@ -0,0 +1,385 @@
|
|||||||
|
// List.h
|
||||||
|
//
|
||||||
|
// Copyright (c) 2003, Ingo Weinhold (bonefish@cs.tu-berlin.de)
|
||||||
|
//
|
||||||
|
// Permission is hereby granted, free of charge, to any person obtaining a
|
||||||
|
// copy of this software and associated documentation files (the "Software"),
|
||||||
|
// to deal in the Software without restriction, including without limitation
|
||||||
|
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||||
|
// and/or sell copies of the Software, and to permit persons to whom the
|
||||||
|
// Software is furnished to do so, subject to the following conditions:
|
||||||
|
//
|
||||||
|
// The above copyright notice and this permission notice shall be included in
|
||||||
|
// all copies or substantial portions of the Software.
|
||||||
|
//
|
||||||
|
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
|
||||||
|
// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||||
|
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||||
|
// DEALINGS IN THE SOFTWARE.
|
||||||
|
//
|
||||||
|
// Except as contained in this notice, the name of a copyright holder shall
|
||||||
|
// not be used in advertising or otherwise to promote the sale, use or other
|
||||||
|
// dealings in this Software without prior written authorization of the
|
||||||
|
// copyright holder.
|
||||||
|
|
||||||
|
#ifndef LIST_H
|
||||||
|
#define LIST_H
|
||||||
|
|
||||||
|
#include <new.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include <SupportDefs.h>
|
||||||
|
|
||||||
|
template<typename ITEM>
|
||||||
|
class DefaultDefaultItemCreator {
|
||||||
|
public:
|
||||||
|
static inline ITEM GetItem() { return ITEM(0); }
|
||||||
|
};
|
||||||
|
|
||||||
|
/*!
|
||||||
|
\class List
|
||||||
|
\brief A generic list implementation.
|
||||||
|
*/
|
||||||
|
template<typename ITEM,
|
||||||
|
typename DEFAULT_ITEM_SUPPLIER = DefaultDefaultItemCreator<ITEM> >
|
||||||
|
class List {
|
||||||
|
public:
|
||||||
|
typedef ITEM item_t;
|
||||||
|
typedef List list_t;
|
||||||
|
|
||||||
|
private:
|
||||||
|
static item_t sDefaultItem;
|
||||||
|
static const size_t kDefaultChunkSize = 10;
|
||||||
|
static const size_t kMaximalChunkSize = 1024 * 1024;
|
||||||
|
|
||||||
|
public:
|
||||||
|
List(size_t chunkSize = kDefaultChunkSize);
|
||||||
|
~List();
|
||||||
|
|
||||||
|
inline const item_t &GetDefaultItem() const;
|
||||||
|
inline item_t &GetDefaultItem();
|
||||||
|
|
||||||
|
bool AddItem(const item_t &item, int32 index);
|
||||||
|
bool AddItem(const item_t &item);
|
||||||
|
// bool AddList(list_t *list, int32 index);
|
||||||
|
// bool AddList(list_t *list);
|
||||||
|
|
||||||
|
bool RemoveItem(const item_t &item);
|
||||||
|
bool RemoveItem(int32 index);
|
||||||
|
|
||||||
|
bool ReplaceItem(int32 index, const item_t &item);
|
||||||
|
|
||||||
|
bool MoveItem(int32 oldIndex, int32 newIndex);
|
||||||
|
|
||||||
|
void MakeEmpty();
|
||||||
|
|
||||||
|
int32 CountItems() const;
|
||||||
|
bool IsEmpty() const;
|
||||||
|
const item_t &ItemAt(int32 index) const;
|
||||||
|
item_t &ItemAt(int32 index);
|
||||||
|
const item_t *Items() const;
|
||||||
|
int32 IndexOf(const item_t &item) const;
|
||||||
|
bool HasItem(const item_t &item) const;
|
||||||
|
|
||||||
|
// debugging
|
||||||
|
int32 GetCapacity() const { return fCapacity; }
|
||||||
|
|
||||||
|
private:
|
||||||
|
inline static void _MoveItems(item_t* items, int32 offset, int32 count);
|
||||||
|
bool _Resize(size_t count);
|
||||||
|
|
||||||
|
private:
|
||||||
|
size_t fCapacity;
|
||||||
|
size_t fChunkSize;
|
||||||
|
int32 fItemCount;
|
||||||
|
item_t *fItems;
|
||||||
|
};
|
||||||
|
|
||||||
|
// sDefaultItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::sDefaultItem(
|
||||||
|
DEFAULT_ITEM_SUPPLIER::GetItem());
|
||||||
|
|
||||||
|
// constructor
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::List(size_t chunkSize)
|
||||||
|
: fCapacity(0),
|
||||||
|
fChunkSize(chunkSize),
|
||||||
|
fItemCount(0),
|
||||||
|
fItems(NULL)
|
||||||
|
{
|
||||||
|
if (fChunkSize == 0 || fChunkSize > kMaximalChunkSize)
|
||||||
|
fChunkSize = kDefaultChunkSize;
|
||||||
|
_Resize(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// destructor
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::~List()
|
||||||
|
{
|
||||||
|
MakeEmpty();
|
||||||
|
free(fItems);
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDefaultItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
inline
|
||||||
|
const List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t &
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::GetDefaultItem() const
|
||||||
|
{
|
||||||
|
return sDefaultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// GetDefaultItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
inline
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t &
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::GetDefaultItem()
|
||||||
|
{
|
||||||
|
return sDefaultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// _MoveItems
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
inline
|
||||||
|
void
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::_MoveItems(item_t* items, int32 offset, int32 count)
|
||||||
|
{
|
||||||
|
if (count > 0 && offset != 0)
|
||||||
|
memmove(items + offset, items, count * sizeof(item_t));
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::AddItem(const item_t &item, int32 index)
|
||||||
|
{
|
||||||
|
bool result = (index >= 0 && index <= fItemCount
|
||||||
|
&& _Resize(fItemCount + 1));
|
||||||
|
if (result) {
|
||||||
|
_MoveItems(fItems + index, 1, fItemCount - index - 1);
|
||||||
|
new(fItems + index) item_t(item);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::AddItem(const item_t &item)
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
if ((int32)fCapacity > fItemCount) {
|
||||||
|
new(fItems + fItemCount) item_t(item);
|
||||||
|
fItemCount++;
|
||||||
|
} else {
|
||||||
|
if ((result = _Resize(fItemCount + 1)))
|
||||||
|
new(fItems + (fItemCount - 1)) item_t(item);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// These don't use the copy constructor!
|
||||||
|
/*
|
||||||
|
// AddList
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::AddList(list_t *list, int32 index)
|
||||||
|
{
|
||||||
|
bool result = (list && index >= 0 && index <= fItemCount);
|
||||||
|
if (result && list->fItemCount > 0) {
|
||||||
|
int32 count = list->fItemCount;
|
||||||
|
result = _Resize(fItemCount + count);
|
||||||
|
if (result) {
|
||||||
|
_MoveItems(fItems + index, count, fItemCount - index - count);
|
||||||
|
memcpy(fItems + index, list->fItems,
|
||||||
|
list->fItemCount * sizeof(item_t));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// AddList
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::AddList(list_t *list)
|
||||||
|
{
|
||||||
|
bool result = (list);
|
||||||
|
if (result && list->fItemCount > 0) {
|
||||||
|
int32 index = fItemCount;
|
||||||
|
int32 count = list->fItemCount;
|
||||||
|
result = _Resize(fItemCount + count);
|
||||||
|
if (result) {
|
||||||
|
memcpy(fItems + index, list->fItems,
|
||||||
|
list->fItemCount * sizeof(item_t));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
// RemoveItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::RemoveItem(const item_t &item)
|
||||||
|
{
|
||||||
|
int32 index = IndexOf(item);
|
||||||
|
bool result = (index >= 0);
|
||||||
|
if (result)
|
||||||
|
RemoveItem(index);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
// RemoveItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::RemoveItem(int32 index)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < fItemCount) {
|
||||||
|
fItems[index].~item_t();
|
||||||
|
_MoveItems(fItems + index + 1, -1, fItemCount - index - 1);
|
||||||
|
_Resize(fItemCount - 1);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ReplaceItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::ReplaceItem(int32 index, const item_t &item)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < fItemCount) {
|
||||||
|
fItems[index] = item;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MoveItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::MoveItem(int32 oldIndex, int32 newIndex)
|
||||||
|
{
|
||||||
|
if (oldIndex >= 0 && oldIndex < fItemCount
|
||||||
|
&& newIndex >= 0 && newIndex <= fItemCount) {
|
||||||
|
if (oldIndex < newIndex - 1) {
|
||||||
|
item_t item = fItems[oldIndex];
|
||||||
|
_MoveItems(fItems + oldIndex + 1, -1, newIndex - oldIndex - 1);
|
||||||
|
fItems[newIndex] = item;
|
||||||
|
} else if (oldIndex > newIndex) {
|
||||||
|
item_t item = fItems[oldIndex];
|
||||||
|
_MoveItems(fItems + newIndex, 1, oldIndex - newIndex);
|
||||||
|
fItems[newIndex] = item;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
// MakeEmpty
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
void
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::MakeEmpty()
|
||||||
|
{
|
||||||
|
for (int32 i = 0; i < fItemCount; i++)
|
||||||
|
fItems[i].~item_t();
|
||||||
|
_Resize(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// CountItems
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
int32
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::CountItems() const
|
||||||
|
{
|
||||||
|
return fItemCount;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IsEmpty
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::IsEmpty() const
|
||||||
|
{
|
||||||
|
return (fItemCount == 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemAt
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
const List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t &
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::ItemAt(int32 index) const
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < fItemCount)
|
||||||
|
return fItems[index];
|
||||||
|
return sDefaultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ItemAt
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t &
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::ItemAt(int32 index)
|
||||||
|
{
|
||||||
|
if (index >= 0 && index < fItemCount)
|
||||||
|
return fItems[index];
|
||||||
|
return sDefaultItem;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Items
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
const List<ITEM, DEFAULT_ITEM_SUPPLIER>::item_t *
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::Items() const
|
||||||
|
{
|
||||||
|
return fItems;
|
||||||
|
}
|
||||||
|
|
||||||
|
// IndexOf
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
int32
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::IndexOf(const item_t &item) const
|
||||||
|
{
|
||||||
|
for (int32 i = 0; i < fItemCount; i++) {
|
||||||
|
if (fItems[i] == item)
|
||||||
|
return i;
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// HasItem
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::HasItem(const item_t &item) const
|
||||||
|
{
|
||||||
|
return (IndexOf(item) >= 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
// _Resize
|
||||||
|
template<typename ITEM, typename DEFAULT_ITEM_SUPPLIER>
|
||||||
|
bool
|
||||||
|
List<ITEM, DEFAULT_ITEM_SUPPLIER>::_Resize(size_t count)
|
||||||
|
{
|
||||||
|
bool result = true;
|
||||||
|
// calculate the new capacity
|
||||||
|
int32 newSize = count;
|
||||||
|
if (newSize <= 0)
|
||||||
|
newSize = 1;
|
||||||
|
newSize = ((newSize - 1) / fChunkSize + 1) * fChunkSize;
|
||||||
|
// resize if necessary
|
||||||
|
if ((size_t)newSize != fCapacity) {
|
||||||
|
item_t* newItems
|
||||||
|
= (item_t*)realloc(fItems, newSize * sizeof(item_t));
|
||||||
|
if (newItems) {
|
||||||
|
fItems = newItems;
|
||||||
|
fCapacity = newSize;
|
||||||
|
} else
|
||||||
|
result = false;
|
||||||
|
}
|
||||||
|
if (result)
|
||||||
|
fItemCount = count;
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // LIST_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// disk_device_manager.cpp
|
||||||
|
|
||||||
|
#include "disk_device_manager.h"
|
@ -0,0 +1,3 @@
|
|||||||
|
// KCreateChildJob.cpp
|
||||||
|
|
||||||
|
#include "KCreateChildJob.h"
|
25
src/kernel/core/disk_device_manager/jobs/KCreateChildJob.h
Normal file
25
src/kernel/core/disk_device_manager/jobs/KCreateChildJob.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// KCreateChildJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_CREATE_CHILD_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_CREATE_CHILD_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KCreateChildJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KCreateChildJob(partition_id partition, partition_id child, off_t offset,
|
||||||
|
off_t size, const char *parameters);
|
||||||
|
virtual ~KCreateChildJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KCreateChildJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_CREATE_CHILD_JOB_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// KDefragmentJob.cpp
|
||||||
|
|
||||||
|
#include "KDefragmentJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KDefragmentJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KDefragmentJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KDefragmentJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_DEFRAGMENT_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_DEFRAGMENT_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KDefragmentJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KDefragmentJob(partition_id partition);
|
||||||
|
virtual ~KDefragmentJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KDefragmentJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_DEFRAGMENT_JOB_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// KDeleteChildJob.cpp
|
||||||
|
|
||||||
|
#include "KDeleteChildJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KDeleteChildJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KDeleteChildJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KDeleteChildJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_DELETE_CHILD_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_DELETE_CHILD_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KDeleteChildJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KDeleteChildJob(partition_id parent, partition_id partition);
|
||||||
|
virtual ~KDeleteChildJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KDeleteChildJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_DELETE_CHILD_JOB_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// KInitializeJob.cpp
|
||||||
|
|
||||||
|
#include "KInitializeJob.h"
|
25
src/kernel/core/disk_device_manager/jobs/KInitializeJob.h
Normal file
25
src/kernel/core/disk_device_manager/jobs/KInitializeJob.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// KInitializeJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_INITIALIZE_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_INITIALIZE_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KInitializeJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KInitializeJob(partition_id partition, disk_system_id diskSystemID,
|
||||||
|
const char *parameters);
|
||||||
|
virtual ~KInitializeJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KInitializeJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_INITIALIZE_JOB_H
|
3
src/kernel/core/disk_device_manager/jobs/KMoveJob.cpp
Normal file
3
src/kernel/core/disk_device_manager/jobs/KMoveJob.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KMoveJob.cpp
|
||||||
|
|
||||||
|
#include "KMoveJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KMoveJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KMoveJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KMoveJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_MOVE_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_MOVE_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KMoveJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KMoveJob(partition_id parent, partition_id partition, off_t offset);
|
||||||
|
virtual ~KMoveJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KMoveJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_MOVE_JOB_H
|
3
src/kernel/core/disk_device_manager/jobs/KRepairJob.cpp
Normal file
3
src/kernel/core/disk_device_manager/jobs/KRepairJob.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KRepairJob.cpp
|
||||||
|
|
||||||
|
#include "KRepairJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KRepairJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KRepairJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KRepairJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_REPAIR_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_REPAIR_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KRepairJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KRepairJob(partition_id partition);
|
||||||
|
virtual ~KRepairJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KRepairJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_REPAIR_JOB_H
|
3
src/kernel/core/disk_device_manager/jobs/KResizeJob.cpp
Normal file
3
src/kernel/core/disk_device_manager/jobs/KResizeJob.cpp
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
// KResizeJob.cpp
|
||||||
|
|
||||||
|
#include "KResizeJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KResizeJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KResizeJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KResizeJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_RESIZE_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_RESIZE_JOB_H
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
class KResizeJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KResizeJob(partition_id parent, partition_id partition, off_t size);
|
||||||
|
virtual ~KResizeJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KResizeJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_RESIZE_JOB_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// KScanPartitionJob.cpp
|
||||||
|
|
||||||
|
#include "KScanPartitionJob.h"
|
24
src/kernel/core/disk_device_manager/jobs/KScanPartitionJob.h
Normal file
24
src/kernel/core/disk_device_manager/jobs/KScanPartitionJob.h
Normal file
@ -0,0 +1,24 @@
|
|||||||
|
// KScanPartitionJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_SCAN_PARTITION_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_SCAN_PARTITION_JOB_H
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
class KScanPartitionJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KScanPartitionJob(partition_id partition);
|
||||||
|
virtual ~KScanPartitionJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KScanPartitionJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_SCAN_PARTITION_JOB_H
|
@ -0,0 +1,3 @@
|
|||||||
|
// KSetParametersJob.cpp
|
||||||
|
|
||||||
|
#include "KSetParametersJob.h"
|
25
src/kernel/core/disk_device_manager/jobs/KSetParametersJob.h
Normal file
25
src/kernel/core/disk_device_manager/jobs/KSetParametersJob.h
Normal file
@ -0,0 +1,25 @@
|
|||||||
|
// KSetParametersJob.h
|
||||||
|
|
||||||
|
#ifndef _K_DISK_DEVICE_SET_PARAMETERS_JOB_H
|
||||||
|
#define _K_DISK_DEVICE_SET_PARAMETERS_JOB_H
|
||||||
|
|
||||||
|
namespace BPrivate {
|
||||||
|
namespace DiskDevice {
|
||||||
|
|
||||||
|
#include "KDiskDeviceJob.h"
|
||||||
|
|
||||||
|
class KSetParametersJob : public KDiskDeviceJob {
|
||||||
|
public:
|
||||||
|
KSetParametersJob(partition_id parent, partition_id partition,
|
||||||
|
const char *parameters, const char *contentParameters);
|
||||||
|
virtual ~KSetParametersJob();
|
||||||
|
|
||||||
|
virtual status_t Do();
|
||||||
|
};
|
||||||
|
|
||||||
|
} // namespace DiskDevice
|
||||||
|
} // namespace BPrivate
|
||||||
|
|
||||||
|
using BPrivate::DiskDevice::KSetParametersJob;
|
||||||
|
|
||||||
|
#endif // _DISK_DEVICE_SET_PARAMETERS_JOB_H
|
Loading…
Reference in New Issue
Block a user