Get and store the userland team running the file system.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29539 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -28,17 +28,19 @@ struct FileSystem::SelectSyncMap
|
|||||||
|
|
||||||
// constructor
|
// constructor
|
||||||
FileSystem::FileSystem()
|
FileSystem::FileSystem()
|
||||||
: fVolumes(),
|
:
|
||||||
fVolumeLock(),
|
fVolumes(),
|
||||||
fName(),
|
fVolumeLock(),
|
||||||
fNotificationPort(NULL),
|
fName(),
|
||||||
fNotificationThread(-1),
|
fTeam(-1),
|
||||||
fPortPool(),
|
fNotificationPort(NULL),
|
||||||
fSelectSyncs(NULL),
|
fNotificationThread(-1),
|
||||||
fSettings(NULL),
|
fPortPool(),
|
||||||
fUserlandServerTeam(-1),
|
fSelectSyncs(NULL),
|
||||||
fInitialized(false),
|
fSettings(NULL),
|
||||||
fTerminating(false)
|
fUserlandServerTeam(-1),
|
||||||
|
fInitialized(false),
|
||||||
|
fTerminating(false)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -67,7 +69,7 @@ FileSystem::~FileSystem()
|
|||||||
|
|
||||||
// Init
|
// Init
|
||||||
status_t
|
status_t
|
||||||
FileSystem::Init(const char* name, Port::Info* infos, int32 count,
|
FileSystem::Init(const char* name, team_id team, Port::Info* infos, int32 count,
|
||||||
const FSCapabilities& capabilities)
|
const FSCapabilities& capabilities)
|
||||||
{
|
{
|
||||||
PRINT(("FileSystem::Init(\"%s\", %p, %ld)\n", name, infos, count));
|
PRINT(("FileSystem::Init(\"%s\", %p, %ld)\n", name, infos, count));
|
||||||
@@ -81,6 +83,7 @@ FileSystem::Init(const char* name, Port::Info* infos, int32 count,
|
|||||||
if (!fName.SetTo(name))
|
if (!fName.SetTo(name))
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
|
fTeam = team;
|
||||||
fCapabilities = capabilities;
|
fCapabilities = capabilities;
|
||||||
|
|
||||||
// create the select sync entry map
|
// create the select sync entry map
|
||||||
|
|||||||
@@ -25,11 +25,12 @@ public:
|
|||||||
FileSystem();
|
FileSystem();
|
||||||
~FileSystem();
|
~FileSystem();
|
||||||
|
|
||||||
status_t Init(const char* name, Port::Info* infos,
|
status_t Init(const char* name, team_id team,
|
||||||
int32 infoCount,
|
Port::Info* infos, int32 infoCount,
|
||||||
const FSCapabilities& capabilities);
|
const FSCapabilities& capabilities);
|
||||||
|
|
||||||
const char* GetName() const;
|
const char* GetName() const;
|
||||||
|
team_id GetTeam() const { return fTeam; }
|
||||||
|
|
||||||
const FSCapabilities& GetCapabilities() const;
|
const FSCapabilities& GetCapabilities() const;
|
||||||
inline bool HasCapability(uint32 capability) const;
|
inline bool HasCapability(uint32 capability) const;
|
||||||
@@ -65,6 +66,7 @@ private:
|
|||||||
Vector<Volume*> fVolumes;
|
Vector<Volume*> fVolumes;
|
||||||
Locker fVolumeLock;
|
Locker fVolumeLock;
|
||||||
String fName;
|
String fName;
|
||||||
|
team_id fTeam;
|
||||||
FSCapabilities fCapabilities;
|
FSCapabilities fCapabilities;
|
||||||
RequestPort* fNotificationPort;
|
RequestPort* fNotificationPort;
|
||||||
thread_id fNotificationThread;
|
thread_id fNotificationThread;
|
||||||
|
|||||||
@@ -123,12 +123,18 @@ FileSystemInitializer::_Init(port_id port)
|
|||||||
RETURN_ERROR(B_BAD_DATA);
|
RETURN_ERROR(B_BAD_DATA);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// get the port's team
|
||||||
|
port_info portInfo;
|
||||||
|
status_t error = get_port_info(port, &portInfo);
|
||||||
|
if (error != B_OK)
|
||||||
|
RETURN_ERROR(error);
|
||||||
|
|
||||||
// create and init the FileSystem
|
// create and init the FileSystem
|
||||||
fFileSystem = new(std::nothrow) FileSystem;
|
fFileSystem = new(std::nothrow) FileSystem;
|
||||||
if (!fFileSystem)
|
if (!fFileSystem)
|
||||||
return B_NO_MEMORY;
|
return B_NO_MEMORY;
|
||||||
|
|
||||||
status_t error = fFileSystem->Init(fName, info->portInfos,
|
error = fFileSystem->Init(fName, portInfo.team, info->portInfos,
|
||||||
info->portInfoCount, info->capabilities);
|
info->portInfoCount, info->capabilities);
|
||||||
if (error != B_OK)
|
if (error != B_OK)
|
||||||
RETURN_ERROR(error);
|
RETURN_ERROR(error);
|
||||||
|
|||||||
Reference in New Issue
Block a user