1*22028508SToomas Soome /* 2*22028508SToomas Soome * Copyright (c) 2016 Eric McCorkle 3*22028508SToomas Soome * All rights reserved. 4*22028508SToomas Soome * 5*22028508SToomas Soome * Redistribution and use in source and binary forms, with or without 6*22028508SToomas Soome * modification, are permitted provided that the following conditions 7*22028508SToomas Soome * are met: 8*22028508SToomas Soome * 1. Redistributions of source code must retain the above copyright 9*22028508SToomas Soome * notice, this list of conditions and the following disclaimer. 10*22028508SToomas Soome * 2. Redistributions in binary form must reproduce the above copyright 11*22028508SToomas Soome * notice, this list of conditions and the following disclaimer in the 12*22028508SToomas Soome * documentation and/or other materials provided with the distribution. 13*22028508SToomas Soome * 14*22028508SToomas Soome * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15*22028508SToomas Soome * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16*22028508SToomas Soome * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17*22028508SToomas Soome * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18*22028508SToomas Soome * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19*22028508SToomas Soome * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20*22028508SToomas Soome * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21*22028508SToomas Soome * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22*22028508SToomas Soome * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23*22028508SToomas Soome * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24*22028508SToomas Soome * SUCH DAMAGE. 25*22028508SToomas Soome */ 26*22028508SToomas Soome 27*22028508SToomas Soome #include <stdbool.h> 28*22028508SToomas Soome 29*22028508SToomas Soome #ifndef _EFIZFS_H_ 30*22028508SToomas Soome #define _EFIZFS_H_ 31*22028508SToomas Soome 32*22028508SToomas Soome typedef STAILQ_HEAD(zfsinfo_list, zfsinfo) zfsinfo_list_t; 33*22028508SToomas Soome 34*22028508SToomas Soome typedef struct zfsinfo 35*22028508SToomas Soome { 36*22028508SToomas Soome STAILQ_ENTRY(zfsinfo) zi_link; 37*22028508SToomas Soome EFI_HANDLE zi_handle; 38*22028508SToomas Soome uint64_t zi_pool_guid; 39*22028508SToomas Soome } zfsinfo_t; 40*22028508SToomas Soome 41*22028508SToomas Soome extern uint64_t pool_guid; 42*22028508SToomas Soome 43*22028508SToomas Soome extern void efi_zfs_probe(void); 44*22028508SToomas Soome extern zfsinfo_list_t *efizfs_get_zfsinfo_list(void); 45*22028508SToomas Soome extern bool efi_zfs_is_preferred(EFI_HANDLE *h); 46*22028508SToomas Soome extern EFI_HANDLE efizfs_get_handle_by_guid(uint64_t); 47*22028508SToomas Soome extern bool efizfs_get_guid_by_handle(EFI_HANDLE, uint64_t *); 48*22028508SToomas Soome 49*22028508SToomas Soome #endif 50