Newer
Older
minerva / Kernel / Arch / aarch64 / RPi / Watchdog.h
@minerva minerva on 13 Jul 403 bytes Initial commit
/*
 * Copyright (c) 2023, Daniel Bertalan <dani@danielbertalan.dev>
 *
 * SPDX-License-Identifier: BSD-2-Clause
 */

#pragma once

#include <Kernel/Memory/TypedMapping.h>

namespace Kernel::RPi {

struct WatchdogRegisters;

class Watchdog {
public:
    Watchdog();
    static Watchdog& the();

    void system_shutdown();

private:
    Memory::TypedMapping<WatchdogRegisters volatile> m_registers;
};
}