Mark3 Realtime Kernel
memutil.h
Go to the documentation of this file.
1 /*===========================================================================
2  _____ _____ _____ _____
3  ___| _|__ __|_ |__ __|__ |__ __| __ |__ ______
4 | \ / | || \ || | || |/ / ||___ |
5 | \/ | || \ || \ || \ ||___ |
6 |__/\__/|__|_||__|\__\ __||__|\__\ __||__|\__\ __||______|
7  |_____| |_____| |_____| |_____|
8 
9 --[Mark3 Realtime Platform]--------------------------------------------------
10 
11 Copyright (c) 2012 - 2019 m0slevin, all rights reserved.
12 See license.txt for more information
13 =========================================================================== */
21 #pragma once
22 
23 #include "kerneltypes.h"
24 #include "mark3cfg.h"
25 
26 namespace Mark3
27 {
28 //---------------------------------------------------------------------------
32 typedef struct {
33  const char* pcToken;
34  uint8_t u8Len;
35 } Token_t;
36 
37 //---------------------------------------------------------------------------
46 class MemUtil
47 {
48 public:
49  //-----------------------------------------------------------------------
58  static void DecimalToString(uint8_t u8Data_, char* szText_);
59  static void DecimalToString(uint16_t u16Data_, char* szText_);
60  static void DecimalToString(uint32_t u32Data_, char* szText_);
61  static void DecimalToString(uint64_t u64Data_, char* szText_);
62 
63  //-----------------------------------------------------------------------
73  static uint8_t Checksum8(const void* pvSrc_, uint16_t u16Len_);
74 
75  //-----------------------------------------------------------------------
85  static uint16_t Checksum16(const void* pvSrc_, uint16_t u16Len_);
86 
87  //-----------------------------------------------------------------------
97  static uint16_t StringLength(const char* szStr_);
98 
99  //-----------------------------------------------------------------------
109  static bool CompareStrings(const char* szStr1_, const char* szStr2_);
110  static bool CompareStrings(const char* szStr1_, const char* szStr2_, uint16_t u16Length_);
111 
112  //-----------------------------------------------------------------------
122  static void CopyMemory(void* pvDst_, const void* pvSrc_, uint16_t u16Len_);
123 
124  //-----------------------------------------------------------------------
133  static void CopyString(char* szDst_, const char* szSrc_);
134 
135  //-----------------------------------------------------------------------
145  static int16_t StringSearch(const char* szBuffer_, const char* szPattern_);
146 
147  //-----------------------------------------------------------------------
159  static bool CompareMemory(const void* pvMem1_, const void* pvMem2_, uint16_t u16Len_);
160 
161  //-----------------------------------------------------------------------
171  static void SetMemory(void* pvDst_, uint8_t u8Val_, uint16_t u16Len_);
172 
173  //-----------------------------------------------------------------------
183  static uint8_t Tokenize(const char* szBuffer_, Token_t* pastTokens_, uint8_t u8MaxTokens_);
184 };
185 } // namespace Mark3
static void CopyMemory(void *pvDst_, const void *pvSrc_, uint16_t u16Len_)
CopyMemory.
Definition: memutil.cpp:193
static void CopyString(char *szDst_, const char *szSrc_)
CopyString.
Definition: memutil.cpp:207
Basic data type primatives used throughout the OS.
static int16_t StringSearch(const char *szBuffer_, const char *szPattern_)
StringSearch.
Definition: memutil.cpp:221
static bool CompareStrings(const char *szStr1_, const char *szStr2_)
CompareStrings.
Definition: memutil.cpp:157
static bool CompareMemory(const void *pvMem1_, const void *pvMem2_, uint16_t u16Len_)
CompareMemory.
Definition: memutil.cpp:252
static void DecimalToString(uint8_t u8Data_, char *szText_)
DecimalToString.
Definition: memutil.cpp:30
String and Memory manipu32ation class.
Definition: memutil.h:46
static uint8_t Tokenize(const char *szBuffer_, Token_t *pastTokens_, uint8_t u8MaxTokens_)
Tokenize Function to tokenize a string based on a space delimeter. This is a non-destructive function...
Definition: memutil.cpp:281
Definition: atomic.cpp:23
Mark3 Kernel Configuration This file is used to configure the kernel for your specific application in...
Token descriptor struct format.
Definition: memutil.h:32
const char * pcToken
Pointer to the beginning of the token string.
Definition: memutil.h:33
static uint8_t Checksum8(const void *pvSrc_, uint16_t u16Len_)
Checksum8.
Definition: memutil.cpp:118
static uint16_t Checksum16(const void *pvSrc_, uint16_t u16Len_)
Checksum16.
Definition: memutil.cpp:131
static void SetMemory(void *pvDst_, uint8_t u8Val_, uint16_t u16Len_)
SetMemory.
Definition: memutil.cpp:271
static uint16_t StringLength(const char *szStr_)
StringLength.
Definition: memutil.cpp:145
uint8_t u8Len
Length of the token (in bytes)
Definition: memutil.h:34