1 /******************************************************************* 2 * 3 * File: EKern.h 4 * 5 * Author: Peter van Sebille (peter (at) yipton.net) 6 * 7 * (c) Copyright 2001, Peter van Sebille 8 * All Rights Reserved 9 * 10 *******************************************************************/ 11 12 13 #ifndef __EKERN_H 14 #define __EKERN_H 15 16 //#ifdef __WINS__ 17 #ifdef USE_ASM_INT3 18 #define INT3 _asm int 3 19 #else 20 #define INT3 21 #endif 22 23 class DLogicalChannel : public CObject 24 { 25 protected: IMPORT_C DLogicalChannel(class DLogicalDevice *); 26 protected: IMPORT_C virtual ~DLogicalChannel(void); 27 protected: IMPORT_C virtual void Close(void); 28 protected: IMPORT_C void SetBehaviour(unsigned int); 29 protected: IMPORT_C void Complete(int); 30 protected: IMPORT_C void Complete(int,int); 31 protected: IMPORT_C void CompleteAll(int); 32 // probably pure virtuals 33 34 virtual void DoCancel(TInt aReqNo) = 0; 35 virtual void DoRequest(TInt aReqNo,TAny *a1,TAny *a2) = 0; 36 protected: /*IMPORT_C*/ virtual void DoCreateL(int,class CBase *,class TDesC8 const *,class TVersion const &){}; 37 protected: IMPORT_C virtual int DoControl(int,void *,void *); 38 39 // hmm, loading the driver crashed on the Series 5, whereas it worked ok on the S5mx + S7 40 // added a few bogus virtuals seems to do the trick 41 protected: IMPORT_C virtual void foo1(){}; 42 protected: IMPORT_C virtual void foo2(){}; 43 protected: IMPORT_C virtual void foo3(){}; 44 protected: IMPORT_C virtual void foo4(){}; 45 protected: IMPORT_C virtual void foo5(){}; 46 protected: IMPORT_C virtual void foo6(){}; 47 48 TInt NoOfKernChunks(); 49 50 TUint iUnknown[1024]; 51 }; 52 53 54 55 /* 56 * DLogicalDevice is probably derived from CObject as the original Arlo 57 * calls SetName from Install 58 */ 59 class DLogicalDevice : public CObject 60 { 61 public: IMPORT_C virtual int Remove(void); 62 public: IMPORT_C virtual int QueryVersionSupported(class TVersion const &)const; 63 public: IMPORT_C virtual int IsAvailable(int,class TDesC8 const *,class TDesC8 const *)const; 64 65 public: // these seem to be pure virtuals 66 67 virtual TInt Install() = 0; 68 virtual void GetCaps(TDes8 &aDes) const = 0; 69 virtual DLogicalChannel *CreateL() = 0; 70 71 protected: IMPORT_C DLogicalDevice(void); 72 protected: IMPORT_C virtual ~DLogicalDevice(void); 73 TInt iUnknownData[1024]; 74 }; 75 76 77 78 79 80 81 82 83 #endif /* __EKERN_H */ 84