#include "smbios_c/compat.h"
#include "smbios_c/types.h"
Go to the source code of this file.
Functions | |
int DLL_SPEC | memory_read (void *buffer, u64 offset, size_t length) |
Read byte range from physical memory address. | |
int DLL_SPEC | memory_write (void *buffer, u64 offset, size_t length) |
Write a buffer to a physical memory address. | |
s64 DLL_SPEC | memory_search (const char *pat, size_t patlen, u64 start, u64 end, u64 stride) |
Search a range of physical addresses for a pattern. | |
void DLL_SPEC | memory_suggest_leave_open () |
Optimize memory device access - request memory device be kept open between calls. | |
void DLL_SPEC | memory_suggest_close () |
Optimize memory device access - request memory device be closed between calls. | |
const char *DLL_SPEC | memory_strerror () |
Returns string describing the last error condition. |
int DLL_SPEC memory_read | ( | void * | buffer, | |
u64 | offset, | |||
size_t | length | |||
) |
Read byte range from physical memory address.
This function will read a range of bytes from a physical memory address. Note that some OS have severe restrictions on which addresses may be read and written, as well as security restrictions on which security levels are allowed this access.
buffer | pointer to buffer were memory will be copied | |
offset | starting memory offset | |
length | how many bytes of memory to copy |
s64 DLL_SPEC memory_search | ( | const char * | pat, | |
size_t | patlen, | |||
u64 | start, | |||
u64 | end, | |||
u64 | stride | |||
) |
Search a range of physical addresses for a pattern.
Note that some OS have severe restrictions on which addresses may be read and written, as well as security restrictions on which security levels are allowed this access.
pat | buffer containing byte pattern to search for | |
patlen | length of pattern | |
start | physical address offset to start search | |
end | ending physical address offset | |
stride | search for pattern only where physical addresses % stride == 0 |
const char* DLL_SPEC memory_strerror | ( | ) |
Returns string describing the last error condition.
Can return 0. The buffer used is guaranteed to be valid until the next call to any memory_* function. Copy the contents if you need it longer.
void DLL_SPEC memory_suggest_close | ( | ) |
Optimize memory device access - request memory device be closed between calls.
By default, the memory device is closed between subsequent calls to read/write. This is to prevent file descriptor leakage by the libsmbios library. At times, however, the overhead of reopening the memory device file on every access is simply too great. This happens, for example, on memory searches, and can add considerable overhead. This function cancels a previous request to leave the device open between calls. Must be properly nested with memory_suggest_leave_open().
No parameters, no return.
void DLL_SPEC memory_suggest_leave_open | ( | ) |
Optimize memory device access - request memory device be kept open between calls.
By default, the memory device is closed between subsequent calls to read/write. This is to prevent file descriptor leakage by the libsmbios library. At times, however, the overhead of reopening the memory device file on every access is simply too great. This happens, for example, on memory searches, and can add considerable overhead. This function requests that the memory subsystem leave the device open between calls. Must be properly nested with memory_suggest_close().
No parameters, no return.
int DLL_SPEC memory_write | ( | void * | buffer, | |
u64 | offset, | |||
size_t | length | |||
) |
Write a buffer to a physical memory address.
This function will write a range of bytes to a physical memory address. Note that some OS have severe restrictions on which addresses may be read and written, as well as security restrictions on which security levels are allowed this access.
buffer | pointer to buffer containing contents to write | |
offset | starting memory offset | |
length | how many bytes of memory to copy |