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

Last change on this file since 526 was 526, checked in by krille_n_@…, 11 years ago

Changes:

  • Update of the copyright notices to include the year 2013.
File size: 3.0 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
[376]8//
[526]9// XTIDE Universal BIOS and Associated Tools
10// Copyright (C) 2009-2010 by Tomi Tilli, 2011-2013 by XTIDE Universal BIOS Team.
[376]11//
12// This program is free software; you can redistribute it and/or modify
13// it under the terms of the GNU General Public License as published by
14// the Free Software Foundation; either version 2 of the License, or
15// (at your option) any later version.
[526]16//
[376]17// This program is distributed in the hope that it will be useful,
18// but WITHOUT ANY WARRANTY; without even the implied warranty of
19// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
[526]20// GNU General Public License for more details.
[376]21// Visit http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
22//
23
[209]24#ifndef LIBRARY_H_INCLUDED
25#define LIBRARY_H_INCLUDED
26
[277]27#define SERIAL_SERVER_MAJORVERSION 1
28#define SERIAL_SERVER_MINORVERSION 0
29
[219]30void log( int level, char *message, ... );
[209]31
32unsigned long GetTime(void);
33unsigned long GetTime_Timeout(void);
34
35unsigned short checksum( unsigned short *wbuff, int wlen );
36
[259]37struct floppyInfo {
38    unsigned char real;
39    unsigned long size;
40    unsigned char type;
41    unsigned char cylinders;
42    unsigned char heads;
43    unsigned char sectors;
44};
45
46struct floppyInfo *FindFloppyInfoBySize( double size );
47
[209]48class Image
49{
50public:
[219]51    virtual void seekSector( unsigned long lba ) = 0;
[209]52
[219]53    virtual void writeSector( void *buff ) = 0;
[223]54
[219]55    virtual void readSector( void *buff ) = 0;
[209]56
57    Image( char *name, int p_readOnly, int p_drive );
58    Image( char *name, int p_readOnly, int p_drive, int p_create, unsigned long p_lba );
[217]59    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]60
61    virtual ~Image() {};
62
63    unsigned long cyl, sect, head;
[258]64    unsigned char floppy, floppyType;
[217]65    int useCHS;
[209]66
67    unsigned long totallba;
[223]68
[209]69    char *shortFileName;
70    int readOnly;
71    int drive;
72
[217]73    static int parseGeometry( char *str, unsigned long *p_cyl, unsigned long *p_head, unsigned long *p_sect );
[209]74
[277]75    void respondInquire( unsigned short *buff, unsigned short originalPortAndBaud, struct baudRate *baudRate, unsigned short port, unsigned char scan );
[209]76
[217]77    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]78};
79
80struct baudRate {
81    unsigned long rate;
82    unsigned char divisor;
83    char *display;
84};
85struct baudRate *baudRateMatchString( char *str );
86struct baudRate *baudRateMatchDivisor( unsigned char divisor );
87
[219]88#ifdef WIN32
89#include "../win32/win32serial.h"
90#else
[223]91// there is no standard way to read/write and configure the serial port, OS specific only
[219]92#endif
[209]93
[219]94#ifdef WIN32
95#include "../win32/win32file.h"
96#else
97#include "file.h"
98#endif
[209]99
[219]100void processRequests( SerialAccess *serial, Image *image0, Image *image1, int timeoutEnabled, int verboseLevel );
[209]101
102#endif
Note: See TracBrowser for help on using the repository browser.