1 /*******************************************************************
2 *
3 * File: EKern.h
4 *
5 * Author: Peter van Sebille (peter@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;
DoCreateL(int,class CBase *,class TDesC8 const *,class TVersion const &)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
foo1()41 protected: IMPORT_C virtual void foo1(){};
foo2()42 protected: IMPORT_C virtual void foo2(){};
foo3()43 protected: IMPORT_C virtual void foo3(){};
foo4()44 protected: IMPORT_C virtual void foo4(){};
foo5()45 protected: IMPORT_C virtual void foo5(){};
foo6()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