/* 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) *//* ... */#ifndefOPENOCD_TRANSPORT_TRANSPORT_H#defineOPENOCD_TRANSPORT_TRANSPORT_H#ifdefHAVE_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. *//* ... */structtransport{/** * Each transport has a unique name, used to select it * from among the alternatives. Examples might include * "jtag", * "swd", "AVR_ISP" and more. *//* ... */constchar*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)(structcommand_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)(structcommand_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)(constchar**targetname);/** * Transports are stored in a singly linked list. *//* ... */structtransport*next;...};inttransport_register(structtransport*new_transport);structtransport*get_current_transport(void);inttransport_register_commands(structcommand_context*ctx);COMMAND_HELPER(transport_list_parse,char***vector);intallow_transports(structcommand_context*ctx,constchar*const*vector);booltransport_is_jtag(void);booltransport_is_swd(void);booltransport_is_dapdirect_jtag(void);booltransport_is_dapdirect_swd(void);booltransport_is_swim(void);#ifBUILD_HLADAPTERbooltransport_is_hla(void);#elsestaticinlinebooltransport_is_hla(void){returnfalse;}transport_is_hla (void) { ... }/* ... */#endif/* ... */#endif/* OPENOCD_TRANSPORT_TRANSPORT_H */
Details
Show: from
Types: Columns:
All items filtered out
All items filtered out
Click anywhere in the source to view detailed information here...