EPICS Base  7.0.5.1
cvtFast.h
1 /*************************************************************************\
2 * Copyright (c) 2013 UChicago Argonne LLC, as Operator of Argonne
3 * National Laboratory.
4 * Copyright (c) 2002 The Regents of the University of California, as
5 * Operator of Los Alamos National Laboratory.
6 * SPDX-License-Identifier: EPICS
7 * EPICS BASE is distributed subject to a Software License Agreement found
8 * in file LICENSE that is included with this distribution.
9 \*************************************************************************/
10 /*
11  * Fast numeric to string conversions
12  *
13  * Original Authors:
14  * Bob Dalesio, Mark Anderson and Marty Kraimer
15  * Date: 12 January 1993
16  */
17 
18 #ifndef INCcvtFasth
19 #define INCcvtFasth
20 
21 #include <stddef.h>
22 
23 #include "epicsTypes.h"
24 #include "libComAPI.h"
25 
26 #ifdef __cplusplus
27 extern "C" {
28 #endif
29 
30 /*
31  * All functions return the number of characters in the output
32  */
33 LIBCOM_API int
34  cvtFloatToString(float val, char *pdest, epicsUInt16 prec);
35 LIBCOM_API int
36  cvtDoubleToString(double val, char *pdest, epicsUInt16 prec);
37 
38 LIBCOM_API int
39  cvtFloatToExpString(float val, char *pdest, epicsUInt16 prec);
40 LIBCOM_API int
41  cvtDoubleToExpString(double val, char *pdest, epicsUInt16 prec);
42 LIBCOM_API int
43  cvtFloatToCompactString(float val, char *pdest, epicsUInt16 prec);
44 LIBCOM_API int
45  cvtDoubleToCompactString(double val, char *pdest, epicsUInt16 prec);
46 
47 LIBCOM_API size_t
48  cvtInt32ToString(epicsInt32 val, char *pdest);
49 LIBCOM_API size_t
50  cvtUInt32ToString(epicsUInt32 val, char *pdest);
51 LIBCOM_API size_t
52  cvtInt64ToString(epicsInt64 val, char *pdest);
53 LIBCOM_API size_t
54  cvtUInt64ToString(epicsUInt64 val, char *pdest);
55 
56 LIBCOM_API size_t
57  cvtInt32ToHexString(epicsInt32 val, char *pdest);
58 LIBCOM_API size_t
59  cvtUInt32ToHexString(epicsUInt32 val, char *pdest);
60 LIBCOM_API size_t
61  cvtInt32ToOctalString(epicsInt32 val, char *pdest);
62 LIBCOM_API size_t
63  cvtInt64ToHexString(epicsInt64 val, char *pdest);
64 LIBCOM_API size_t
65  cvtUInt64ToHexString(epicsUInt64 val, char *pdest);
66 
67 /* Support the original names */
68 
69 #define cvtCharToString(val, str) cvtInt32ToString(val, str)
70 #define cvtUcharToString(val, str) cvtUInt32ToString(val, str)
71 #define cvtShortToString(val, str) cvtInt32ToString(val, str)
72 #define cvtUshortToString(val, str) cvtUInt32ToString(val, str)
73 #define cvtLongToString(val, str) cvtInt32ToString(val, str)
74 #define cvtUlongToString(val, str) cvtUInt32ToString(val, str)
75 
76 #define cvtLongToHexString(val, str) cvtInt32ToHexString(val, str)
77 #define cvtULongToHexString(val, str) cvtUInt32ToHexString(val, str)
78 #define cvtLongToOctalString(val, str) cvtInt32ToOctalString(val, str)
79 
80 #ifdef __cplusplus
81 }
82 #endif
83 
84 #endif /*INCcvtFasth*/
The core data types used by epics.