Added ARM32 support
This commit is contained in:
1 parent
df792729ef
commit
1212cb9dbe
36 files changed
+2381
-783
No files matched your search
@@ -0,0 +1,66 @@
|
||||
#pragma once
|
||||
|
||||
#include <string_view>
|
||||
|
||||
/**
|
||||
* @file Status.hpp
|
||||
* @brief hot_reload::Status -- the C++ API's outcome code, and toString() for logging it.
|
||||
*
|
||||
* Carries the same meaning as hot_reload.h's `HotReloadStatus`, which exists side by side with
|
||||
* this one: the plain C API is a wrapper around the C++ API this file is part of (see
|
||||
* `Context.hpp`), not the other way around, but both are supported, stable public surfaces --
|
||||
* `HotReloadStatus`'s own values are not going away. A Status is never constructed on its own;
|
||||
* see Result.hpp for the type that actually carries one back from a call.
|
||||
*/
|
||||
namespace hot_reload
|
||||
{
|
||||
|
||||
/**
|
||||
* @brief The outcome of a Context::load() or Context::reload() call.
|
||||
*
|
||||
* @see Result, which pairs a Status with the human-readable message a failure deserves.
|
||||
*/
|
||||
enum class Status
|
||||
{
|
||||
/** The call did exactly what it says: loaded, or diffed-and-patched. */
|
||||
Ok,
|
||||
|
||||
/**
|
||||
* A required argument was empty or otherwise invalid, or Context::load() was called for
|
||||
* a module name that is already loaded -- call Context::reload() for that name instead.
|
||||
*/
|
||||
InvalidArgument,
|
||||
|
||||
/**
|
||||
* The platform could not load the image at all. Result::message() carries the
|
||||
* platform's own explanation -- this one status covers everything from a missing file,
|
||||
* to a genuinely corrupt image, to a shared library with an unresolved symbol
|
||||
* reference, and those need very different fixes. On Context::reload(), this is
|
||||
* non-destructive: the previously loaded version is left running untouched, exactly as
|
||||
* if reload had not been called.
|
||||
*/
|
||||
LoadFailed,
|
||||
|
||||
/** Context::reload() was called for a module name nothing has ever loaded. */
|
||||
NoPreviousVersion,
|
||||
|
||||
/**
|
||||
* This process's CPU architecture has no patch backend compiled in (see
|
||||
* `Architecture.hpp` -- currently x86, x86-64, ARM64, and ARM32). Nothing was patched;
|
||||
* Context::load() still succeeded, you just cannot Context::reload() on this target.
|
||||
*/
|
||||
UnsupportedArchitecture,
|
||||
};
|
||||
|
||||
/**
|
||||
* @brief A short, human-readable label for @p status, suitable for logging.
|
||||
*
|
||||
* The C API's equivalent, `hot_reload_status_string()`, calls this.
|
||||
*
|
||||
* @param status The status to describe.
|
||||
* @return A `string_view` into a static string -- valid for the life of the program, safe to
|
||||
* copy out or hold onto indefinitely, never null.
|
||||
*/
|
||||
[[nodiscard]] std::string_view toString(Status status) noexcept;
|
||||
|
||||
}
|
||||
Reference in new issue
Block a user