/* * 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