math: add math library (currently only log_2)
This commit is contained in:
		| @@ -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