Merge branch 'master' into package-management

Additional changes:
* Add src/system/kernel/lib/zlib, which builds a kernel version of zlib,
  needed by packagefs.
* BuildFeatures: Add a build feature "gcc2" to allow for easier checks.
* Referenceable.cpp: Include <OS.h> instead of <debugger.h>. The latter
  is not needed and prevents building for the build platform.
* zlib/zutil.h: Fix gcc 2 build. We really should use the external
  package instead.

Conflicts:
	.gitignore
	build/jam/BuildSetup
	build/jam/FileRules
	build/jam/FloppyBootImage
	build/jam/HaikuImage
	build/jam/ImageRules
	build/jam/KernelRules
	build/jam/NetBootArchive
	build/jam/OptionalBuildFeatures
	build/jam/OptionalLibPackages
	build/jam/OptionalPackageDependencies
	build/jam/OptionalPackages
	build/scripts/build_haiku_image
	configure
	data/bin/installoptionalpackage
	data/system/boot/Bootscript
	headers/os/app/Message.h
	headers/os/package/PackageInfo.h
	headers/os/package/PackageInfoAttributes.h
	headers/os/package/PackageInfoSet.h
	headers/os/package/PackageRoster.h
	headers/os/package/PackageVersion.h
	headers/os/package/hpkg/PackageInfoAttributeValue.h
	headers/os/storage/FindDirectory.h
	headers/os/storage/Node.h
	headers/os/support/StringList.h
	headers/private/system/directories.h
	src/add-ons/kernel/drivers/audio/ac97/es1370/Jamfile
	src/add-ons/kernel/file_systems/packagefs/AttributeIndex.cpp
	src/add-ons/kernel/file_systems/packagefs/Jamfile
	src/add-ons/kernel/file_systems/packagefs/Package.cpp
	src/add-ons/kernel/file_systems/packagefs/Package.h
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageDomain.h
	src/add-ons/kernel/file_systems/packagefs/PackageFSRoot.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkDirectory.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageLinkSymlink.h
	src/add-ons/kernel/file_systems/packagefs/PackageLinksDirectory.cpp
	src/add-ons/kernel/file_systems/packagefs/PackageNode.h
	src/add-ons/kernel/file_systems/packagefs/ResolvableFamily.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.cpp
	src/add-ons/kernel/file_systems/packagefs/Version.h
	src/add-ons/kernel/file_systems/packagefs/Volume.cpp
	src/add-ons/kernel/file_systems/packagefs/Volume.h
	src/add-ons/kernel/file_systems/packagefs/kernel_interface.cpp
	src/add-ons/kernel/file_systems/userlandfs/shared/driver_settings.c
	src/apps/deskbar/BarApp.cpp
	src/apps/deskbar/BarMenuBar.cpp
	src/apps/deskbar/BarMenuBar.h
	src/apps/deskbar/BarView.cpp
	src/apps/deskbar/BarView.h
	src/apps/deskbar/BarWindow.cpp
	src/apps/deskbar/BarWindow.h
	src/apps/deskbar/DeskbarMenu.cpp
	src/apps/deskbar/DeskbarMenu.h
	src/apps/deskbar/DeskbarUtils.cpp
	src/apps/deskbar/DeskbarUtils.h
	src/apps/deskbar/ExpandoMenuBar.cpp
	src/apps/deskbar/ExpandoMenuBar.h
	src/apps/deskbar/TeamMenu.cpp
	src/apps/processcontroller/ProcessController.cpp
	src/apps/remotedesktop/RemoteDesktop.cpp
	src/bin/bash/config-top.h
	src/bin/finddir.c
	src/bin/package/Jamfile
	src/bin/package/command_add.cpp
	src/bin/package/command_create.cpp
	src/bin/package/command_list.cpp
	src/bin/package_repo/command_list.cpp
	src/bin/pkgman/command_refresh.cpp
	src/build/libbe/support/Jamfile
	src/build/libpackage/Jamfile
	src/build/libroot/Jamfile
	src/build/libroot/fs.cpp
	src/build/libroot/remapped_functions.h
	src/kits/locale/MutableLocaleRoster.cpp
	src/kits/opengl/GLRendererRoster.cpp
	src/kits/package/PackageInfo.cpp
	src/kits/package/PackageInfoSet.cpp
	src/kits/package/PackageRoster.cpp
	src/kits/package/PackageVersion.cpp
	src/kits/package/RepositoryCache.cpp
	src/kits/package/hpkg/PackageWriterImpl.cpp
	src/kits/package/hpkg/ReaderImplBase.cpp
	src/kits/package/hpkg/WriterImplBase.cpp
	src/kits/print/PrintTransport.cpp
	src/kits/print/Printer.cpp
	src/kits/screensaver/ScreenSaverRunner.cpp
	src/kits/support/StringList.cpp
	src/kits/tracker/ContainerWindow.cpp
	src/kits/tracker/DeskWindow.cpp
	src/kits/tracker/PoseView.cpp
	src/libs/print/libprint/Transport.cpp
	src/preferences/printers/AddPrinterDialog.cpp
	src/preferences/screensaver/ScreenSaverWindow.cpp
	src/servers/debug/DebugServer.cpp
	src/servers/input/AddOnManager.cpp
	src/servers/media_addon/MediaAddonServer.cpp
	src/system/boot/Jamfile
	src/system/boot/loader/Jamfile
	src/system/boot/loader/loader.cpp
	src/system/boot/loader/vfs.cpp
	src/system/kernel/fs/vfs.cpp
	src/system/kernel/fs/vfs_boot.cpp
	src/system/libroot/os/find_directory.cpp
	src/system/runtime_loader/runtime_loader.cpp
	src/tools/package/Jamfile
