runq.h revision 178172
128861Skato/*-
2139790Simp * Copyright (c) 2001 Jake Burkholder <jake@FreeBSD.org>
328861Skato * All rights reserved.
428861Skato *
528861Skato * Redistribution and use in source and binary forms, with or without
628861Skato * modification, are permitted provided that the following conditions
728861Skato * are met:
828861Skato * 1. Redistributions of source code must retain the above copyright
928861Skato *    notice, this list of conditions and the following disclaimer.
1028861Skato * 2. Redistributions in binary form must reproduce the above copyright
1128861Skato *    notice, this list of conditions and the following disclaimer in the
1228861Skato *    documentation and/or other materials provided with the distribution.
1328861Skato *
1428861Skato * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
1528861Skato * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
1628861Skato * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
1728861Skato * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
1828861Skato * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
1928861Skato * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
2028861Skato * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
2128861Skato * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
2228861Skato * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
2328861Skato * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
2428861Skato * SUCH DAMAGE.
2528861Skato *
2628861Skato *	from: src/sys/i386/include/runq.h,v 1.3 2005/01/06 22:18:15 imp
2728861Skato * $FreeBSD: head/sys/mips/include/runq.h 178172 2008-04-13 07:27:37Z imp $
2828861Skato */
2959490Snyan
3059490Snyan#ifndef _MACHINE_RUNQ_H_
3128861Skato#define	_MACHINE_RUNQ_H_
3228861Skato
3328861Skato#define	RQB_LEN		(2)		/* Number of priority status words. */
3428861Skato#define	RQB_L2BPW	(5)		/* Log2(sizeof(rqb_word_t) * NBBY)). */
3528861Skato#define	RQB_BPW		(1<<RQB_L2BPW)	/* Bits in an rqb_word_t. */
3628861Skato
3728861Skato#define	RQB_BIT(pri)	(1 << ((pri) & (RQB_BPW - 1)))
3828861Skato#define	RQB_WORD(pri)	((pri) >> RQB_L2BPW)
3928861Skato
4028861Skato#define	RQB_FFS(word)	(ffs(word) - 1)
4128861Skato
4228861Skato/*
4328861Skato * Type of run queue status word.
4460938Sjake */
4528861Skatotypedef u_int32_t	rqb_word_t;
4628861Skato
4728861Skato#endif
4828861Skato