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)/framebuffer.o \
 | 
				
			||||||
	$(d)/kmalloc.o \
 | 
						$(d)/kmalloc.o \
 | 
				
			||||||
	$(d)/list.o \
 | 
						$(d)/list.o \
 | 
				
			||||||
 | 
						$(d)/math.o \
 | 
				
			||||||
	$(d)/mm.o \
 | 
						$(d)/mm.o \
 | 
				
			||||||
	$(d)/mmu.o \
 | 
						$(d)/mmu.o \
 | 
				
			||||||
	$(d)/print.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