Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

lib_mem.h/lib_mem.c

Prototype

Code Block
LanguageC++
CaptionTextCAPTION
languagecpp
          void  Mem_Copy (       void        *pdest,
                          const  void        *psrc,
                                 CPU_SIZE_T   size);

Arguments

pdest

Pointer to the destination memory buffer.

...

  1. Zero-sized copies allowed.
  2. Memory buffers not checked for overlapping. However, data octets from a source memory buffer at a higher address value should successfully copy to a destination memory buffer at a lower address value even if any octets of the memory buffers overlap as long as no individual copy overlaps. Since Mem_Copy() performs the data octet copy via CPU_ALIGN-sized words and/or octets; and since CPU_ALIGN-sized words must be accessed on word-aligned addresses, neither CPU_ALIGN-sized words nor octets at unique addresses can ever overlap. Therefore, Mem_Copy() should be able to successfully copy overlapping memory buffers as long as the source memory buffer is at a higher address value than the destination memory buffer.
  3. This function can be configured to build an assembly-optimized version.

Example Usage

...

LanguageC++
CaptionTextCAPTION
languagecpp

...