Select one of the symbols to view example projects that use it.
 
Outline
#define OPENOCD_TRANSPORT_TRANSPORT_H
#include "config.h"
#include "helper/command.h"
transport
transport_register(struct transport *);
get_current_transport();
transport_register_commands(struct command_context *);
transport_list_parse(struct command_invocation *, char ***);
allow_transports(struct command_context *, const char *const *);
transport_is_jtag();
transport_is_swd();
transport_is_dapdirect_jtag();
transport_is_dapdirect_swd();
transport_is_swim();
transport_is_hla();
Files
loading...
SourceVuDevelopment ToolsOpenOCDsrc/transport/transport.h
 
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
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
/* SPDX-License-Identifier: GPL-2.0-or-later */ /* * Copyright (c) 2010 by David Brownell * Copyright (C) 2011 Tomasz Boleslaw CEDRO (http://www.tomek.cedro.info) *//* ... */ #ifndef OPENOCD_TRANSPORT_TRANSPORT_H #define OPENOCD_TRANSPORT_TRANSPORT_H #ifdef HAVE_CONFIG_H #include "config.h" #endif #include "helper/command.h" /** * Wrapper for transport lifecycle operations. * * OpenOCD talks to targets through some kind of debugging * or programming adapter, using some protocol that probably * has target-specific aspects. * * A "transport" reflects electrical protocol to the target, * e..g jtag, swd, spi, uart, ... NOT the messaging protocols * layered over it (e.g. JTAG has eICE, CoreSight, Nexus, OnCE, * and more). * * In addition to the lifecycle operations packaged by this * structure, a transport also involves an interface supported * by debug adapters and used by components such as debug targets. * For non-debug transports, there may be interfaces used to * write to flash chips. *//* ... */ struct transport { /** * Each transport has a unique name, used to select it * from among the alternatives. Examples might include * "jtag", * "swd", "AVR_ISP" and more. *//* ... */ const char *name; /** * When a transport is selected, this method registers * its commands and activates the transport (e.g. resets * the link). * * After those commands are registered, they will often * be used for further configuration of the debug link. *//* ... */ int (*select)(struct command_context *ctx); /** * server startup uses this method to validate transport * configuration. (For example, with JTAG this interrogates * the scan chain against the list of expected TAPs.) *//* ... */ int (*init)(struct command_context *ctx); /** * Optional. If defined, allows transport to override target * name prior to initialisation. * * @returns ERROR_OK on success, or an error code on failure. *//* ... */ int (*override_target)(const char **targetname); /** * Transports are stored in a singly linked list. *//* ... */ struct transport *next; ...}; int transport_register(struct transport *new_transport); struct transport *get_current_transport(void); int transport_register_commands(struct command_context *ctx); COMMAND_HELPER(transport_list_parse, char ***vector); int allow_transports(struct command_context *ctx, const char * const *vector); bool transport_is_jtag(void); bool transport_is_swd(void); bool transport_is_dapdirect_jtag(void); bool transport_is_dapdirect_swd(void); bool transport_is_swim(void); #if BUILD_HLADAPTER bool transport_is_hla(void); #else static inline bool transport_is_hla(void) { return false; }transport_is_hla (void) { ... } /* ... */#endif /* ... */ #endif /* OPENOCD_TRANSPORT_TRANSPORT_H */
Details
Show:
from
Types: Columns:
Click anywhere in the source to view detailed information here...