xref: /haiku/headers/private/kernel/arch/mipsel/arch_platform.h (revision 68ea01249e1e2088933cb12f9c28d4e5c5d1c9ef)
1 /*
2  * Copyright 2009 Haiku Inc.
3  * All rights reserved. Distributed under the terms of the MIT License.
4  */
5 #ifndef _KERNEL_ARCH_MIPSEL_PLATFORM_H
6 #define _KERNEL_ARCH_MIPSEL_PLATFORM_H
7 
8 #include <arch/platform.h>
9 
10 #warning IMPLEMENT arch_platform.h
11 
12 struct real_time_data;
13 
14 enum mipsel_platform_type {
15 	MIPSEL_PLATFORM_ROUTERBOARD = 0,
16 };
17 
18 namespace BPrivate {
19 
20 class MipselPlatform {
21 public:
22 	MipselPlatform(mipsel_platform_type platformType);
23 	virtual ~MipselPlatform();
24 
25 	static MipselPlatform* Default();
26 
27 	inline mipsel_platform_type PlatformType() const { return fPlatformType; }
28 
29 	virtual status_t Init(struct kernel_args* kernelArgs) = 0;
30 	virtual status_t InitSerialDebug(struct kernel_args* kernelArgs) = 0;
31 	virtual status_t InitPostVM(struct kernel_args* kernelArgs) = 0;
32 	virtual status_t InitRTC(struct kernel_args* kernelArgs,
33 		struct real_time_data* data) = 0;
34 
35 	virtual char SerialDebugGetChar() = 0;
36 	virtual void SerialDebugPutChar(char c) = 0;
37 
38 	virtual	void SetHardwareRTC(uint32 seconds) = 0;
39 	virtual	uint32 GetHardwareRTC() = 0;
40 
41 	virtual	void ShutDown(bool reboot) = 0;
42 
43 private:
44 	mipsel_platform_type	fPlatformType;
45 };
46 
47 }	// namespace BPrivate
48 
49 using BPrivate::MipselPlatform;
50 
51 
52 #endif /* _KERNEL_ARCH_MIPSEL_PLATFORM_H */
53 
54