MicrOS
memory_operations.h File Reference
#include <stddef.h>
#include <stdint.h>

Go to the source code of this file.

Macros

#define get_absolute_address(segment, offset)   ((uint32_t)segment * 0x10 + (uint32_t)offset)
 
#define get_byte_pointer(memory, absolute_address)   (memory + (uint32_t) absolute_address)
 
#define get_word_pointer(memory, absolute_address)   ((uint16_t*)(memory + (uint32_t) absolute_address))
 
#define get_dword_pointer(memory, absolute_address)   ((uint32_t*)(memory + (uint32_t) absolute_address))
 
#define get_variable_length_pointer(memory, absolute_address, width)   ((void*)(memory + (uint32_t) absolute_address))
 
#define read_byte_from_pointer(memory, absolute_address)   (*(get_byte_pointer(memory, absolute_address)))
 
#define read_word_from_pointer(memory, absolute_address)   (*(get_word_pointer(memory, absolute_address)))
 
#define read_dword_from_pointer(memory, absolute_address)   (*(get_dword_pointer(memory, absolute_address)))
 

Functions

static void write_byte_to_pointer (uint8_t *memory, uint32_t absolute_address, uint8_t value)
 
static void write_word_to_pointer (uint8_t *memory, uint32_t absolute_address, uint16_t value)
 
static void write_dword_to_pointer (uint8_t *memory, uint32_t absolute_address, uint32_t value)
 

Macro Definition Documentation

◆ get_absolute_address

#define get_absolute_address (   segment,
  offset 
)    ((uint32_t)segment * 0x10 + (uint32_t)offset)

◆ get_byte_pointer

#define get_byte_pointer (   memory,
  absolute_address 
)    (memory + (uint32_t) absolute_address)

◆ get_dword_pointer

#define get_dword_pointer (   memory,
  absolute_address 
)    ((uint32_t*)(memory + (uint32_t) absolute_address))

◆ get_variable_length_pointer

#define get_variable_length_pointer (   memory,
  absolute_address,
  width 
)    ((void*)(memory + (uint32_t) absolute_address))

◆ get_word_pointer

#define get_word_pointer (   memory,
  absolute_address 
)    ((uint16_t*)(memory + (uint32_t) absolute_address))

◆ read_byte_from_pointer

#define read_byte_from_pointer (   memory,
  absolute_address 
)    (*(get_byte_pointer(memory, absolute_address)))

◆ read_dword_from_pointer

#define read_dword_from_pointer (   memory,
  absolute_address 
)    (*(get_dword_pointer(memory, absolute_address)))

◆ read_word_from_pointer

#define read_word_from_pointer (   memory,
  absolute_address 
)    (*(get_word_pointer(memory, absolute_address)))

Function Documentation

◆ write_byte_to_pointer()

static void write_byte_to_pointer ( uint8_t *  memory,
uint32_t  absolute_address,
uint8_t  value 
)
inlinestatic

◆ write_dword_to_pointer()

static void write_dword_to_pointer ( uint8_t *  memory,
uint32_t  absolute_address,
uint32_t  value 
)
inlinestatic

◆ write_word_to_pointer()

static void write_word_to_pointer ( uint8_t *  memory,
uint32_t  absolute_address,
uint16_t  value 
)
inlinestatic