25#define DYLIB_EXT ".dylib"
27#define DYLIB_EXT ".so"
49 static Status Make(
const std::string &
name, std::shared_ptr<Platform> *platform_out,
bool quiet =
true);
57 static Status Make(std::shared_ptr<Platform> *platform_out,
bool quiet =
true);
74 [[nodiscard]]
Status WriteMMIO(uint64_t offset, uint32_t value)
const {
return Status(platformWriteMMIO(offset, value)); }
82 Status ReadMMIO(uint64_t offset, uint32_t *value)
const {
return Status(platformReadMMIO(offset, value)); }
99 return Status(platformDeviceMalloc(device_address, size));
117 return Status(platformCopyHostToDevice(host_source, device_destination, size));
128 return Status(platformCopyDeviceToHost(device_source, host_destination, size));
140 assert(platformPrepareHostBuffer !=
nullptr);
142 auto stat = platformPrepareHostBuffer(host_source, device_destination, size, &ll_alloced);
143 *alloced = ll_alloced == 1;
155 assert(platformCacheHostBuffer !=
nullptr);
156 return Status(platformCacheHostBuffer(host_source, device_destination, size));
164 assert(platformTerminate !=
nullptr);
176 fstatus_t (*platformGetName)(
char *
name,
size_t size) =
nullptr;
177 fstatus_t (*platformInit)(
void *arg) =
nullptr;
178 fstatus_t (*platformWriteMMIO)(uint64_t offset, uint32_t value) =
nullptr;
179 fstatus_t (*platformReadMMIO)(uint64_t offset, uint32_t *value) =
nullptr;
180 fstatus_t (*platformDeviceMalloc)(da_t *device_address, int64_t size) =
nullptr;
181 fstatus_t (*platformDeviceFree)(da_t device_address) =
nullptr;
182 fstatus_t (*platformCopyHostToDevice)(
const uint8_t *host_source, da_t device_destination, int64_t size) =
nullptr;
183 fstatus_t (*platformCopyDeviceToHost)(
const da_t device_source, uint8_t *host_destination, int64_t size) =
nullptr;
184 fstatus_t (*platformPrepareHostBuffer)(
const uint8_t *host_source,
185 da_t *device_destination,
187 int *alloced) =
nullptr;
188 fstatus_t (*platformCacheHostBuffer)(
const uint8_t *host_source, da_t *device_destination, int64_t size) =
nullptr;
189 fstatus_t (*platformTerminate)(
void *arg) =
nullptr;
192 Status Link(
void *handle,
bool quiet =
true);
195 bool terminated =
false;
Contains all Fletcher classes and functions for use in run-time applications.
Status return value of all Fletcher run-time functions.