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