vm_domain.h revision 285387
1/*- 2 * Copyright (c) 2015 Adrian Chadd <adrian@FreeBSD.org>. 3 * All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 1. Redistributions of source code must retain the above copyright 9 * notice, this list of conditions and the following disclaimer, 10 * without modification. 11 * 2. Redistributions in binary form must reproduce at minimum a disclaimer 12 * similar to the "NO WARRANTY" disclaimer below ("Disclaimer") and any 13 * redistribution must be conditioned upon including a substantially 14 * similar Disclaimer requirement for further binary redistribution. 15 * 16 * NO WARRANTY 17 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 18 * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 19 * LIMITED TO, THE IMPLIED WARRANTIES OF NONINFRINGEMENT, MERCHANTIBILITY 20 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL 21 * THE COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, 22 * OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 23 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 24 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 25 * IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 26 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF 27 * THE POSSIBILITY OF SUCH DAMAGES. 28 * 29 * $FreeBSD: head/sys/vm/vm_domain.h 285387 2015-07-11 15:21:37Z adrian $ 30 */ 31#ifndef __VM_DOMAIN_H__ 32#define __VM_DOMAIN_H__ 33 34#include <sys/_vm_domain.h> 35 36struct vm_domain_iterator { 37 vm_domain_policy_type_t policy; 38 int domain; 39 int n; 40}; 41 42/* 43 * TODO: check to see if these should just become inline functions 44 * at some point. 45 */ 46extern int vm_domain_policy_init(struct vm_domain_policy *vp); 47extern int vm_domain_policy_set(struct vm_domain_policy *vp, 48 vm_domain_policy_type_t vt, int domain); 49extern int vm_domain_policy_cleanup(struct vm_domain_policy *vp); 50extern void vm_domain_policy_localcopy(struct vm_domain_policy *dst, 51 const struct vm_domain_policy *src); 52extern void vm_domain_policy_copy(struct vm_domain_policy *dst, 53 const struct vm_domain_policy *src); 54extern int vm_domain_policy_validate(const struct vm_domain_policy *vp); 55 56extern int vm_domain_iterator_init(struct vm_domain_iterator *vi); 57extern int vm_domain_iterator_set(struct vm_domain_iterator *vi, 58 vm_domain_policy_type_t vt, int domain); 59extern void vm_domain_iterator_set_policy(struct vm_domain_iterator *vi, 60 const struct vm_domain_policy *vt); 61extern int vm_domain_iterator_run(struct vm_domain_iterator *vi, 62 int *domain); 63extern int vm_domain_iterator_isdone(struct vm_domain_iterator *vi); 64extern int vm_domain_iterator_cleanup(struct vm_domain_iterator *vi); 65 66#endif /* __VM_DOMAIN_H__ */ 67