Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: hello SerialTestv11 SerialTestv12 Sierpinski ... more
TARGET_ARM_BEETLE_SOC/TARGET_ARM_SSG/TARGET_BEETLE/cordio/include/util/utils.h@166:5aab5a7997ee, 2018-04-20 (annotated)
- Committer:
- Anna Bridge
- Date:
- Fri Apr 20 11:08:29 2018 +0100
- Revision:
- 166:5aab5a7997ee
- Parent:
- 156:ff21514d8981
Updating mbed 2 version number
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| AnnaBridge | 156:ff21514d8981 | 1 | /*************************************************************************************************/ |
| AnnaBridge | 156:ff21514d8981 | 2 | /*! |
| AnnaBridge | 156:ff21514d8981 | 3 | * \file utils.h |
| AnnaBridge | 156:ff21514d8981 | 4 | * |
| AnnaBridge | 156:ff21514d8981 | 5 | * \brief Utility functions. |
| AnnaBridge | 156:ff21514d8981 | 6 | * |
| AnnaBridge | 156:ff21514d8981 | 7 | * Copyright (c) 2015 ARM, Ltd., all rights reserved. |
| AnnaBridge | 156:ff21514d8981 | 8 | * ARM confidential and proprietary. |
| AnnaBridge | 156:ff21514d8981 | 9 | * |
| AnnaBridge | 156:ff21514d8981 | 10 | * IMPORTANT. Your use of this file is governed by a Software License Agreement |
| AnnaBridge | 156:ff21514d8981 | 11 | * ("Agreement") that must be accepted in order to download or otherwise receive a |
| AnnaBridge | 156:ff21514d8981 | 12 | * copy of this file. You may not use or copy this file for any purpose other than |
| AnnaBridge | 156:ff21514d8981 | 13 | * as described in the Agreement. If you do not agree to all of the terms of the |
| AnnaBridge | 156:ff21514d8981 | 14 | * Agreement do not use this file and delete all copies in your possession or control; |
| AnnaBridge | 156:ff21514d8981 | 15 | * if you do not have a copy of the Agreement, you must contact ARM, Ltd. prior |
| AnnaBridge | 156:ff21514d8981 | 16 | * to any use, copying or further distribution of this software. |
| AnnaBridge | 156:ff21514d8981 | 17 | */ |
| AnnaBridge | 156:ff21514d8981 | 18 | /*************************************************************************************************/ |
| AnnaBridge | 156:ff21514d8981 | 19 | |
| AnnaBridge | 156:ff21514d8981 | 20 | #ifndef __UTILS_H |
| AnnaBridge | 156:ff21514d8981 | 21 | #define __UTILS_H |
| AnnaBridge | 156:ff21514d8981 | 22 | |
| AnnaBridge | 156:ff21514d8981 | 23 | /*************************************************************************************************** |
| AnnaBridge | 156:ff21514d8981 | 24 | ** INCLUDES |
| AnnaBridge | 156:ff21514d8981 | 25 | ***************************************************************************************************/ |
| AnnaBridge | 156:ff21514d8981 | 26 | |
| AnnaBridge | 156:ff21514d8981 | 27 | #include <stdarg.h> |
| AnnaBridge | 156:ff21514d8981 | 28 | #include <stddef.h> |
| AnnaBridge | 156:ff21514d8981 | 29 | |
| AnnaBridge | 156:ff21514d8981 | 30 | #include "wsf_types.h" |
| AnnaBridge | 156:ff21514d8981 | 31 | |
| AnnaBridge | 156:ff21514d8981 | 32 | #if defined(__GNUC__) || defined(__CC_ARM) |
| AnnaBridge | 156:ff21514d8981 | 33 | #define PRINTF_ATTRIBUTE(a, b) __attribute__((format(printf, a, b))) |
| AnnaBridge | 156:ff21514d8981 | 34 | #else |
| AnnaBridge | 156:ff21514d8981 | 35 | #define PRINTF_ATTRIBUTE(a, b) |
| AnnaBridge | 156:ff21514d8981 | 36 | #endif |
| AnnaBridge | 156:ff21514d8981 | 37 | |
| AnnaBridge | 156:ff21514d8981 | 38 | #ifdef __cplusplus |
| AnnaBridge | 156:ff21514d8981 | 39 | extern "C" { |
| AnnaBridge | 156:ff21514d8981 | 40 | #endif |
| AnnaBridge | 156:ff21514d8981 | 41 | |
| AnnaBridge | 156:ff21514d8981 | 42 | /*************************************************************************************************** |
| AnnaBridge | 156:ff21514d8981 | 43 | ** DEFINES |
| AnnaBridge | 156:ff21514d8981 | 44 | ***************************************************************************************************/ |
| AnnaBridge | 156:ff21514d8981 | 45 | |
| AnnaBridge | 156:ff21514d8981 | 46 | #define UTIL_MAC_ADDR_LEN 6 |
| AnnaBridge | 156:ff21514d8981 | 47 | |
| AnnaBridge | 156:ff21514d8981 | 48 | /*------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 49 | |
| AnnaBridge | 156:ff21514d8981 | 50 | #define UTIL_IS_DIGIT(c) ((c >= '0') && (c <= '9')) |
| AnnaBridge | 156:ff21514d8981 | 51 | #define UTIL_IS_XDIGIT(c) (((c >= '0') && (c <= '9')) || ((c >= 'a') && (c <= 'f')) || \ |
| AnnaBridge | 156:ff21514d8981 | 52 | ((c >= 'A') && (c <= 'F'))) |
| AnnaBridge | 156:ff21514d8981 | 53 | |
| AnnaBridge | 156:ff21514d8981 | 54 | /*------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 55 | |
| AnnaBridge | 156:ff21514d8981 | 56 | #define UTIL_DIGIT_TO_INT(c) (((c >= '0') && (c <= '9')) ? (uint8_t)(c - '0') : 0u) |
| AnnaBridge | 156:ff21514d8981 | 57 | #define UTIL_XDIGIT_TO_INT(c) (((c >= '0') && (c <= '9')) ? (uint8_t)(c - '0') : \ |
| AnnaBridge | 156:ff21514d8981 | 58 | ((c >= 'a') && (c <= 'f')) ? (uint8_t)(c - 'a' + 10u) : \ |
| AnnaBridge | 156:ff21514d8981 | 59 | ((c >= 'A') && (c <= 'F')) ? (uint8_t)(c - 'A' + 10u) : 0u) |
| AnnaBridge | 156:ff21514d8981 | 60 | |
| AnnaBridge | 156:ff21514d8981 | 61 | /*************************************************************************************************** |
| AnnaBridge | 156:ff21514d8981 | 62 | ** FUNCTIONS |
| AnnaBridge | 156:ff21514d8981 | 63 | ***************************************************************************************************/ |
| AnnaBridge | 156:ff21514d8981 | 64 | |
| AnnaBridge | 156:ff21514d8981 | 65 | /*-------------------------------------------------------------------------------------------------- |
| AnnaBridge | 156:ff21514d8981 | 66 | ** Util_VSNPrintf() |
| AnnaBridge | 156:ff21514d8981 | 67 | ** |
| AnnaBridge | 156:ff21514d8981 | 68 | ** DESCRIPTION: Print formatted output to string. |
| AnnaBridge | 156:ff21514d8981 | 69 | ** |
| AnnaBridge | 156:ff21514d8981 | 70 | ** PARAMETERS: s Pointer to string that will receive outoput |
| AnnaBridge | 156:ff21514d8981 | 71 | ** size Maximum number of characters to store in s |
| AnnaBridge | 156:ff21514d8981 | 72 | ** format Pointer to format string |
| AnnaBridge | 156:ff21514d8981 | 73 | ** ap Variable arguments |
| AnnaBridge | 156:ff21514d8981 | 74 | ** |
| AnnaBridge | 156:ff21514d8981 | 75 | ** RETURNS: Number of characters stored in s |
| AnnaBridge | 156:ff21514d8981 | 76 | **------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 77 | int Util_VSNPrintf(char *s, size_t size, const char *format, va_list ap) PRINTF_ATTRIBUTE(3, 0); |
| AnnaBridge | 156:ff21514d8981 | 78 | |
| AnnaBridge | 156:ff21514d8981 | 79 | /*-------------------------------------------------------------------------------------------------- |
| AnnaBridge | 156:ff21514d8981 | 80 | ** Util_SNPrintf() |
| AnnaBridge | 156:ff21514d8981 | 81 | ** |
| AnnaBridge | 156:ff21514d8981 | 82 | ** DESCRIPTION: Print formatted output to string. |
| AnnaBridge | 156:ff21514d8981 | 83 | ** |
| AnnaBridge | 156:ff21514d8981 | 84 | ** PARAMETERS: s Pointer to string that will receive outoput |
| AnnaBridge | 156:ff21514d8981 | 85 | ** size Maximum number of characters to store in s |
| AnnaBridge | 156:ff21514d8981 | 86 | ** format Pointer to format string |
| AnnaBridge | 156:ff21514d8981 | 87 | ** ap Variable arguments |
| AnnaBridge | 156:ff21514d8981 | 88 | ** |
| AnnaBridge | 156:ff21514d8981 | 89 | ** RETURNS: Number of characters stored in s |
| AnnaBridge | 156:ff21514d8981 | 90 | **------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 91 | int Util_SNPrintf (char *s, size_t size, const char *format, ...) PRINTF_ATTRIBUTE(3, 4); |
| AnnaBridge | 156:ff21514d8981 | 92 | |
| AnnaBridge | 156:ff21514d8981 | 93 | /*-------------------------------------------------------------------------------------------------- |
| AnnaBridge | 156:ff21514d8981 | 94 | ** Util_ParseMacAddr() |
| AnnaBridge | 156:ff21514d8981 | 95 | ** |
| AnnaBridge | 156:ff21514d8981 | 96 | ** DESCRIPTION: Parse MAC address from string. |
| AnnaBridge | 156:ff21514d8981 | 97 | ** |
| AnnaBridge | 156:ff21514d8981 | 98 | ** PARAMETERS: s Pointer to string to parse |
| AnnaBridge | 156:ff21514d8981 | 99 | ** addr Pointer to buffer that will receive MAC address |
| AnnaBridge | 156:ff21514d8981 | 100 | ** |
| AnnaBridge | 156:ff21514d8981 | 101 | ** RETURNS: Number of characters consumed from string |
| AnnaBridge | 156:ff21514d8981 | 102 | **------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 103 | int32_t Util_ParseMacAddr(const char *s, uint8_t (*addr)[UTIL_MAC_ADDR_LEN]); |
| AnnaBridge | 156:ff21514d8981 | 104 | |
| AnnaBridge | 156:ff21514d8981 | 105 | /*-------------------------------------------------------------------------------------------------- |
| AnnaBridge | 156:ff21514d8981 | 106 | ** Util_ParseUInt() |
| AnnaBridge | 156:ff21514d8981 | 107 | ** |
| AnnaBridge | 156:ff21514d8981 | 108 | ** DESCRIPTION: Parse unsigned integer from string. |
| AnnaBridge | 156:ff21514d8981 | 109 | ** |
| AnnaBridge | 156:ff21514d8981 | 110 | ** PARAMETERS: s Pointer to string to parse |
| AnnaBridge | 156:ff21514d8981 | 111 | ** u Pointer to variable that will receive integer |
| AnnaBridge | 156:ff21514d8981 | 112 | ** base Base of integer (between 2 and 36, inclusive) or 0, for automatic detection |
| AnnaBridge | 156:ff21514d8981 | 113 | ** |
| AnnaBridge | 156:ff21514d8981 | 114 | ** RETURNS: Number of characters consumed from string |
| AnnaBridge | 156:ff21514d8981 | 115 | **------------------------------------------------------------------------------------------------*/ |
| AnnaBridge | 156:ff21514d8981 | 116 | int32_t Util_ParseUInt(const char *s, uint32_t *u, uint32_t base); |
| AnnaBridge | 156:ff21514d8981 | 117 | |
| AnnaBridge | 156:ff21514d8981 | 118 | #ifdef __cplusplus |
| AnnaBridge | 156:ff21514d8981 | 119 | } |
| AnnaBridge | 156:ff21514d8981 | 120 | #endif |
| AnnaBridge | 156:ff21514d8981 | 121 | |
| AnnaBridge | 156:ff21514d8981 | 122 | #endif /* __UTILS_H */ |


