186714001SSerapheim Dimitropoulos /* 286714001SSerapheim Dimitropoulos * CDDL HEADER START 386714001SSerapheim Dimitropoulos * 486714001SSerapheim Dimitropoulos * The contents of this file are subject to the terms of the 586714001SSerapheim Dimitropoulos * Common Development and Distribution License (the "License"). 686714001SSerapheim Dimitropoulos * You may not use this file except in compliance with the License. 786714001SSerapheim Dimitropoulos * 886714001SSerapheim Dimitropoulos * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 986714001SSerapheim Dimitropoulos * or http://www.opensolaris.org/os/licensing. 1086714001SSerapheim Dimitropoulos * See the License for the specific language governing permissions 1186714001SSerapheim Dimitropoulos * and limitations under the License. 1286714001SSerapheim Dimitropoulos * 1386714001SSerapheim Dimitropoulos * When distributing Covered Code, include this CDDL HEADER in each 1486714001SSerapheim Dimitropoulos * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 1586714001SSerapheim Dimitropoulos * If applicable, add the following below this CDDL HEADER, with the 1686714001SSerapheim Dimitropoulos * fields enclosed by brackets "[]" replaced with your own identifying 1786714001SSerapheim Dimitropoulos * information: Portions Copyright [yyyy] [name of copyright owner] 1886714001SSerapheim Dimitropoulos * 1986714001SSerapheim Dimitropoulos * CDDL HEADER END 2086714001SSerapheim Dimitropoulos */ 2186714001SSerapheim Dimitropoulos 2286714001SSerapheim Dimitropoulos /* 2386714001SSerapheim Dimitropoulos * Copyright (c) 2017 by Delphix. All rights reserved. 2486714001SSerapheim Dimitropoulos */ 2586714001SSerapheim Dimitropoulos 2686714001SSerapheim Dimitropoulos #ifndef _SYS_SPA_CHECKPOINT_H 2786714001SSerapheim Dimitropoulos #define _SYS_SPA_CHECKPOINT_H 2886714001SSerapheim Dimitropoulos 2986714001SSerapheim Dimitropoulos #include <sys/zthr.h> 3086714001SSerapheim Dimitropoulos 3186714001SSerapheim Dimitropoulos typedef struct spa_checkpoint_info { 3286714001SSerapheim Dimitropoulos uint64_t sci_timestamp; /* when checkpointed uberblock was synced */ 3386714001SSerapheim Dimitropoulos uint64_t sci_dspace; /* disk space used by checkpoint in bytes */ 3486714001SSerapheim Dimitropoulos } spa_checkpoint_info_t; 3586714001SSerapheim Dimitropoulos 3686714001SSerapheim Dimitropoulos int spa_checkpoint(const char *); 3786714001SSerapheim Dimitropoulos int spa_checkpoint_discard(const char *); 3886714001SSerapheim Dimitropoulos 3986714001SSerapheim Dimitropoulos boolean_t spa_checkpoint_discard_thread_check(void *, zthr_t *); 40*6a316e1fSSerapheim Dimitropoulos void spa_checkpoint_discard_thread(void *, zthr_t *); 4186714001SSerapheim Dimitropoulos 4286714001SSerapheim Dimitropoulos int spa_checkpoint_get_stats(spa_t *, pool_checkpoint_stat_t *); 4386714001SSerapheim Dimitropoulos 4486714001SSerapheim Dimitropoulos #endif /* _SYS_SPA_CHECKPOINT_H */ 45