OpenCores
URL https://opencores.org/ocsvn/c0or1k/c0or1k/trunk

Subversion Repositories c0or1k

[/] [c0or1k/] [trunk/] [conts/] [libl4/] [include/] [l4lib/] [lib/] [bit.h] - Rev 5

Go to most recent revision | Compare with Previous | Blame | View Log

#ifndef __BIT_H__
#define __BIT_H__
 
#include <l4lib/types.h>
 
unsigned int __clz(unsigned int bitvector);
int find_and_set_first_free_bit(u32 *word, unsigned int lastbit);
int find_and_set_first_free_contig_bits(u32 *word,  unsigned int limit,
					int nbits);
int check_and_clear_bit(u32 *word, int bit);
int check_and_clear_contig_bits(u32 *word, int first, int nbits);
 
int check_and_set_bit(u32 *word, int bit);
 
/* Set */
static inline void setbit(unsigned int *w, unsigned int flags)
{
	*w |= flags;
}
 
 
/* Clear */
static inline void clrbit(unsigned int *w, unsigned int flags)
{
	*w &= ~flags;
}
 
/* Test */
static inline int tstbit(unsigned int *w, unsigned int flags)
{
	return *w & flags;
}
 
/* Test and clear */
static inline int tstclr(unsigned int *w, unsigned int flags)
{
	int res = tstbit(w, flags);
 
	clrbit(w, flags);
 
	return res;
}
 
#endif /* __BIT_H__ */
 

Go to most recent revision | Compare with Previous | Blame | View Log

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.