mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-10-31 03:58:17 +00:00 
			
		
		
		
	Signed-off-by: Wolfgang Denk <wd@denx.de> [trini: Fixup common/cmd_io.c] Signed-off-by: Tom Rini <trini@ti.com>
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*
 | |
|  *  GRUB  --  GRand Unified Bootloader
 | |
|  *  Copyright (C) 1999,2000,2001,2002,2003,2004  Free Software Foundation, Inc.
 | |
|  *
 | |
|  * SPDX-License-Identifier:	GPL-2.0+
 | |
|  */
 | |
| /*
 | |
|  * Copyright (c) 2007, 2011, Oracle and/or its affiliates. All rights reserved.
 | |
|  */
 | |
| 
 | |
| #ifndef	GRUB_ZFS_HEADER
 | |
| #define	GRUB_ZFS_HEADER 1
 | |
| 
 | |
| 
 | |
| /*
 | |
|  * On-disk version number.
 | |
|  */
 | |
| #define	SPA_VERSION			28ULL
 | |
| 
 | |
| /*
 | |
|  * The following are configuration names used in the nvlist describing a pool's
 | |
|  * configuration.
 | |
|  */
 | |
| #define	ZPOOL_CONFIG_VERSION		"version"
 | |
| #define	ZPOOL_CONFIG_POOL_NAME		"name"
 | |
| #define	ZPOOL_CONFIG_POOL_STATE		"state"
 | |
| #define	ZPOOL_CONFIG_POOL_TXG		"txg"
 | |
| #define	ZPOOL_CONFIG_POOL_GUID		"pool_guid"
 | |
| #define	ZPOOL_CONFIG_CREATE_TXG		"create_txg"
 | |
| #define	ZPOOL_CONFIG_TOP_GUID		"top_guid"
 | |
| #define	ZPOOL_CONFIG_VDEV_TREE		"vdev_tree"
 | |
| #define	ZPOOL_CONFIG_TYPE		"type"
 | |
| #define	ZPOOL_CONFIG_CHILDREN		"children"
 | |
| #define	ZPOOL_CONFIG_ID			"id"
 | |
| #define	ZPOOL_CONFIG_GUID		"guid"
 | |
| #define	ZPOOL_CONFIG_PATH		"path"
 | |
| #define	ZPOOL_CONFIG_DEVID		"devid"
 | |
| #define	ZPOOL_CONFIG_METASLAB_ARRAY	"metaslab_array"
 | |
| #define	ZPOOL_CONFIG_METASLAB_SHIFT	"metaslab_shift"
 | |
| #define	ZPOOL_CONFIG_ASHIFT		"ashift"
 | |
| #define	ZPOOL_CONFIG_ASIZE		"asize"
 | |
| #define	ZPOOL_CONFIG_DTL		"DTL"
 | |
| #define	ZPOOL_CONFIG_STATS		"stats"
 | |
| #define	ZPOOL_CONFIG_WHOLE_DISK		"whole_disk"
 | |
| #define	ZPOOL_CONFIG_ERRCOUNT		"error_count"
 | |
| #define	ZPOOL_CONFIG_NOT_PRESENT	"not_present"
 | |
| #define	ZPOOL_CONFIG_SPARES		"spares"
 | |
| #define	ZPOOL_CONFIG_IS_SPARE		"is_spare"
 | |
| #define	ZPOOL_CONFIG_NPARITY		"nparity"
 | |
| #define	ZPOOL_CONFIG_PHYS_PATH		"phys_path"
 | |
| #define	ZPOOL_CONFIG_L2CACHE		"l2cache"
 | |
| #define	ZPOOL_CONFIG_HOLE_ARRAY		"hole_array"
 | |
| #define	ZPOOL_CONFIG_VDEV_CHILDREN	"vdev_children"
 | |
| #define	ZPOOL_CONFIG_IS_HOLE		"is_hole"
 | |
| #define	ZPOOL_CONFIG_DDT_HISTOGRAM	"ddt_histogram"
 | |
| #define	ZPOOL_CONFIG_DDT_OBJ_STATS	"ddt_object_stats"
 | |
| #define	ZPOOL_CONFIG_DDT_STATS		"ddt_stats"
 | |
| /*
 | |
|  * The persistent vdev state is stored as separate values rather than a single
 | |
|  * 'vdev_state' entry.  This is because a device can be in multiple states, such
 | |
|  * as offline and degraded.
 | |
|  */
 | |
| #define	ZPOOL_CONFIG_OFFLINE		"offline"
 | |
| #define	ZPOOL_CONFIG_FAULTED		"faulted"
 | |
| #define	ZPOOL_CONFIG_DEGRADED		"degraded"
 | |
| #define	ZPOOL_CONFIG_REMOVED		"removed"
 | |
| 
 | |
| #define	VDEV_TYPE_ROOT			"root"
 | |
| #define	VDEV_TYPE_MIRROR		"mirror"
 | |
| #define	VDEV_TYPE_REPLACING		"replacing"
 | |
| #define	VDEV_TYPE_RAIDZ			"raidz"
 | |
| #define	VDEV_TYPE_DISK			"disk"
 | |
| #define	VDEV_TYPE_FILE			"file"
 | |
| #define	VDEV_TYPE_MISSING		"missing"
 | |
| #define	VDEV_TYPE_HOLE			"hole"
 | |
| #define	VDEV_TYPE_SPARE			"spare"
 | |
| #define	VDEV_TYPE_L2CACHE		"l2cache"
 | |
| 
 | |
| /*
 | |
|  * pool state.  The following states are written to disk as part of the normal
 | |
|  * SPA lifecycle: ACTIVE, EXPORTED, DESTROYED, SPARE, L2CACHE.  The remaining
 | |
|  * states are software abstractions used at various levels to communicate pool
 | |
|  * state.
 | |
|  */
 | |
| typedef enum pool_state {
 | |
| 	POOL_STATE_ACTIVE = 0,		/* In active use		*/
 | |
| 	POOL_STATE_EXPORTED,		/* Explicitly exported		*/
 | |
| 	POOL_STATE_DESTROYED,		/* Explicitly destroyed		*/
 | |
| 	POOL_STATE_SPARE,		/* Reserved for hot spare use	*/
 | |
| 	POOL_STATE_L2CACHE,		/* Level 2 ARC device		*/
 | |
| 	POOL_STATE_UNINITIALIZED,	/* Internal spa_t state		*/
 | |
| 	POOL_STATE_UNAVAIL,		/* Internal libzfs state	*/
 | |
| 	POOL_STATE_POTENTIALLY_ACTIVE	/* Internal libzfs state	*/
 | |
| } pool_state_t;
 | |
| 
 | |
| struct zfs_data;
 | |
| 
 | |
| int zfs_fetch_nvlist(device_t dev, char **nvlist);
 | |
| int zfs_getmdnobj(device_t dev, const char *fsfilename,
 | |
| 			       uint64_t *mdnobj);
 | |
| 
 | |
| char *zfs_nvlist_lookup_string(char *nvlist, char *name);
 | |
| char *zfs_nvlist_lookup_nvlist(char *nvlist, char *name);
 | |
| int zfs_nvlist_lookup_uint64(char *nvlist, char *name,
 | |
| 				   uint64_t *out);
 | |
| char *zfs_nvlist_lookup_nvlist_array(char *nvlist, char *name,
 | |
| 					   size_t index);
 | |
| int zfs_nvlist_lookup_nvlist_array_get_nelm(char *nvlist, char *name);
 | |
| 
 | |
| #endif	/* ! GRUB_ZFS_HEADER */
 |