Program Listing for File device.hpp¶
↰ Return to documentation for file (dev/acpi/device.hpp
)
/* SPDX-License-Identifier: BSD-2-Clause */
#pragma once
#include <dev/acpi/acpi.hpp>
#include <lib/error.hpp>
#include <lib/result.hpp>
#include <vm/heap.hpp>
namespace Gaia::Dev {
class AcpiDevice : public Service {
public:
AcpiDevice(lai_variable_t id, lai_nsnode_t *obj);
void start(Service *provider) override;
lai_nsnode_t *aml_node;
lai_variable_t id;
bool match_properties(Properties &props) override;
const char *class_name() override { return "AcpiDevice"; }
const char *name() override { return _name.data(); };
Result<lai_nsnode_t *, Error> resolve_path(const char *path);
Result<uint64_t, Error> eval_path_int(const char *path);
private:
frg::string<Gaia::Vm::HeapAllocator> _name = "";
const char *devid;
Vm::UniquePtr<Service> driver;
};
} // namespace Gaia::Dev