haiku/headers/private/kernel/arch/sparc/arch_platform.h
PulkoMandy b992c828cf sparc: add kernel debug output
Mostly the same as PowerPC, using OpenFirmware.

Change-Id: I197cc181e92da92c272ee9cfa20c8ad2d2c63d41
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3579
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2021-01-01 22:10:43 +00:00

51 lines
1.2 KiB
C++

/*
* Copyright 2006, Ingo Weinhold <bonefish@cs.tu-berlin.de>.
* All rights reserved. Distributed under the terms of the MIT License.
*/
#ifndef _KERNEL_SPARC_ARCH_PLATFORM_H
#define _KERNEL_SPARC_ARCH_PLATFORM_H
#include <arch/platform.h>
struct real_time_data;
enum sparc_platform_type {
SPARC_PLATFORM_OPEN_FIRMWARE = 0,
};
namespace BPrivate {
class SparcPlatform {
public:
SparcPlatform(sparc_platform_type platformType);
virtual ~SparcPlatform();
static SparcPlatform *Default();
inline sparc_platform_type PlatformType() const { return fPlatformType; }
virtual status_t Init(struct kernel_args *kernelArgs) = 0;
virtual status_t InitSerialDebug(struct kernel_args *kernelArgs) = 0;
virtual status_t InitPostVM(struct kernel_args *kernelArgs) = 0;
virtual status_t InitRTC(struct kernel_args *kernelArgs,
struct real_time_data *data) = 0;
virtual char SerialDebugGetChar() = 0;
virtual void SerialDebugPutChar(char c) = 0;
virtual void SetHardwareRTC(uint32 seconds) = 0;
virtual uint32 GetHardwareRTC() = 0;
virtual void ShutDown(bool reboot) = 0;
private:
sparc_platform_type fPlatformType;
};
} // namespace BPrivate
using BPrivate::SparcPlatform;
#endif // _KERNEL_SPARC_ARCH_PLATFORM_H