Path: blob/main/sys/compat/linuxkpi/common/src/linux_domain.c
39586 views
/*-1* Copyright (c) 2021 NVIDIA Networking2* All rights reserved.3*4* Redistribution and use in source and binary forms, with or without5* modification, are permitted provided that the following conditions6* are met:7* 1. Redistributions of source code must retain the above copyright8* notice unmodified, this list of conditions, and the following9* disclaimer.10* 2. Redistributions in binary form must reproduce the above copyright11* notice, this list of conditions and the following disclaimer in the12* documentation and/or other materials provided with the distribution.13*14* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR15* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES16* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.17* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,18* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT19* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,20* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY21* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT22* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF23* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.24*/2526#include <sys/param.h>27#include <sys/systm.h>28#include <sys/domainset.h>29#include <sys/bus.h>3031#include <linux/compat.h>32#include <linux/device.h>3334struct domainset *35linux_get_vm_domain_set(int node)36{37KASSERT(node < MAXMEMDOM, ("Invalid VM domain %d", node));3839if (node < 0)40return (DOMAINSET_RR());41else42return (DOMAINSET_PREF(node));43}4445int46linux_dev_to_node(struct device *dev)47{48int numa_domain;4950if (dev == NULL || dev->bsddev == NULL ||51bus_get_domain(dev->bsddev, &numa_domain) != 0)52return (-1);53else54return (numa_domain);55}565758