--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/kernel/eka/include/e32shbuf_priv.h Mon Oct 19 15:55:17 2009 +0100
@@ -0,0 +1,135 @@
+// Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+// All rights reserved.
+// This component and the accompanying materials are made available
+// under the terms of the License "Eclipse Public License v1.0"
+// which accompanies this distribution, and is available
+// at the URL "http://www.eclipse.org/legal/epl-v10.html".
+//
+// Initial Contributors:
+// Nokia Corporation - initial contribution.
+//
+// Contributors:
+//
+// Description:
+// e32/include/e32shbuf_priv.h
+// Shareable Data Buffers
+
+/**
+ @file
+ @internalComponent
+ @prototype
+*/
+
+#ifndef E32SHBUF_PRIV_H
+#define E32SHBUF_PRIV_H
+
+
+#include <e32def.h>
+
+
+/**
+ Defines flags for TShPoolInfo.
+
+ These values specify the behaviour of the pool and its buffers.
+
+ @internalComponent
+ @prototype
+*/
+enum TShPoolCreateFlags
+ {
+ /**
+ The buffers in this pool are at least the size of an MMU page,
+ are aligned to an MMU page, and may be mapped in and out of a process's
+ address space independently.
+ */
+ EShPoolPageAlignedBuffer = 0x0001,
+
+ /**
+ The buffers in this pool do not have any size or alignment restrictions beyond
+ that specified by the pool creator.
+
+ The whole pool is always mapped into a process's address space.
+ */
+ EShPoolNonPageAlignedBuffer = 0x0002,
+
+ /**
+ This pool maps onto device memory, not system RAM.
+ */
+ EShPoolPhysicalMemoryPool = 0x0004,
+
+ /**
+ The physical memory backing this pool is contiguous.
+ */
+ EShPoolContiguous = 0x0008,
+
+ /**
+ Each buffer will only ever be mapped into one process's address space at a time.
+
+ Requires EShPoolPageAlignedBuffer.
+ */
+ EShPoolExclusiveAccess = 0x0010,
+
+ /**
+ An unmapped page will be placed between each buffer.
+
+ Requires EShPoolPageAlignedBuffer.
+ */
+ EShPoolGuardPages = 0x0020,
+
+ /**
+ Set by automatic shrinking when it is unable to shrink the pool despite there
+ being enough free buffers available (usually due to fragmentation). This prevents
+ the automatic shrinking code being continually called when it can't do anything.
+ */
+ EShPoolSuppressShrink = 0x80000000,
+ };
+
+
+/**
+ Specifies client flags.
+
+ @internalComponent
+ @prototype
+*/
+enum TShPoolClientFlags
+ {
+ /**
+ Buffers will be automatically mapped into this process's address space when a handle is
+ created for them. Having this flag clear can be useful for a process that will function
+ as an intermediary, without requiring access to the data in the buffers.
+ */
+ EShPoolAutoMapBuf = 0x1000,
+
+ /**
+ Newly-allocated buffers will not be mapped into this process's address space.
+ */
+ EShPoolNoMapBuf = 0x2000,
+ };
+
+
+/**
+ Specifies the type of notification. (A real enumeration, not bit flags.)
+
+ @internalComponent
+ @prototype
+*/
+enum TShPoolNotifyType
+ {
+ EShPoolLowSpace = 1, // notifies when free buffers drop to a certain number
+ EShPoolFreeSpace = 2, // notifies when free buffers rise to a certain number
+ };
+
+/**
+ Structure for passing base address and pointer of buffer
+
+ @internalComponent
+ @prototype
+*/
+struct SShBufBaseAndSize
+ {
+ TLinAddr iBase;
+ TUint iSize;
+ };
+
+
+#endif // E32SHBUF_PRIV_H