1*8b94819bSkrw /* $OpenBSD: mkfs_msdos.h,v 1.6 2016/12/17 16:43:30 krw Exp $ */ 272290da1Snatano /* $NetBSD: mkfs_msdos.h,v 1.3 2015/10/16 17:38:17 christos Exp $ */ 372290da1Snatano 472290da1Snatano /*- 572290da1Snatano * Copyright (c) 2013 The NetBSD Foundation, Inc. 672290da1Snatano * All rights reserved. 772290da1Snatano * 872290da1Snatano * This code is derived from software contributed to The NetBSD Foundation 972290da1Snatano * by Christos Zoulas. 1072290da1Snatano * 1172290da1Snatano * Redistribution and use in source and binary forms, with or without 1272290da1Snatano * modification, are permitted provided that the following conditions 1372290da1Snatano * are met: 1472290da1Snatano * 1. Redistributions of source code must retain the above copyright 1572290da1Snatano * notice, this list of conditions and the following disclaimer. 1672290da1Snatano * 2. Redistributions in binary form must reproduce the above copyright 1772290da1Snatano * notice, this list of conditions and the following disclaimer in the 1872290da1Snatano * documentation and/or other materials provided with the distribution. 1972290da1Snatano * 2072290da1Snatano * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS 2172290da1Snatano * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED 2272290da1Snatano * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 2372290da1Snatano * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS 2472290da1Snatano * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2572290da1Snatano * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2672290da1Snatano * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2772290da1Snatano * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2872290da1Snatano * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2972290da1Snatano * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 3072290da1Snatano * POSSIBILITY OF SUCH DAMAGE. 3172290da1Snatano */ 3272290da1Snatano 3372290da1Snatano #include <sys/types.h> 3422e2f6a1Snatano 3572290da1Snatano #define ALLOPTS \ 3640854474Snatano AOPT(uint16_t, backup_sector, 1) \ 3740854474Snatano AOPT(uint32_t, block_size, 1) \ 3840854474Snatano AOPT(char *, bootstrap, -1) \ 3940854474Snatano AOPT(uint16_t, bytes_per_sector, 1) \ 4040854474Snatano AOPT(off_t, create_size, 0) \ 4140854474Snatano AOPT(uint16_t, directory_entries, 1) \ 4240854474Snatano AOPT(uint16_t, drive_heads, 1) \ 4340854474Snatano AOPT(uint8_t, fat_type, 12) \ 4440854474Snatano AOPT(char *, floppy, -1) \ 4540854474Snatano AOPT(uint32_t, hidden_sectors, 0) \ 4640854474Snatano AOPT(uint16_t, info_sector, 1) \ 4740854474Snatano AOPT(uint8_t, media_descriptor, 0) \ 4840854474Snatano AOPT(uint8_t, num_FAT, 1) \ 4940854474Snatano AOPT(char *, OEM_string, -1) \ 5040854474Snatano AOPT(off_t, offset, 0) \ 5140854474Snatano AOPT(uint16_t, reserved_sectors, 1) \ 5240854474Snatano AOPT(uint8_t, sectors_per_cluster, 1) \ 5340854474Snatano AOPT(uint32_t, sectors_per_fat, 1) \ 5440854474Snatano AOPT(uint16_t, sectors_per_track, 1) \ 5540854474Snatano AOPT(uint32_t, size, 1) \ 5640854474Snatano AOPT(uint32_t, volume_id, 0) \ 5740854474Snatano AOPT(char *, volume_label, -1) 5872290da1Snatano 5972290da1Snatano struct msdos_options { 6040854474Snatano #define AOPT(_type, _name, _min) _type _name; 6172290da1Snatano ALLOPTS 6272290da1Snatano #undef AOPT 6372290da1Snatano uint32_t volume_id_set:1; 6472290da1Snatano uint32_t media_descriptor_set:1; 6572290da1Snatano uint32_t hidden_sectors_set:1; 6672290da1Snatano }; 6772290da1Snatano 6872290da1Snatano int mkfs_msdos(const char *, const char *, const struct msdos_options *); 69