mirror of
https://github.com/dingusdev/dingusppc.git
synced 2025-01-10 13:29:38 +00:00
mace: self-registration with the device registry.
This commit is contained in:
parent
41a314d6d6
commit
1d37982d02
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
DingusPPC - The Experimental PowerPC Macintosh emulator
|
DingusPPC - The Experimental PowerPC Macintosh emulator
|
||||||
Copyright (C) 2018-21 divingkatae and maximum
|
Copyright (C) 2018-22 divingkatae and maximum
|
||||||
(theweirdo) spatium
|
(theweirdo) spatium
|
||||||
|
|
||||||
(Contact divingkatae#1017 or powermax#2286 on Discord for more info)
|
(Contact divingkatae#1017 or powermax#2286 on Discord for more info)
|
||||||
@ -21,7 +21,8 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
|
|
||||||
/** @file Media Access Controller for Ethernet (MACE) emulation. */
|
/** @file Media Access Controller for Ethernet (MACE) emulation. */
|
||||||
|
|
||||||
#include "mace.h"
|
#include <devices/deviceregistry.h>
|
||||||
|
#include <devices/ethernet/mace.h>
|
||||||
#include <loguru.hpp>
|
#include <loguru.hpp>
|
||||||
|
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
@ -55,3 +56,9 @@ void MaceController::write(uint8_t reg_offset, uint8_t value)
|
|||||||
LOG_F(INFO, "Writing 0x%X to MACE register %d", value, reg_offset);
|
LOG_F(INFO, "Writing 0x%X to MACE register %d", value, reg_offset);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const DeviceDescription Mace_Descriptor = {
|
||||||
|
MaceController::create, {}, {}
|
||||||
|
};
|
||||||
|
|
||||||
|
REGISTER_DEVICE(Mace, Mace_Descriptor);
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
/*
|
/*
|
||||||
DingusPPC - The Experimental PowerPC Macintosh emulator
|
DingusPPC - The Experimental PowerPC Macintosh emulator
|
||||||
Copyright (C) 2018-21 divingkatae and maximum
|
Copyright (C) 2018-22 divingkatae and maximum
|
||||||
(theweirdo) spatium
|
(theweirdo) spatium
|
||||||
|
|
||||||
(Contact divingkatae#1017 or powermax#2286 on Discord for more info)
|
(Contact divingkatae#1017 or powermax#2286 on Discord for more info)
|
||||||
@ -24,7 +24,10 @@ along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|||||||
#ifndef MACE_H
|
#ifndef MACE_H
|
||||||
#define MACE_H
|
#define MACE_H
|
||||||
|
|
||||||
|
#include <devices/common/hwcomponent.h>
|
||||||
|
|
||||||
#include <cinttypes>
|
#include <cinttypes>
|
||||||
|
#include <memory>
|
||||||
|
|
||||||
// MACE Chip ID from AMD datasheet
|
// MACE Chip ID from AMD datasheet
|
||||||
// TODO: compare with real HW
|
// TODO: compare with real HW
|
||||||
@ -66,11 +69,15 @@ enum MaceReg : uint8_t {
|
|||||||
|
|
||||||
}; // namespace MaceEnet
|
}; // namespace MaceEnet
|
||||||
|
|
||||||
class MaceController {
|
class MaceController : public HWComponent {
|
||||||
public:
|
public:
|
||||||
MaceController(uint16_t id) { this->chip_id = id; };
|
MaceController(uint16_t id) { this->chip_id = id; };
|
||||||
~MaceController() = default;
|
~MaceController() = default;
|
||||||
|
|
||||||
|
static std::unique_ptr<HWComponent> create() {
|
||||||
|
return std::unique_ptr<MaceController>(new MaceController(MACE_ID));
|
||||||
|
}
|
||||||
|
|
||||||
// MACE registers access
|
// MACE registers access
|
||||||
uint8_t read(uint8_t reg_offset);
|
uint8_t read(uint8_t reg_offset);
|
||||||
void write(uint8_t reg_offset, uint8_t value);
|
void write(uint8_t reg_offset, uint8_t value);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user