mbed official / mbed

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

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?

UserRevisionLine numberNew 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 */