math: add math library (currently only log_2)
This commit is contained in:
		
							
								
								
									
										28
									
								
								include/math.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								include/math.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
/*
 | 
			
		||||
    Copyright (C) 2012, Aaron Lindsay <aaron@aclindsay.com>
 | 
			
		||||
 | 
			
		||||
    This file is part of Aedrix.
 | 
			
		||||
 | 
			
		||||
    This program is free software; you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    This program is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License along
 | 
			
		||||
    with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <types.h>
 | 
			
		||||
 | 
			
		||||
#ifndef MATH_H
 | 
			
		||||
#define MATH_H
 | 
			
		||||
 | 
			
		||||
uint32 log(uint32 i);
 | 
			
		||||
 | 
			
		||||
#endif /* MATH_H */
 | 
			
		||||
@@ -9,6 +9,7 @@ OBJS_$(d) := $(d)/atags.o \
 | 
			
		||||
	$(d)/framebuffer.o \
 | 
			
		||||
	$(d)/kmalloc.o \
 | 
			
		||||
	$(d)/list.o \
 | 
			
		||||
	$(d)/math.o \
 | 
			
		||||
	$(d)/mm.o \
 | 
			
		||||
	$(d)/mmu.o \
 | 
			
		||||
	$(d)/print.o \
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								kernel/math.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								kernel/math.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
/*
 | 
			
		||||
    Copyright (C) 2012, Aaron Lindsay <aaron@aclindsay.com>
 | 
			
		||||
 | 
			
		||||
    This file is part of Aedrix.
 | 
			
		||||
 | 
			
		||||
    This program is free software; you can redistribute it and/or modify
 | 
			
		||||
    it under the terms of the GNU General Public License as published by
 | 
			
		||||
    the Free Software Foundation; either version 2 of the License, or
 | 
			
		||||
    (at your option) any later version.
 | 
			
		||||
 | 
			
		||||
    This program is distributed in the hope that it will be useful,
 | 
			
		||||
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
			
		||||
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
			
		||||
    GNU General Public License for more details.
 | 
			
		||||
 | 
			
		||||
    You should have received a copy of the GNU General Public License along
 | 
			
		||||
    with this program; if not, write to the Free Software Foundation, Inc.,
 | 
			
		||||
    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
#include <types.h>
 | 
			
		||||
 | 
			
		||||
uint32 log(uint32 i) {
 | 
			
		||||
	unsigned int l = 1;
 | 
			
		||||
	while ((i = i>>1))
 | 
			
		||||
		l++;
 | 
			
		||||
	return l;
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user