--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ASSP Variant/gptimer_chipset_api.h Fri Jun 26 15:44:04 2009 +0100
@@ -0,0 +1,175 @@
+/*
+ gptimer_chipset_api.h
+
+ Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+ All rights reserved.
+
+ This program and the accompanying materials are made available
+ under the terms of the Eclipse Public License v1.0 which accompanies
+ this distribution, and is available at
+ http://www.eclipse.org/legal/epl-v10.html
+
+ Initial Contributors:
+ Nokia Corporation - initial contribution.
+
+ Contributors:
+*/
+
+/** @file
+@brief General Purpose Timer Chipset API H
+
+@publishedDeviceAbstraction
+*/
+
+#ifndef __GPTIMER_CHIPSET_API_H__
+#define __GPTIMER_CHIPSET_API_H__
+
+
+// Include files
+#include <kern_priv.h>
+
+
+/**
+Pointer to a callback function for the GPT client to use
+
+@note "Callback is executed in the DFC or ISR context"
+
+@param TAny* pointer to a parameter the call back function may use
+*/
+typedef void (*GPTimerFn)(TAny*);
+
+
+
+// Class declaration
+
+/**
+@brief GP timer class
+
+ General Purpose Timer functionality for clients
+*/
+class GPTimer
+ {
+ public:
+ /**
+ constructor of a GPT object
+ */
+ IMPORT_C GPTimer();
+
+
+ /**
+ allocates a HW GPT
+
+ @param aFunction A pointer to a callback function which is called
+ when the timer expires.
+ @param aPtr A parameter of the callback function.
+
+ @return returns KErrNone if there was no error or KErrInUse if no
+ HW GPT is available.
+
+ @pre Pre-condition: HW GPT must be available
+ */
+ IMPORT_C TInt Open(GPTimerFn aFunction, TAny* aPtr);
+
+
+ /**
+ Releases a HW GPT
+
+ @return Returns KErrNone if there was no error or KErrNotFound if
+ no HW GPT was allocated before.
+
+ @pre Pre-condition: Open was called
+ */
+ IMPORT_C TInt Close();
+
+
+ /**
+ Starts a GPT in one-shot mode, the callback routine will be called in
+ interrupt context.
+
+ @param aTime Timeout in microseconds.
+
+ @return returns KErrNone if there was no error, KErrInUse if the timer is already active,
+ KErrNotFound if no HW GPT was allocated before.
+ */
+ IMPORT_C TInt OneShot(TUint aTime);
+
+
+
+ /**
+ Starts a GPT in one-shot mode, the callback routine will be called in client's DFC context.
+
+ @param aTime Timeout in microseconds.
+ @param aDfc client's DFC object.
+
+ @return returns KErrNone if there was no error, KErrInUse if the timer is already active,
+ KErrArgument if aDfc is NULL, KErrNotFound if no HW GPT was allocated before.
+ */
+ IMPORT_C TInt OneShot(TUint aTime, TDfc& aDfc);
+
+
+
+ /**
+ Starts a GPT in periodic mode (the timer is restarted after it expired).
+ The callback routine will be called in interrupt context.
+
+ @param aTime Timeout in microseconds.
+
+ @return returns KErrNone if there was no error, KErrInUse if the timer is already active,
+ KErrNotFound if no HW GPT was allocated before.
+ */
+ IMPORT_C TInt Periodic(TUint aTime);
+
+
+ /**
+ Starts a GPT in periodic mode (the timer is restarted after it expired).
+ The callback routine will be called in client's DFC context.
+
+ @param aTime Timeout in microseconds.
+ @param aDfc client's DFC object.
+
+ @return returns KErrNone if there was no error or KErrInUse if the timer is already active,
+ KErrArgument if aDfc is NULL, KErrNotFound if no HW GPT was allocated before.
+ */
+ IMPORT_C TInt Periodic(TUint aTime, TDfc& aDfc);
+
+
+ /**
+ Requests to cancel a GPT.
+
+ @return Returns ETrue if the timer was actually cancelled or EFalse if the timer was not
+ cancelled because it was not running or the callback was already running.
+ */
+ IMPORT_C TBool Cancel();
+
+ /**
+ destructor of a GPT object
+ */
+ IMPORT_C ~GPTimer();
+
+ private:
+ /**
+ stores aFunction parameter
+ */
+ GPTimerFn iFunction;
+
+
+ /**
+ stores aPtr parameter
+ */
+ TAny* iPtr;
+
+
+ /**
+ stores aTime parameter
+ */
+ TUint iTime;
+
+
+ /**
+ stores aDfc parameter
+ */
+ TDfc iDfc;
+ };
+
+
+#endif // __GPTIMER_CHIPSET_API_H__