xref: /netbsd-src/sys/arch/epoc32/stand/e32boot/ldd/ekern.h (revision 2fa7e14158d403140e8fb3c233c9e17417a69d87)
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