xref: /netbsd/sys/sys/pset.h (revision 1de55b63)
1*1de55b63Sad /*	$NetBSD: pset.h,v 1.7 2019/11/21 17:54:04 ad Exp $	*/
25c71a4d4Srmind 
35c71a4d4Srmind /*
45c71a4d4Srmind  * Copyright (c) 2008, Mindaugas Rasiukevicius <rmind at NetBSD org>
55c71a4d4Srmind  * All rights reserved.
65c71a4d4Srmind  *
75c71a4d4Srmind  * Redistribution and use in source and binary forms, with or without
85c71a4d4Srmind  * modification, are permitted provided that the following conditions
95c71a4d4Srmind  * are met:
105c71a4d4Srmind  * 1. Redistributions of source code must retain the above copyright
115c71a4d4Srmind  *    notice, this list of conditions and the following disclaimer.
125c71a4d4Srmind  * 2. Redistributions in binary form must reproduce the above copyright
135c71a4d4Srmind  *    notice, this list of conditions and the following disclaimer in the
145c71a4d4Srmind  *    documentation and/or other materials provided with the distribution.
155c71a4d4Srmind  *
1606171502Srmind  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1706171502Srmind  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1806171502Srmind  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1906171502Srmind  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
2006171502Srmind  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
2106171502Srmind  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2206171502Srmind  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2306171502Srmind  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2406171502Srmind  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2506171502Srmind  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2606171502Srmind  * SUCH DAMAGE.
275c71a4d4Srmind  */
285c71a4d4Srmind 
295c71a4d4Srmind #ifndef _SYS_PSET_H_
305c71a4d4Srmind #define _SYS_PSET_H_
315c71a4d4Srmind 
325c71a4d4Srmind #include <sys/cdefs.h>
33ff677693Sjoerg #include <sys/featuretest.h>
345c71a4d4Srmind #include <sys/types.h>
351abafffcSchristos #include <sys/idtype.h>
365c71a4d4Srmind 
375c71a4d4Srmind /* Types of processor-sets */
385c71a4d4Srmind #define	PS_NONE			0
395c71a4d4Srmind #define	PS_MYID			-1
405c71a4d4Srmind #define	PS_QUERY		-2
415c71a4d4Srmind 
425c71a4d4Srmind __BEGIN_DECLS
435c71a4d4Srmind int	pset_assign(psetid_t, cpuid_t, psetid_t *);
445c71a4d4Srmind int	pset_bind(psetid_t, idtype_t, id_t, psetid_t *);
455c71a4d4Srmind int	pset_create(psetid_t *);
465c71a4d4Srmind int	pset_destroy(psetid_t);
475c71a4d4Srmind __END_DECLS
485c71a4d4Srmind 
495c71a4d4Srmind #ifdef _NETBSD_SOURCE
505c71a4d4Srmind int	_pset_bind(idtype_t, id_t, id_t, psetid_t, psetid_t *);
515c71a4d4Srmind #endif	/* _NETBSD_SOURCE */
525c71a4d4Srmind 
535c71a4d4Srmind #ifdef _KERNEL
545c71a4d4Srmind 
555c71a4d4Srmind /* Processor-set structure */
565c71a4d4Srmind typedef struct {
575c71a4d4Srmind 	int		ps_flags;
585c71a4d4Srmind } pset_info_t;
595c71a4d4Srmind 
605c71a4d4Srmind void	psets_init(void);
615c71a4d4Srmind 
625c71a4d4Srmind #endif	/* _KERNEL */
635c71a4d4Srmind 
645c71a4d4Srmind #endif	/* _SYS_PSET_H_ */
65