source: xtideuniversalbios/trunk/Serial_Server/library/Library.h @ 219

Last change on this file since 219 was 219, checked in by gregli@…, 12 years ago

Serial Server, more minor improvements, added support for larger than 2 GB disks under Win32

File size: 1.9 KB
RevLine 
[209]1//======================================================================
2//
3// Project:     XTIDE Universal BIOS, Serial Port Server
4//
5// File:        library.h - Include file for users of the library
6//
7
8#ifndef LIBRARY_H_INCLUDED
9#define LIBRARY_H_INCLUDED
10
[219]11void log( int level, char *message, ... );
[209]12
13unsigned long GetTime(void);
14unsigned long GetTime_Timeout(void);
15
16unsigned short checksum( unsigned short *wbuff, int wlen );
17
18class Image
19{
20public:
[219]21    virtual void seekSector( unsigned long lba ) = 0;
[209]22
[219]23    virtual void writeSector( void *buff ) = 0;
[209]24   
[219]25    virtual void readSector( void *buff ) = 0;
[209]26
27    Image( char *name, int p_readOnly, int p_drive );
28    Image( char *name, int p_readOnly, int p_drive, int p_create, unsigned long p_lba );
[217]29    Image( char *name, int p_readOnly, int p_drive, int p_create, unsigned long p_cyl, unsigned long p_head, unsigned long p_sect, int p_useCHS );
[209]30
31    virtual ~Image() {};
32
33    unsigned long cyl, sect, head;
[217]34    int useCHS;
[209]35
36    unsigned long totallba;
37   
38    char *shortFileName;
39    int readOnly;
40    int drive;
41
[217]42    static int parseGeometry( char *str, unsigned long *p_cyl, unsigned long *p_head, unsigned long *p_sect );
[209]43
44    void respondInquire( unsigned short *buff, struct baudRate *baudRate, unsigned char portAndBaud );
45
[217]46    void init( char *name, int p_readOnly, int p_drive, unsigned long p_cyl, unsigned long p_head, unsigned long p_sect, int p_useCHS );
[209]47};
48
49struct baudRate {
50    unsigned long rate;
51    unsigned char divisor;
52    char *display;
53};
54struct baudRate *baudRateMatchString( char *str );
55struct baudRate *baudRateMatchDivisor( unsigned char divisor );
56
[219]57#ifdef WIN32
58#include "../win32/win32serial.h"
59#else
60// there is no standard way to read/write and configure the serial port, OS specifc only
61#endif
[209]62
[219]63#ifdef WIN32
64#include "../win32/win32file.h"
65#else
66#include "file.h"
67#endif
[209]68
[219]69void processRequests( SerialAccess *serial, Image *image0, Image *image1, int timeoutEnabled, int verboseLevel );
[209]70
71#endif
Note: See TracBrowser for help on using the repository browser.