mirror of
				https://xff.cz/git/u-boot/
				synced 2025-10-31 02:15:45 +01:00 
			
		
		
		
	common: Provide DIV_ROUND_CLOSEST macro
Provide the DIV_ROUND_CLOSEST macro - taken from the Linux kernel - in common.h Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com> Signed-off-by: Michal Simek <michal.simek@xilinx.com>
This commit is contained in:
		
				
					committed by
					
						 Michal Simek
						Michal Simek
					
				
			
			
				
	
			
			
			
						parent
						
							bf83495040
						
					
				
				
					commit
					23d5c73866
				
			| @@ -964,6 +964,22 @@ static inline phys_addr_t map_to_sysmem(const void *ptr) | |||||||
| #define DIV_ROUND_UP(n,d)	(((n) + (d) - 1) / (d)) | #define DIV_ROUND_UP(n,d)	(((n) + (d) - 1) / (d)) | ||||||
| #define roundup(x, y)		((((x) + ((y) - 1)) / (y)) * (y)) | #define roundup(x, y)		((((x) + ((y) - 1)) / (y)) * (y)) | ||||||
|  |  | ||||||
|  | /* | ||||||
|  |  * Divide positive or negative dividend by positive divisor and round | ||||||
|  |  * to closest integer. Result is undefined for negative divisors and | ||||||
|  |  * for negative dividends if the divisor variable type is unsigned. | ||||||
|  |  */ | ||||||
|  | #define DIV_ROUND_CLOSEST(x, divisor)(			\ | ||||||
|  | {							\ | ||||||
|  | 	typeof(x) __x = x;				\ | ||||||
|  | 	typeof(divisor) __d = divisor;			\ | ||||||
|  | 	(((typeof(x))-1) > 0 ||				\ | ||||||
|  | 	 ((typeof(divisor))-1) > 0 || (__x) > 0) ?	\ | ||||||
|  | 		(((__x) + ((__d) / 2)) / (__d)) :	\ | ||||||
|  | 		(((__x) - ((__d) / 2)) / (__d));	\ | ||||||
|  | }							\ | ||||||
|  | ) | ||||||
|  |  | ||||||
| #define ALIGN(x,a)		__ALIGN_MASK((x),(typeof(x))(a)-1) | #define ALIGN(x,a)		__ALIGN_MASK((x),(typeof(x))(a)-1) | ||||||
| #define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask)) | #define __ALIGN_MASK(x,mask)	(((x)+(mask))&~(mask)) | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user