1*6e45676fSthorpej /* $NetBSD: evboards.h,v 1.2 2019/09/19 01:25:29 thorpej Exp $ */ 202d67d10Sthorpej 302d67d10Sthorpej /*- 402d67d10Sthorpej * Copyright (c) 2019 The NetBSD Foundation, Inc. 502d67d10Sthorpej * All rights reserved. 602d67d10Sthorpej * 702d67d10Sthorpej * This code is derived from software contributed to The NetBSD Foundation 802d67d10Sthorpej * by Jason R. Thorpe. 902d67d10Sthorpej * 1002d67d10Sthorpej * Redistribution and use in source and binary forms, with or without 1102d67d10Sthorpej * modification, are permitted provided that the following conditions 1202d67d10Sthorpej * are met: 1302d67d10Sthorpej * 1. Redistributions of source code must retain the above copyright 1402d67d10Sthorpej * notice, this list of conditions and the following disclaimer. 1502d67d10Sthorpej * 2. Redistributions in binary form must reproduce the above copyright 1602d67d10Sthorpej * notice, this list of conditions and the following disclaimer in the 1702d67d10Sthorpej * documentation and/or other materials provided with the distribution. 1802d67d10Sthorpej * 1902d67d10Sthorpej * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2002d67d10Sthorpej * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2102d67d10Sthorpej * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2202d67d10Sthorpej * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2302d67d10Sthorpej * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2402d67d10Sthorpej * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2502d67d10Sthorpej * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2602d67d10Sthorpej * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2702d67d10Sthorpej * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2802d67d10Sthorpej * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2902d67d10Sthorpej * POSSIBILITY OF SUCH DAMAGE. 3002d67d10Sthorpej */ 3102d67d10Sthorpej 3202d67d10Sthorpej #ifndef installboot_evboards_h_included 3302d67d10Sthorpej #define installboot_evboards_h_included 3402d67d10Sthorpej 3502d67d10Sthorpej #include <stdio.h> 3602d67d10Sthorpej #include <prop/proplib.h> 3702d67d10Sthorpej 3802d67d10Sthorpej typedef prop_dictionary_t evb_board; 3902d67d10Sthorpej typedef prop_array_t evb_ubinstall; 4002d67d10Sthorpej typedef prop_object_iterator_t evb_ubsteps; 4102d67d10Sthorpej typedef prop_dictionary_t evb_ubstep; 4202d67d10Sthorpej 4302d67d10Sthorpej bool evb_db_load(ib_params *); 4402d67d10Sthorpej evb_board evb_db_get_board(ib_params *); 4502d67d10Sthorpej void evb_db_list_boards(ib_params *, FILE *); 4602d67d10Sthorpej 4702d67d10Sthorpej const char * evb_board_get_description(ib_params *, evb_board); 4802d67d10Sthorpej const char * evb_board_get_uboot_pkg(ib_params *, evb_board); 4902d67d10Sthorpej const char * evb_board_get_uboot_path(ib_params *, evb_board); 5002d67d10Sthorpej evb_ubinstall evb_board_get_uboot_install(ib_params *, evb_board); 5102d67d10Sthorpej prop_array_t evb_board_copy_uboot_media(ib_params *, evb_board); 5202d67d10Sthorpej 5302d67d10Sthorpej evb_ubsteps evb_ubinstall_get_steps(ib_params *, evb_ubinstall); 5402d67d10Sthorpej 5502d67d10Sthorpej evb_ubstep evb_ubsteps_next_step(ib_params *, evb_ubsteps); 5602d67d10Sthorpej 5702d67d10Sthorpej const char * evb_ubstep_get_file_name(ib_params *, evb_ubstep); 5802d67d10Sthorpej uint64_t evb_ubstep_get_file_offset(ib_params *, evb_ubstep); 5902d67d10Sthorpej uint64_t evb_ubstep_get_file_size(ib_params *, evb_ubstep); 6002d67d10Sthorpej uint64_t evb_ubstep_get_image_offset(ib_params *, evb_ubstep); 61*6e45676fSthorpej uint64_t evb_ubstep_get_input_block_size(ib_params *, evb_ubstep); 62*6e45676fSthorpej uint64_t evb_ubstep_get_input_pad_size(ib_params *, evb_ubstep); 63*6e45676fSthorpej uint64_t evb_ubstep_get_output_size(ib_params *, evb_ubstep); 64*6e45676fSthorpej uint64_t evb_ubstep_get_output_block_size(ib_params *, evb_ubstep); 6502d67d10Sthorpej bool evb_ubstep_preserves_partial_block(ib_params *, evb_ubstep); 6602d67d10Sthorpej 6702d67d10Sthorpej int evb_uboot_setboot(ib_params *, evb_board); 6802d67d10Sthorpej 6902d67d10Sthorpej #endif /* installboot_evboards_h_included */ 70