src/include/smbios_c/memory.h File Reference

#include "smbios_c/compat.h"
#include "smbios_c/types.h"
Include dependency graph for memory.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.

Function Documentation

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.

Parameters:
buffer pointer to buffer were memory will be copied
offset starting memory offset
length how many bytes of memory to copy
Returns:
0 on success, < 0 on failure -1 general failure -5 bad memory_access_object (could not instantiate singleton?) -6 bad buffer pointer
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.

Parameters:
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
Returns:
-1 on failure. offset of memory address where pattern found on success
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.

Parameters:
buffer pointer to buffer containing contents to write
offset starting memory offset
length how many bytes of memory to copy
Returns:
0 on success, < 0 on failure -1 general failure -5 bad memory_access_object (could not instantiate singleton?) -6 bad buffer pointer
Generated on Wed Jul 28 08:16:01 2010 for libsmbios_c library by  doxygen 1.6.3