1*d5c9a868SElliott Hughes #ifndef MTOOLS_OLDDOS_H 2*d5c9a868SElliott Hughes #define MTOOLS_OLDDOS_H 3*d5c9a868SElliott Hughes /* Copyright 2021 Alain Knaff. 4*d5c9a868SElliott Hughes * This file is part of mtools. 5*d5c9a868SElliott Hughes * 6*d5c9a868SElliott Hughes * Mtools is free software: you can redistribute it and/or modify 7*d5c9a868SElliott Hughes * it under the terms of the GNU General Public License as published by 8*d5c9a868SElliott Hughes * the Free Software Foundation, either version 3 of the License, or 9*d5c9a868SElliott Hughes * (at your option) any later version. 10*d5c9a868SElliott Hughes * 11*d5c9a868SElliott Hughes * Mtools is distributed in the hope that it will be useful, 12*d5c9a868SElliott Hughes * but WITHOUT ANY WARRANTY; without even the implied warranty of 13*d5c9a868SElliott Hughes * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14*d5c9a868SElliott Hughes * GNU General Public License for more details. 15*d5c9a868SElliott Hughes * 16*d5c9a868SElliott Hughes * You should have received a copy of the GNU General Public License 17*d5c9a868SElliott Hughes * along with Mtools. If not, see <http://www.gnu.org/licenses/>. 18*d5c9a868SElliott Hughes */ 19*d5c9a868SElliott Hughes 20*d5c9a868SElliott Hughes #include "device.h" 21*d5c9a868SElliott Hughes 22*d5c9a868SElliott Hughes struct OldDos_t { 23*d5c9a868SElliott Hughes unsigned int tracks; 24*d5c9a868SElliott Hughes uint16_t sectors; 25*d5c9a868SElliott Hughes uint16_t heads; 26*d5c9a868SElliott Hughes 27*d5c9a868SElliott Hughes uint16_t dir_len; 28*d5c9a868SElliott Hughes uint8_t cluster_size; 29*d5c9a868SElliott Hughes uint32_t fat_len; 30*d5c9a868SElliott Hughes 31*d5c9a868SElliott Hughes uint8_t media; 32*d5c9a868SElliott Hughes }; 33*d5c9a868SElliott Hughes 34*d5c9a868SElliott Hughes extern struct OldDos_t *getOldDosBySize(size_t size); 35*d5c9a868SElliott Hughes extern struct OldDos_t *getOldDosByMedia(int media); 36*d5c9a868SElliott Hughes extern struct OldDos_t *getOldDosByParams(unsigned int tracks, 37*d5c9a868SElliott Hughes unsigned int heads, 38*d5c9a868SElliott Hughes unsigned int sectors, 39*d5c9a868SElliott Hughes unsigned int dir_len, 40*d5c9a868SElliott Hughes unsigned int cluster_size); 41*d5c9a868SElliott Hughes int setDeviceFromOldDos(int media, struct device *dev); 42*d5c9a868SElliott Hughes 43*d5c9a868SElliott Hughes #endif 44