1265625Smarcel/*- 2265625Smarcel * Copyright (c) 2014 Juniper Networks, Inc. 3265625Smarcel * All rights reserved. 4265625Smarcel * 5265625Smarcel * Redistribution and use in source and binary forms, with or without 6265625Smarcel * modification, are permitted provided that the following conditions 7265625Smarcel * are met: 8265625Smarcel * 1. Redistributions of source code must retain the above copyright 9265625Smarcel * notice, this list of conditions and the following disclaimer. 10265625Smarcel * 2. Redistributions in binary form must reproduce the above copyright 11265625Smarcel * notice, this list of conditions and the following disclaimer in the 12265625Smarcel * documentation and/or other materials provided with the distribution. 13265625Smarcel * 14265625Smarcel * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND 15265625Smarcel * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 16265625Smarcel * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 17265625Smarcel * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE 18265625Smarcel * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 19265625Smarcel * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 20265625Smarcel * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 21265625Smarcel * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 22265625Smarcel * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 23265625Smarcel * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 24265625Smarcel * SUCH DAMAGE. 25265625Smarcel * 26265625Smarcel * $FreeBSD$ 27265625Smarcel */ 28265625Smarcel 29265625Smarcel#ifndef _MKIMG_FORMAT_H_ 30265625Smarcel#define _MKIMG_FORMAT_H_ 31265625Smarcel 32265625Smarcel#include <sys/linker_set.h> 33265625Smarcel 34265625Smarcelstruct mkimg_format { 35265625Smarcel const char *name; 36265625Smarcel const char *description; 37266039Smarcel int (*resize)(lba_t); 38265625Smarcel int (*write)(int); 39265625Smarcel}; 40265625Smarcel 41265625SmarcelSET_DECLARE(formats, struct mkimg_format); 42265625Smarcel#define FORMAT_DEFINE(nm) DATA_SET(formats, nm) 43265625Smarcel 44266039Smarcelint format_resize(lba_t); 45265625Smarcelint format_select(const char *); 46265625Smarcelstruct mkimg_format *format_selected(void); 47265718Smarcelint format_write(int); 48265625Smarcel 49265625Smarcel#endif /* _MKIMG_FORMAT_H_ */ 50