The official Mbed 2 C/C++ SDK provides the software platform and libraries to build your applications.

Dependents:   hello SerialTestv11 SerialTestv12 Sierpinski ... more

mbed 2

This is the mbed 2 library. If you'd like to learn about Mbed OS please see the mbed-os docs.

Committer:
AnnaBridge
Date:
Wed Feb 20 20:53:29 2019 +0000
Revision:
172:65be27845400
Parent:
171:3a7713b1edbc
mbed library release version 165

Who changed what in which revision?

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