haiku/headers/private/kernel/arch/sparc/arch_platform.h
PulkoMandy fea91fdc77 sparc: pci bus manager
Copied from PPC with the hooks for Apple hardware removed.
To be completed with the actual PCI bus implementation for Sun machines.
This is where we start doing machine specific stuff, apparently.

Change-Id: I06af4de9621e9d40593d153642478d928083e49a
Reviewed-on: https://review.haiku-os.org/c/1364
Reviewed-by: waddlesplash <waddlesplash@gmail.com>
2019-04-04 20:31:25 +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 {
PPC_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