| /* SPDX-License-Identifier: GPL-2.0 */ | 
 | /* | 
 |  * Thunderbolt Cactus Ridge driver - PCIe tunnel | 
 |  * | 
 |  * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com> | 
 |  */ | 
 |  | 
 | #ifndef TB_PCI_H_ | 
 | #define TB_PCI_H_ | 
 |  | 
 | #include "tb.h" | 
 |  | 
 | struct tb_pci_tunnel { | 
 | 	struct tb *tb; | 
 | 	struct tb_port *up_port; | 
 | 	struct tb_port *down_port; | 
 | 	struct tb_path *path_to_up; | 
 | 	struct tb_path *path_to_down; | 
 | 	struct list_head list; | 
 | }; | 
 |  | 
 | struct tb_pci_tunnel *tb_pci_alloc(struct tb *tb, struct tb_port *up, | 
 | 				   struct tb_port *down); | 
 | void tb_pci_free(struct tb_pci_tunnel *tunnel); | 
 | int tb_pci_activate(struct tb_pci_tunnel *tunnel); | 
 | int tb_pci_restart(struct tb_pci_tunnel *tunnel); | 
 | void tb_pci_deactivate(struct tb_pci_tunnel *tunnel); | 
 | bool tb_pci_is_invalid(struct tb_pci_tunnel *tunnel); | 
 |  | 
 | #endif | 
 |  |