Add bit manipulation functions
These functions implement bit manipulation APIs, which will be added to C23, so that in the far future, we will be able to replace our functions by the standard ones, just by adding the stdc_ prefix, and including <stdbit.h>. However, we need to avoid UB for an input of 0, so slightly deviate from C23, and use a different name (with _wrap) for distunguishing our API from the standard one. Cc: Joseph Myers <joseph@codesourcery.com> Cc: Yann Droneaud <ydroneaud@opteya.com> Signed-off-by: Alejandro Colomar <alx@kernel.org>
This commit is contained in:
		
				
					committed by
					
						 Serge Hallyn
						Serge Hallyn
					
				
			
			
				
	
			
			
			
						parent
						
							be1f4f7972
						
					
				
				
					commit
					4a56f2baab
				
			| @@ -12,6 +12,7 @@ libmisc_la_SOURCES = \ | ||||
| 	agetpass.c \ | ||||
| 	audit_help.c \ | ||||
| 	basename.c \ | ||||
| 	bit.c \ | ||||
| 	chkname.c \ | ||||
| 	chkname.h \ | ||||
| 	chowndir.c \ | ||||
|   | ||||
							
								
								
									
										18
									
								
								libmisc/bit.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								libmisc/bit.c
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| /* | ||||
|  * SPDX-FileCopyrightText:  Alejandro Colomar <alx@kernel.org> | ||||
|  * | ||||
|  * SPDX-License-Identifier:  BSD-3-Clause | ||||
|  */ | ||||
|  | ||||
|  | ||||
| #include <config.h> | ||||
|  | ||||
| #ident "$Id$" | ||||
|  | ||||
| #include "bit.h" | ||||
|  | ||||
| #include <limits.h> | ||||
|  | ||||
|  | ||||
| extern inline unsigned long bit_ceil_wrapul(unsigned long x); | ||||
| extern inline int leading_zerosul(unsigned long x); | ||||
		Reference in New Issue
	
	Block a user