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 12 struct 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 21 struct tb_pci_tunnel *tb_pci_alloc(struct tb *tb, struct tb_port *up, 22 struct tb_port *down); 23 void tb_pci_free(struct tb_pci_tunnel *tunnel); 24 int tb_pci_activate(struct tb_pci_tunnel *tunnel); 25 int tb_pci_restart(struct tb_pci_tunnel *tunnel); 26 void tb_pci_deactivate(struct tb_pci_tunnel *tunnel); 27 bool tb_pci_is_invalid(struct tb_pci_tunnel *tunnel); 28 29 #endif 30 31