mirror of
				https://gitlab.com/qemu-project/qemu.git
				synced 2025-10-30 07:57:14 +08:00 
			
		
		
		
	 5551449bb8
			
		
	
	5551449bb8
	
	
	
		
			
			Parameter @id is no longer used, drop. Return a bool to indicate success / failure, as recommended by qapi/error.h. Signed-off-by: Markus Armbruster <armbru@redhat.com> Message-ID: <20241010150144.986655-4-armbru@redhat.com> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org>
		
			
				
	
	
		
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			45 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  * Block utility functions
 | |
|  *
 | |
|  * Copyright IBM, Corp. 2011
 | |
|  * Copyright (c) 2020 Coiby Xu <coiby.xu@gmail.com>
 | |
|  *
 | |
|  * This work is licensed under the terms of the GNU GPL, version 2 or later.
 | |
|  * See the COPYING file in the top-level directory.
 | |
|  */
 | |
| 
 | |
| #include "qemu/osdep.h"
 | |
| #include "qapi/error.h"
 | |
| #include "block-helpers.h"
 | |
| 
 | |
| /**
 | |
|  * check_block_size:
 | |
|  * @name: The name of the property being validated
 | |
|  * @value: The block size in bytes
 | |
|  * @errp: A pointer to an area to store an error
 | |
|  *
 | |
|  * This function checks that the block size meets the following conditions:
 | |
|  * 1. At least MIN_BLOCK_SIZE
 | |
|  * 2. No larger than MAX_BLOCK_SIZE
 | |
|  * 3. A power of 2
 | |
|  *
 | |
|  * Returns: true on success, false on failure
 | |
|  */
 | |
| bool check_block_size(const char *name, int64_t value, Error **errp)
 | |
| {
 | |
|     if (!value) {
 | |
|         /* unset */
 | |
|         return true;
 | |
|     }
 | |
| 
 | |
|     if (value < MIN_BLOCK_SIZE || value > MAX_BLOCK_SIZE
 | |
|         || (value & (value - 1))) {
 | |
|         error_setg(errp,
 | |
|                    "parameter %s must be a power of 2 between %" PRId64
 | |
|                    " and %" PRId64,
 | |
|                    name, MIN_BLOCK_SIZE, MAX_BLOCK_SIZE);
 | |
|         return false;
 | |
|     }
 | |
|     return true;
 | |
| }
 |