kernel/eka/drivers/locmedia/dmasupport.h
changeset 279 957c583b417b
parent 0 a41df078684a
equal deleted inserted replaced
275:2b433474f2ba 279:957c583b417b
     1 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     4 // under the terms of the License "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
    24 
    24 
    25 class TLocDrvRequest;
    25 class TLocDrvRequest;
    26 
    26 
    27 /**
    27 /**
    28 @internalTechnology
    28 @internalTechnology
    29 @prototype
       
    30 
    29 
    31 Class used for read / write requests to the local media subsystem to gain access
    30 Class used for read / write requests to the local media subsystem to gain access
    32 to physical memory address to make use of DMA without the need of an intermediate buffer.
    31 to physical memory address to make use of DMA without the need of an intermediate buffer.
    33 */
    32 */
    34 class DDmaHelper : public DBase
    33 class DDmaHelper : public DBase
    66 #endif
    65 #endif
    67 	inline TInt PageSize()	const { return iPageSize; }
    66 	inline TInt PageSize()	const { return iPageSize; }
    68 	
    67 	
    69 private:
    68 private:
    70 
    69 
    71 	static inline TInt PageSizeLog2();
       
    72 	static inline TBool IsPageAligned(TLinAddr aAddr);
    70 	static inline TBool IsPageAligned(TLinAddr aAddr);
    73 	static inline TLinAddr PageAlign(TLinAddr aAddr);
    71 	static inline TLinAddr PageAlign(TLinAddr aAddr);
    74 	static inline TLinAddr PageOffset(TLinAddr aAddr);
    72 	static inline TLinAddr PageOffset(TLinAddr aAddr);
    75 
    73 
    76 	inline TInt MaxFragLength()	const;
    74 	inline TInt MaxFragLength()	const;
    77 	inline void SetFragLength(TInt aLength);
    75 	inline void SetFragLength(TInt aLength);
    78 	inline TInt FragLength()	const;
    76 	inline TInt FragLength()	const;
    79 	inline TInt LengthRemaining() const;
    77 	inline TInt LengthRemaining() const;
    80 	inline TUint32 LengthConsumed() const;
       
    81 
    78 
    82 	inline TBool IsDmaAligned(TLinAddr aAddr);
    79 	inline TBool IsDmaAligned(TLinAddr aAddr);
    83 	inline TBool IsBlockAligned(TInt64 aPos);
    80 	inline TBool IsBlockAligned(TInt64 aPos);
    84 	inline TInt64 BlockAlign(TInt64 aPos);
    81 	inline TInt64 BlockAlign(TInt64 aPos);
    85 	inline TInt BlockOffset(TInt64 aPos);
    82 	inline TInt BlockOffset(TInt64 aPos);