diff options
Diffstat (limited to 'sftsr.h')
-rw-r--r-- | sftsr.h | 32 |
1 files changed, 23 insertions, 9 deletions
@@ -26,30 +26,44 @@ #include "vbox.h" #include "int21dos.h" -#define VERSION_MAJOR 0 -#define VERSION_MINOR 1 - #define LASTDRIVE 'Z' #define MAX_NUM_DRIVE (LASTDRIVE - 'A') #define NUM_DRIVES (MAX_NUM_DRIVE + 1) -typedef struct tsrdata { +/** Maximum number of open files */ +#define NUM_FILES 40 + +/** Directory enumeration needs an open file, this is its index. */ +#define SEARCH_DIR_FILE 0 + +typedef struct { + uint32_t root; + uint64_t handle; +} OPENFILE; + +typedef struct { // TSR installation data /** Previous int2f ISR, storing it for uninstall. */ void (__interrupt __far *prev_int2f_handler)(); + /** Stored pointer for the DOS SDA. */ + DOSSDA __far *dossda; + + // TSR configuration + /** Offset (in seconds/2) of the current timezone */ + int32_t tz_offset; + // Current status /** Array of all possible DOS drives. */ struct { /** VirtualBox "root" for this drive, or NIL if unmounted. */ uint32_t root; } drives[NUM_DRIVES]; - /** Stored pointer for the DOS SDA. */ - DOSSDA __far *dossda; - - /** Handle for the directory we are currently searching in. */ - uint64_t search_dir_handle; + /** All currently open files. + * index 0 is reserved for the file opened during directory enumeration. */ + OPENFILE files[NUM_FILES]; + // VirtualBox communication struct vboxcomm vb; uint32_t hgcm_client_id; } TSRDATA; |