diff options
Diffstat (limited to 'chudisk.h')
| -rw-r--r-- | chudisk.h | 90 |
1 files changed, 0 insertions, 90 deletions
diff --git a/chudisk.h b/chudisk.h deleted file mode 100644 index f3761fb..0000000 --- a/chudisk.h +++ /dev/null @@ -1,90 +0,0 @@ -/* - * CHU - driver for CH375 in disk mode - * Copyright (C) 2024 Javier S. Pedro - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see <https://www.gnu.org/licenses/>. - */ - -#ifndef CHUDISK_H -#define CHUDISK_H - -#include <stdbool.h> - -#include "inc/dosdrv.h" - -#define MAX_UNITS 4 - -#define SECTOR_SIZE 512 - -// Configuration values shared between driver init code and resident code -/* Used by ch375.h, too. */ -extern unsigned short ch375_port; - -extern unsigned char num_units; - -extern bool read_only; - -extern bool show_fat32; - -extern struct chudisk_data -{ - /** Pointers to all BPBs, to return to DOS during init. */ - DOS_BPB * bpb_ptrs[MAX_UNITS]; - - /** Whether we are ready to handle IO, i.e. disk init, partitions scanned. */ - bool ready; - - uint32_t sectors; - uint32_t bytesPerSector; - - struct chudisk_unit { - /** Whether the partition exists (start_sector points to it) */ - bool exists; - /** Note in theory may be zero (superfloppy) */ - uint32_t start_sector; - /** Number of sectors for this partition. */ - uint32_t sectors; - /** Whether the partition's BPB was loaded. */ - bool ready; - /** DOS device params (contains BPB), only valid if 'ready'. */ - DOS_BPB bpb; - } unit[MAX_UNITS]; -} data; - -// Functions called by both init part and resident part -extern void driver_init(DOS_DRS __far *drs); - -extern char resident_end; - -extern uint8_t wait_for_ch375_result(unsigned int max_ticks); - - -// CHUDISK IOCTLs -// These are used with the DISK major -// TODO Not sure we can really happily add custom minors here, -// but then again DOS outright refuses to accept any other major -enum CHUDISK_IOCTL_DISK_MINOR { - CHUDISK_IOCTL_DISK_READ_ABS_SECTOR = 0xC1 -}; - -typedef _Packed union CHUDISK_IOCTL_DISK_DATA -{ - struct CHUDISK_RWABSSECTOR { - uint32_t sector; - uint8_t sectors; - void far * buffer; - } rwabs; -} CHUDISK_IOCTL_DISK_DATA; - -#endif // CHUDISK_H |
