1/* 2 * Thunderbolt Cactus Ridge driver - PCIe tunnel 3 * 4 * Copyright (c) 2014 Andreas Noever <andreas.noever@gmail.com> 5 */ 6 7#ifndef TB_PCI_H_ 8#define TB_PCI_H_ 9 10#include "tb.h" 11 12struct tb_pci_tunnel { 13 struct tb *tb; 14 struct tb_port *up_port; 15 struct tb_port *down_port; 16 struct tb_path *path_to_up; 17 struct tb_path *path_to_down; 18 struct list_head list; 19}; 20 21struct tb_pci_tunnel *tb_pci_alloc(struct tb *tb, struct tb_port *up, 22 struct tb_port *down); 23void tb_pci_free(struct tb_pci_tunnel *tunnel); 24int tb_pci_activate(struct tb_pci_tunnel *tunnel); 25int tb_pci_restart(struct tb_pci_tunnel *tunnel); 26void tb_pci_deactivate(struct tb_pci_tunnel *tunnel); 27bool tb_pci_is_invalid(struct tb_pci_tunnel *tunnel); 28 29#endif 30 31