162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */ 262306a36Sopenharmony_ci#ifndef __BUS_NUMA_H 362306a36Sopenharmony_ci#define __BUS_NUMA_H 462306a36Sopenharmony_ci/* 562306a36Sopenharmony_ci * sub bus (transparent) will use entres from 3 to store extra from 662306a36Sopenharmony_ci * root, so need to make sure we have enough slot there. 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_cistruct pci_root_res { 962306a36Sopenharmony_ci struct list_head list; 1062306a36Sopenharmony_ci struct resource res; 1162306a36Sopenharmony_ci}; 1262306a36Sopenharmony_ci 1362306a36Sopenharmony_cistruct pci_root_info { 1462306a36Sopenharmony_ci struct list_head list; 1562306a36Sopenharmony_ci char name[12]; 1662306a36Sopenharmony_ci struct list_head resources; 1762306a36Sopenharmony_ci struct resource busn; 1862306a36Sopenharmony_ci int node; 1962306a36Sopenharmony_ci int link; 2062306a36Sopenharmony_ci}; 2162306a36Sopenharmony_ci 2262306a36Sopenharmony_ciextern struct list_head pci_root_infos; 2362306a36Sopenharmony_cistruct pci_root_info *alloc_pci_root_info(int bus_min, int bus_max, 2462306a36Sopenharmony_ci int node, int link); 2562306a36Sopenharmony_ciextern void update_res(struct pci_root_info *info, resource_size_t start, 2662306a36Sopenharmony_ci resource_size_t end, unsigned long flags, int merge); 2762306a36Sopenharmony_ci#endif 28