Select one of the symbols to view example projects that use it.
 
Outline
#include <stdlib.h>
#include <stdint.h>
#include <errno.h>
#include "libjaylink.h"
jaylink_parse_serial_number(const char *, uint32_t *)
jaylink_hardware_type_string(enum jaylink_hardware_type)
jaylink_target_interface_string(enum jaylink_target_interface)
Files
loading...
CodeScopeDevelopment ToolsOpenOCDsrc/jtag/drivers/libjaylink/libjaylink/strutil.c
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* * This file is part of the libjaylink project. * * Copyright (C) 2016 Marc Schink <jaylink-dev@marcschink.de> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. *//* ... */ #include <stdlib.h> #include <stdint.h> #include <errno.h> #include "libjaylink.h" /** * @file * * String utility functions. *//* ... */ /** * Convert a string representation of a serial number to an integer. * * The string representation of the serial number must be in decimal form. * * @param[in] str String representation to convert. * @param[out] serial_number Serial number on success, and undefined on * failure. * * @retval JAYLINK_OK Success. * @retval JAYLINK_ERR_ARG Invalid arguments. * @retval JAYLINK_ERR Conversion error. Serial number is invalid or string * representation contains invalid character(s). * * @since 0.1.0 *//* ... */ JAYLINK_API int jaylink_parse_serial_number(const char *str, uint32_t *serial_number) { char *end_ptr; unsigned long long tmp; if (!str || !serial_number) return JAYLINK_ERR_ARG; errno = 0; tmp = strtoull(str, &end_ptr, 10); if (*end_ptr != '\0' || errno != 0 || tmp > UINT32_MAX) return JAYLINK_ERR; *serial_number = tmp; return JAYLINK_OK; }{ ... } /** * Get the string representation of a hardware type. * * @param[in] type Hardware type. * * @return The string representation of the given hardware type, or NULL * for an unknown type. * * @since 0.3.0 *//* ... */ JAYLINK_API const char *jaylink_hardware_type_string( enum jaylink_hardware_type type) { switch (type) { case JAYLINK_HW_TYPE_JLINK: return "J-Link";case JAYLINK_HW_TYPE_JLINK: case JAYLINK_HW_TYPE_FLASHER: return "Flasher";case JAYLINK_HW_TYPE_FLASHER: case JAYLINK_HW_TYPE_JLINK_PRO: return "J-Link PRO";case JAYLINK_HW_TYPE_JLINK_PRO: default: break;default }switch (type) { ... } return NULL; }{ ... } /** * Get the string representation of a target interface. * * @param[in] iface Target interface. * * @return The string representation of the given target interface, or NULL * for an unknown interface. * * @since 0.3.0 *//* ... */ JAYLINK_API const char *jaylink_target_interface_string( enum jaylink_target_interface iface) { switch (iface) { case JAYLINK_TIF_JTAG: return "JTAG";case JAYLINK_TIF_JTAG: case JAYLINK_TIF_SWD: return "SWD";case JAYLINK_TIF_SWD: case JAYLINK_TIF_BDM3: return "BDM3";case JAYLINK_TIF_BDM3: case JAYLINK_TIF_FINE: return "FINE";case JAYLINK_TIF_FINE: case JAYLINK_TIF_2W_JTAG_PIC32: return "2-wire JTAG for PIC32";case JAYLINK_TIF_2W_JTAG_PIC32: case JAYLINK_TIF_SPI: return "SPI";case JAYLINK_TIF_SPI: case JAYLINK_TIF_C2: return "C2";case JAYLINK_TIF_C2: case JAYLINK_TIF_CJTAG: return "cJTAG";case JAYLINK_TIF_CJTAG: default: break;default }switch (iface) { ... } return NULL; }{ ... }