home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_08_12
/
8n12043a
< prev
next >
Wrap
Text File
|
1990-10-15
|
2KB
|
86 lines
/*
* BLOCK.H
*
* common references for block device driver
*/
/*
* status bits for the return code
*/
#define UNKNOWN_COMMAND 3
#define ERROR 0x8000
#define DONE 0x0100
#define BUSY 0x0200
#define BLK_NOT_FOUND 8
#define MAX_BLK 256 /* 256 blocks */
#define BLK_SIZE 256 /* 256 bytes/block */
/*------------- global variables -------------*/
/* the transfer address specified in
the request header */
extern int far *transfer;
/* the count specified in the request header */
extern int count;
/* counter */
extern int k1;
/* counter */
extern int k2;
/* offset for normalization */
extern unsigned offset;
/* source pointer */
extern int far *source;
/* destination pointer */
extern int far *dest;
/* command specified in request header */
extern char command;
/* start block specified in request header */
extern int start;
extern struct parm_block /* parameter block */
{
unsigned bps; /* bytes per block */
char spau; /* blocks per allocation unit */
unsigned nrs; /* number of reserved blocks */
char nfat; /* number of file allocation tables */
unsigned rent; /* number of root directory entries */
unsigned tns; /* total number of blocks */
char mdb; /* media descriptor byte */
unsigned nsfat; /* number of blocks per FAT */
} bpb,
bpb_tab [ ];
/*
* pointer to the request header
*/
extern struct request_header
{
char rlength;
char unit;
char command;
unsigned status;
char reserved [ 8 ];
char data;
union
{
char far *transfer;
char media_change_code;
} b14;
union
{
struct parm_block far *bpb;
struct
{
unsigned count;
unsigned start;
} io;
} b18;
} far *rh;
extern int ram_disk [ ];