--- a/userlibandfileserver/fileserver/ftrace/d_ftrace.cpp Mon Dec 21 16:14:42 2009 +0000
+++ b/userlibandfileserver/fileserver/ftrace/d_ftrace.cpp Wed Dec 23 11:43:31 2009 +0000
@@ -23,16 +23,8 @@
#include "f32trace.h"
-#define __DLOGICAL_CHANNEL_BASE__
-
-#ifdef __DLOGICAL_CHANNEL_BASE__
DMutex* TheTraceMutex = NULL;
_LIT(KLitTraceMutexName, "FTRACE_MUTEX");
-#else
-TDynamicDfcQue* gDfcQ;
-const TInt KDFTraceThreadPriority = 27;
-_LIT(KDFTraceThread,"DFTraceThread");
-#endif
const TInt KMajorVersionNumber=1;
const TInt KMinorVersionNumber=0;
@@ -49,11 +41,7 @@
virtual TInt Create(DLogicalChannelBase*& aChannel); //overriding pure virtual
};
-#ifdef __DLOGICAL_CHANNEL_BASE__
class DLddFTrace : public DLogicalChannelBase
-#else
-class DLddFTrace : public DLogicalChannel
-#endif
{
public:
DLddFTrace();
@@ -61,11 +49,7 @@
protected:
virtual TInt DoCreate(TInt aUnit, const TDesC8* anInfo, const TVersion& aVer);
-#ifdef __DLOGICAL_CHANNEL_BASE__
virtual TInt Request(TInt aReqNo, TAny* a1, TAny* a2);
-#else
- virtual void HandleMsg(class TMessageBase *);
-#endif
private:
void DoCancel(TInt aReqNo);
@@ -73,16 +57,13 @@
TInt DoControl(TInt aFunction, TAny* a1, TAny* a2);
private:
- DThread* iClient;
};
DECLARE_STANDARD_LDD()
{
-#ifdef __DLOGICAL_CHANNEL_BASE__
TInt r = Kern::MutexCreate(TheTraceMutex, KLitTraceMutexName, KMutexOrdNone);
if (r != KErrNone)
return NULL;
-#endif
return new DLddFactoryFTrace;
}
@@ -103,13 +84,6 @@
TInt DLddFactoryFTrace::Install()
{
-#ifndef __DLOGICAL_CHANNEL_BASE__
- // Allocate a kernel thread to run the DFC
- TInt r = Kern::DynamicDfcQCreate(gDfcQ, KDFTraceThreadPriority, KDFTraceThread);
- if (r != KErrNone)
- return r;
-#endif
-
TPtrC name=_L("FTrace");
return(SetName(&name));
}
@@ -120,21 +94,14 @@
DLddFactoryFTrace::~DLddFactoryFTrace()
{
-#ifndef __DLOGICAL_CHANNEL_BASE__
- if (gDfcQ)
- gDfcQ->Destroy();
-#endif
}
DLddFTrace::DLddFTrace()
{
- iClient=&Kern::CurrentThread();
- ((DObject*)iClient)->Open(); // can't fail since thread is running
}
DLddFTrace::~DLddFTrace()
{
- Kern::SafeClose((DObject*&)iClient,NULL);
}
TInt DLddFTrace::DoCreate(TInt /*aUnit*/, const TDesC8* /*aInfo*/, const TVersion& aVer)
@@ -143,11 +110,6 @@
if (!Kern::QueryVersionSupported(TVersion(KMajorVersionNumber,KMinorVersionNumber,KBuildVersionNumber),aVer))
return(KErrNotSupported);
-#ifndef __DLOGICAL_CHANNEL_BASE__
- SetDfcQ(gDfcQ);
- iMsgQ.Receive();
-#endif
-
return(KErrNone);
}
@@ -155,7 +117,6 @@
{
}
-#ifdef __DLOGICAL_CHANNEL_BASE__
TInt DLddFTrace::Request(TInt aReqNo, TAny* a1, TAny* a2)
{
NKern::ThreadEnterCS();
@@ -167,49 +128,11 @@
return r;
}
-#else
-
-void DLddFTrace::HandleMsg(TMessageBase* aMsg)
- {
- TThreadMessage& m=*(TThreadMessage*)aMsg;
- TInt id=m.iValue;
-
- if (id==(TInt)ECloseMsg)
- {
- m.Complete(KErrNone, EFalse);
- return;
- }
- else if (id==KMaxTInt)
- {
- // DoCancel
- m.Complete(KErrNone,ETrue);
- return;
- }
-
- if (id<0)
- {
- // DoRequest
- TRequestStatus* pS=(TRequestStatus*)m.Ptr0();
-
- // WDP FIXME change this to use the Kern::RequestComplete() API which doesn't take a thread pointer
- // when this becomes available
- Kern::RequestComplete(iClient, pS, KErrNotSupported);
- m.Complete(KErrNotSupported, ETrue);
- }
- else
- {
- // DoControl
- TInt r=DoControl(id, m.Ptr0(), m.Ptr1());
- m.Complete(r,ETrue);
- }
- }
-#endif // __DLOGICAL_CHANNEL_BASE__
const TUint KTraceBufferSize = 4096;
TUint8 gTraceBuffer[KTraceBufferSize];
-
#define MIN(a,b) ((a) < (b) ? (a) : (b))
TInt DLddFTrace::DoControl(TInt aFunction, TAny* a1, TAny* a2)
@@ -235,19 +158,12 @@
TraceArgs args={0};
-#ifdef __DLOGICAL_CHANNEL_BASE__
XTRAP(r, XT_DEFAULT, kumemget32(&args, a1, sizeof(args)));
if (r != KErrNone)
return r;
-#else
- r = Kern::ThreadRawRead(iClient, a1, &args, sizeof(args));
- if (r != KErrNone)
- return r;
-#endif
-
// current descriptor - MUST be either a TPtr8 or a TBuf8<4>
- TUint32 desc[2] = {0, 0};
+ TUint32 desc[2] = {0, 0};
TUint32& desLength = desc[0];
TUint offset = 0;
@@ -260,13 +176,7 @@
for (TInt n=0; n< args.iDescriptorCount; n++, des = (TDesC8*) (((TUint8*) des) + desSize) )
{
-#ifdef __DLOGICAL_CHANNEL_BASE__
XTRAP(r, XT_DEFAULT, kumemget32(desc, des, sizeof(desc)));
-#else
- r = Kern::ThreadRawRead(iClient, des, desc, sizeof(desc));
- if (r != KErrNone)
- return r;
-#endif
TUint32 desType = desLength >> KShiftDesType;
desLength &= (TUint) (KMaskDesLength);
if (desType == EPtrC)
@@ -288,19 +198,12 @@
return KErrArgument;
TUint len = MIN(KTraceBufferSize - offset, desLength);
-#ifdef __DLOGICAL_CHANNEL_BASE__
XTRAP(r, XT_DEFAULT, kumemget(gTraceBuffer+offset, (const TUint8*) desc[1], len));
-#else
- TPtr8 dest(gTraceBuffer+offset, len, len);
- r = Kern::ThreadDesRead(iClient, des, dest, 0, KChunkShiftBy0);
- if (r != KErrNone)
- return r;
-#endif
offset+= len;
-
+
}
- BTrace::OutFilteredBig
+ BTrace::OutFilteredBig
(BTRACE_HEADER_C(8,args.iCategory, 0), args.iUid, gTraceBuffer, offset);
r=KErrNone;