This commit is contained in:
Ingo Weinhold
2013-05-05 15:03:26 +02:00
15096 changed files with 647420 additions and 1619850 deletions
+4 -2
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2010, Haiku, Inc. All Rights Reserved.
* Copyright 2002-2012, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _ENTRY_H
@@ -50,6 +50,8 @@ public:
status_t InitCheck() const;
bool Exists() const;
const char* Name() const;
virtual status_t GetStat(struct stat* stat) const;
status_t SetTo(const BDirectory* dir, const char* path,
@@ -88,7 +90,7 @@ private:
virtual void _PennyEntry5();
virtual void _PennyEntry6();
/*! BEntry implementation of BStatable::set_stat() */
// BEntry implementation of BStatable::set_stat()
virtual status_t set_stat(struct stat& stat, uint32 what);
status_t _SetTo(int dir, const char* path,
bool traverse);
+1 -1
View File
@@ -60,7 +60,7 @@ class BFile : public BNode, public BPositionIO {
virtual void close_fd();
private:
//! The file's open mode.
// The file's open mode.
uint32 fMode;
};
+64 -56
View File
@@ -1,10 +1,11 @@
/*
* Copyright 2002-2009, Haiku, Inc. All Rights Reserved.
* Copyright 2002-2011, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _NODE_H
#define _NODE_H
#include <Statable.h>
@@ -19,9 +20,9 @@ struct node_ref {
node_ref(dev_t device, ino_t node);
node_ref(const node_ref &ref);
bool operator==(const node_ref &ref) const;
bool operator!=(const node_ref &ref) const;
node_ref& operator=(const node_ref &ref);
bool operator==(const node_ref& ref) const;
bool operator!=(const node_ref& ref) const;
node_ref& operator=(const node_ref& ref);
dev_t device;
ino_t node;
@@ -30,79 +31,86 @@ struct node_ref {
class BNode : public BStatable {
public:
BNode();
BNode(const entry_ref *ref);
BNode(const BEntry *entry);
BNode(const char *path);
BNode(const BDirectory *dir, const char *path);
BNode(const BNode &node);
virtual ~BNode();
BNode();
BNode(const entry_ref* ref);
BNode(const BEntry* entry);
BNode(const char* path);
BNode(const BDirectory* dir, const char* path);
BNode(const BNode& node);
virtual ~BNode();
status_t InitCheck() const;
status_t InitCheck() const;
virtual status_t GetStat(struct stat *st) const;
virtual status_t GetStat(struct stat* st) const;
status_t SetTo(const entry_ref *ref);
status_t SetTo(const BEntry *entry);
status_t SetTo(const char *path);
status_t SetTo(const BDirectory *dir, const char *path);
void Unset();
status_t SetTo(const entry_ref* ref);
status_t SetTo(const BEntry* entry);
status_t SetTo(const char* path);
status_t SetTo(const BDirectory* dir, const char* path);
void Unset();
status_t Lock();
status_t Unlock();
status_t Lock();
status_t Unlock();
status_t Sync();
status_t Sync();
ssize_t WriteAttr(const char *name, type_code type, off_t offset,
const void *buffer, size_t len);
ssize_t ReadAttr(const char *name, type_code type, off_t offset,
void *buffer, size_t len) const;
status_t RemoveAttr(const char *name);
status_t RenameAttr(const char *oldname, const char *newname);
status_t GetAttrInfo(const char *name, struct attr_info *info) const;
status_t GetNextAttrName(char *buffer);
status_t RewindAttrs();
status_t WriteAttrString(const char *name, const BString *data);
status_t ReadAttrString(const char *name, BString *result) const;
ssize_t WriteAttr(const char* name, type_code type,
off_t offset, const void* buffer,
size_t length);
ssize_t ReadAttr(const char* name, type_code type,
off_t offset, void* buffer,
size_t length) const;
status_t RemoveAttr(const char* name);
status_t RenameAttr(const char* oldName,
const char* newName);
status_t GetAttrInfo(const char* name,
struct attr_info* info) const;
status_t GetNextAttrName(char* buffer);
status_t RewindAttrs();
status_t WriteAttrString(const char* name,
const BString* data);
status_t ReadAttrString(const char* name,
BString* result) const;
BNode& operator=(const BNode &node);
bool operator==(const BNode &node) const;
bool operator!=(const BNode &node) const;
BNode& operator=(const BNode& node);
bool operator==(const BNode& node) const;
bool operator!=(const BNode& node) const;
int Dup(); // This should be "const" but R5's is not... Ugggh.
int Dup();
// This should be "const" but R5's is not... Ugggh.
private:
friend class BFile;
friend class BDirectory;
friend class BSymLink;
virtual void _RudeNode1();
virtual void _RudeNode2();
virtual void _RudeNode3();
virtual void _RudeNode4();
virtual void _RudeNode5();
virtual void _RudeNode6();
virtual void _RudeNode1();
virtual void _RudeNode2();
virtual void _RudeNode3();
virtual void _RudeNode4();
virtual void _RudeNode5();
virtual void _RudeNode6();
private:
status_t set_fd(int fd);
virtual void close_fd();
void set_status(status_t newStatus);
status_t set_fd(int fd);
virtual void close_fd();
void set_status(status_t newStatus);
status_t _SetTo(int fd, const char *path, bool traverse);
status_t _SetTo(const entry_ref *ref, bool traverse);
status_t _SetTo(int fd, const char* path, bool traverse);
status_t _SetTo(const entry_ref* ref, bool traverse);
virtual status_t set_stat(struct stat &st, uint32 what);
virtual status_t set_stat(struct stat& st, uint32 what);
status_t _GetStat(struct stat *st) const;
virtual status_t _GetStat(struct stat_beos *st) const;
status_t _GetStat(struct stat* st) const;
virtual status_t _GetStat(struct stat_beos* st) const;
status_t InitAttrDir();
private:
uint32 rudeData[4];
int fFd;
int fAttrFd;
status_t fCStatus;
status_t InitAttrDir();
uint32 rudeData[4];
int fFd;
int fAttrFd;
status_t fCStatus;
};
#endif // _NODE_H
-5
View File
@@ -18,11 +18,6 @@ class BBitmap;
class BResources;
/*! \brief BNodeInfo provides file type information
BNodeInfo provides a nice wrapper to all sorts of usefull meta data.
Like it's mime type, the files icon and the application which will load
the file.
*/
class BNodeInfo {
public:
BNodeInfo();
+15 -18
View File
@@ -9,14 +9,13 @@
#include <StorageDefs.h>
/* Flags for the watch_node() call.
*
* Note that B_WATCH_MOUNT is NOT included in B_WATCH_ALL.
* You may prefer to use BVolumeRoster for volume watching.
*/
// Flags for the watch_node() call.
// Note that B_WATCH_MOUNT is NOT included in B_WATCH_ALL.
// You may prefer to use BVolumeRoster for volume watching.
enum {
B_STOP_WATCHING = 0x0000,
B_STOP_WATCHING = 0x0000,
B_WATCH_NAME = 0x0001,
B_WATCH_STAT = 0x0002,
B_WATCH_ATTR = 0x0004,
@@ -28,11 +27,10 @@ enum {
};
/* The "opcode" field of the B_NODE_MONITOR notification message you get.
*
* The presence and meaning of the other fields in that message specifying what
* exactly caused the notification depend on this value.
*/
// The "opcode" field of the B_NODE_MONITOR notification message you get.
// The presence and meaning of the other fields in that message specifying what
// exactly caused the notification depend on this value.
#define B_ENTRY_CREATED 1
#define B_ENTRY_REMOVED 2
@@ -67,11 +65,10 @@ enum {
};
/* C++ callable Prototypes
*
* Since you are not able to parse BMessages from plain C, there is no
* API exported.
*/
// C++ callable Prototypes
// Since you are not able to parse BMessages from plain C, there is no
// API exported.
#if defined(__cplusplus) && !defined(_KERNEL_MODE)
@@ -95,6 +92,6 @@ extern status_t watch_node(const node_ref *node, uint32 flags,
extern status_t stop_watching(BMessenger target);
extern status_t stop_watching(const BHandler *handler, const BLooper *looper = NULL);
#endif /* __cplusplus && !_KERNEL_MODE */
#endif // __cplusplus && !_KERNEL_MODE
#endif /* _NODE_MONITOR_H*/
#endif // _NODE_MONITOR_H
+6 -3
View File
@@ -1,5 +1,5 @@
/*
* Copyright 2002-2009, Haiku, Inc. All Rights Reserved.
* Copyright 2002-2012, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
#ifndef _PATH_H
@@ -25,7 +25,7 @@ public:
BPath(const BEntry* entry);
BPath(const char* dir, const char* leaf = NULL,
bool normalize = false);
BPath(const BDirectory* dir,
BPath(const BDirectory* dir,
const char* leaf = NULL,
bool normalize = false);
@@ -37,7 +37,7 @@ public:
status_t SetTo(const BEntry* entry);
status_t SetTo(const char* path, const char* leaf = NULL,
bool normalize = false);
status_t SetTo(const BDirectory* dir,
status_t SetTo(const BDirectory* dir,
const char* leaf = NULL,
bool normalize = false);
void Unset();
@@ -47,6 +47,7 @@ public:
const char* Path() const;
const char* Leaf() const;
status_t GetParent(BPath* path) const;
bool IsAbsolute() const;
bool operator==(const BPath& item) const;
bool operator==(const char* path) const;
@@ -75,7 +76,9 @@ private:
uint32 _reserved[4];
char* fName;
// Pointer to the path string of the object.
status_t fCStatus;
// The initialization status of the object.
};
#endif // _PATH_H
-11
View File
@@ -40,17 +40,6 @@ typedef enum {
} query_op;
/*!
\class BQuery
\brief Represents a live or non-live file system query
Provides an interface for creating file system queries. Implements
the BEntryList for iterating through the found entries.
\author <a href='mailto:[email protected]'>Ingo Weinhold</a>
\version 0.0.0
*/
class BQuery : public BEntryList {
public:
BQuery();
+90 -77
View File
@@ -1,19 +1,16 @@
/*
* Copyright 2001-2006, Haiku Inc. All Rights Reserved.
* Copyright 2001-2013, Haiku Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*/
/*!
\file Resources.h
BResources interface declaration.
*/
#ifndef _RESOURCES_H
#define _RESOURCES_H
#include <Entry.h>
#include <File.h>
#include <image.h>
namespace BPrivate {
namespace Storage {
class ResourcesContainer;
@@ -21,99 +18,115 @@ namespace BPrivate {
};
};
/*!
\class BResources
\brief Represent the resources in a file
Provides an interface for accessing and manipulating resources.
\author Ingo Weinhold
\version 1.0.0
*/
class BResources {
public:
BResources();
BResources(const BFile *file, bool clobber = false);
BResources(const char *path, bool clobber = false); // Haiku only
BResources(const entry_ref *ref, bool clobber = false); // Haiku only
BResources();
BResources(const BFile* file,
bool clobber = false);
// Haiku only
BResources(const char* path,
bool clobber = false);
// Haiku only
BResources(const entry_ref* ref,
bool clobber = false);
virtual ~BResources();
virtual ~BResources();
status_t SetTo(const BFile *file, bool clobber = false);
status_t SetTo(const char *path, bool clobber = false); // Haiku only
status_t SetTo(const entry_ref *ref, bool clobber = false); // Haiku only
// Haiku only
status_t SetToImage(image_id image, bool clobber = false);
status_t SetToImage(const void *codeOrDataPointer, bool clobber = false);
status_t SetTo(const BFile* file,
bool clobber = false);
// Haiku only
status_t SetTo(const char* path,
bool clobber = false);
// Haiku only
status_t SetTo(const entry_ref* ref,
bool clobber = false);
void Unset();
status_t InitCheck() const;
// Haiku only
status_t SetToImage(image_id image,
bool clobber = false);
status_t SetToImage(const void* codeOrDataPointer,
bool clobber = false);
const BFile &File() const;
void Unset();
status_t InitCheck() const;
const void *LoadResource(type_code type, int32 id, size_t *outSize);
const void *LoadResource(type_code type, const char *name,
size_t *outSize);
const BFile &File() const;
status_t PreloadResourceType(type_code type = 0);
const void* LoadResource(type_code type, int32 id,
size_t* _size);
const void* LoadResource(type_code type, const char* name,
size_t* _size);
status_t Sync();
status_t MergeFrom(BFile *fromFile);
status_t WriteTo(BFile *file);
status_t PreloadResourceType(type_code type = 0);
status_t AddResource(type_code type, int32 id, const void *data,
size_t length, const char *name = NULL);
status_t Sync();
status_t MergeFrom(BFile* fromFile);
status_t WriteTo(BFile* file);
bool HasResource(type_code type, int32 id);
bool HasResource(type_code type, const char *name);
status_t AddResource(type_code type, int32 id,
const void* data, size_t length,
const char* name = NULL);
bool GetResourceInfo(int32 byIndex, type_code *typeFound, int32 *idFound,
const char **nameFound, size_t *lengthFound);
bool GetResourceInfo(type_code byType, int32 andIndex, int32 *idFound,
const char **nameFound, size_t *lengthFound);
bool GetResourceInfo(type_code byType, int32 andID,
const char **nameFound, size_t *lengthFound);
bool GetResourceInfo(type_code byType, const char *andName, int32 *idFound,
size_t *lengthFound);
bool GetResourceInfo(const void *byPointer, type_code *typeFound,
int32 *idFound, size_t *lengthFound,
const char **nameFound);
bool HasResource(type_code type, int32 id);
bool HasResource(type_code type, const char* name);
status_t RemoveResource(const void *resource);
status_t RemoveResource(type_code type, int32 id);
bool GetResourceInfo(int32 byIndex,
type_code* typeFound, int32* idFound,
const char** nameFound,
size_t* lengthFound);
bool GetResourceInfo(type_code byType,
int32 andIndex, int32* idFound,
const char** nameFound,
size_t* lengthFound);
bool GetResourceInfo(type_code byType, int32 andID,
const char **nameFound,
size_t* lengthFound);
bool GetResourceInfo(type_code byType,
const char* andName, int32* idFound,
size_t* lengthFound);
bool GetResourceInfo(const void* byPointer,
type_code* typeFound,
int32* idFound, size_t* lengthFound,
const char** nameFound);
status_t RemoveResource(const void *resource);
status_t RemoveResource(type_code type, int32 id);
// deprecated
// deprecated
status_t WriteResource(type_code type, int32 id,
const void* data, off_t offset,
size_t length);
status_t WriteResource(type_code type, int32 id, const void *data,
off_t offset, size_t length);
status_t ReadResource(type_code type, int32 id,
void* data, off_t offset,
size_t length);
status_t ReadResource(type_code type, int32 id, void *data, off_t offset,
size_t length);
void *FindResource(type_code type, int32 id, size_t *lengthFound);
void *FindResource(type_code type, const char *name, size_t *lengthFound);
void* FindResource(type_code type, int32 id,
size_t* lengthFound);
void* FindResource(type_code type, const char* name,
size_t *lengthFound);
private:
// FBC
virtual void _ReservedResources1();
virtual void _ReservedResources2();
virtual void _ReservedResources3();
virtual void _ReservedResources4();
virtual void _ReservedResources5();
virtual void _ReservedResources6();
virtual void _ReservedResources7();
virtual void _ReservedResources8();
// FBC
virtual void _ReservedResources1();
virtual void _ReservedResources2();
virtual void _ReservedResources3();
virtual void _ReservedResources4();
virtual void _ReservedResources5();
virtual void _ReservedResources6();
virtual void _ReservedResources7();
virtual void _ReservedResources8();
private:
BFile fFile;
BPrivate::Storage::ResourcesContainer *fContainer;
BPrivate::Storage::ResourceFile *fResourceFile;
bool fReadOnly;
bool _pad[3];
uint32 _reserved[3]; // FBC
BFile fFile;
BPrivate::Storage::ResourcesContainer* fContainer;
BPrivate::Storage::ResourceFile* fResourceFile;
bool fReadOnly;
bool _pad[3];
// FBC
uint32 _reserved[3];
};
#endif // _RESOURCES_H
+25 -31
View File
@@ -9,50 +9,44 @@
#include <Node.h>
#include <StorageDefs.h>
class BDirectory;
class BPath;
/*!
\class BSymLink
\brief A symbolic link in the filesystem
Provides an interface for manipulating symbolic links.
\author <a href='mailto:[email protected]'>Ingo Weinhold</a>
\version 0.0.0
*/
class BSymLink : public BNode {
public:
BSymLink();
BSymLink(const BSymLink &link);
BSymLink(const entry_ref *ref);
BSymLink(const BEntry *entry);
BSymLink(const char *path);
BSymLink(const BDirectory *dir, const char *path);
virtual ~BSymLink();
BSymLink();
BSymLink(const BSymLink &link);
BSymLink(const entry_ref *ref);
BSymLink(const BEntry *entry);
BSymLink(const char *path);
BSymLink(const BDirectory *dir,
const char *path);
virtual ~BSymLink();
ssize_t ReadLink(char *buf, size_t size);
ssize_t ReadLink(char *buf, size_t size);
ssize_t MakeLinkedPath(const char *dirPath, BPath *path);
ssize_t MakeLinkedPath(const BDirectory *dir, BPath *path);
ssize_t MakeLinkedPath(const char *dirPath,
BPath *path);
ssize_t MakeLinkedPath(const BDirectory *dir,
BPath *path);
bool IsAbsolute();
bool IsAbsolute();
private:
virtual void _MissingSymLink1();
virtual void _MissingSymLink2();
virtual void _MissingSymLink3();
virtual void _MissingSymLink4();
virtual void _MissingSymLink5();
virtual void _MissingSymLink6();
virtual void _MissingSymLink1();
virtual void _MissingSymLink2();
virtual void _MissingSymLink3();
virtual void _MissingSymLink4();
virtual void _MissingSymLink5();
virtual void _MissingSymLink6();
uint32 _reservedData[4];
BEntry *fSecretEntry;
uint32 _reservedData[4];
BEntry* fSecretEntry;
private:
int get_fd() const;
int get_fd() const;
};
#endif // _SYM_LINK_H
+5
View File
@@ -13,6 +13,7 @@
#include <StorageDefs.h>
#include <SupportDefs.h>
class BDirectory;
class BBitmap;
@@ -66,8 +67,12 @@ private:
virtual void _TurnUpTheVolume8();
dev_t fDevice;
// The device ID of the volume.
status_t fCStatus;
// The initialization status of the object.
int32 _reserved[8];
// FBC
};
#endif // _VOLUME_H
+8
View File
@@ -36,8 +36,16 @@ private:
private:
int32 fCookie;
// The iteration cookie for next_dev()
// Initialized to 0
BMessenger* fTarget;
// BMessenger referring to the target to
// which the watching notification
// messages are sent. The object is
// allocated and owned by the roster,
// or NULL if not watching.
uint32 _reserved[3];
// FBC
};