1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78
|
/* File: disk.h
* Author: Fred Wobus (fw@sanger.ac.uk)
* Copyright (c) J Thierry-Mieg and R Durbin, 1999
* -------------------------------------------------------------------
* Acedb 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 2
* 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, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
* or see the on-line version at http://www.gnu.org/copyleft/gpl.txt
* -------------------------------------------------------------------
* This file is part of the ACEDB genome database package, written by
* Richard Durbin (Sanger Centre, UK) rd@sanger.ac.uk, and
* Jean Thierry-Mieg (CRBM du CNRS, France) mieg@kaa.crbm.cnrs-mop.fr
*
* Description: public functions of disksubs.c
* handling the disk.
* Exported functions:
* HISTORY:
* Last edited: Sep 21 11:55 1999 (edgrif)
* * Sep 21 11:55 1999 (edgrif): added prototype for diskSetSyncWrite
* Created: Thu Aug 26 17:12:07 1999 (fw)
* CVS info: $Id: disk.h,v 1.12 2000/03/02 15:32:00 srk Exp $
*-------------------------------------------------------------------
*/
#ifndef ACEDB_DISK_H
#define ACEDB_DISK_H
#ifndef DEF_BP
#define DEF_BP
typedef void* BP ;
#endif
#ifndef DEF_DISK
#define DEF_DISK
typedef KEY DISK; /*holds disk addresses as 4 bytes unsined int */
#define NULLDISK 0
#endif /* DEF_DISK */
void diskPrepare (void) ;
/*To be called once in the disk lifetime*/
/*prepares DISKSIZE blocks of storage and the*/
/*corresponding BAT file */
void diskSave (void) ;
/* Rewrites the Block allocation table BAT*/
/* of the main database file */
void diskWriteSuperBlock (BP bp) ;
void aDiskReadSuperBlock(BP bp); /* General database management */
void diskavail (int *free,int *used, int *plus, int *minus, int *dread, int *dwrite) ;
/*gives disk statistics*/
void diskalloc (BP bp);
/*modifies the BAT and gives a free block address*/
/* in sequence */
void diskfree (BP bp) ;
/* returns d to the BAT */
void diskSetSyncWrite(void) ; /* Sets synchronous disk writing on. */
void diskblockread (BP p,DISK d) ; /* reads a block from disk */
void diskblockwrite (BP p) ; /* writes a block to disk */
BOOL dataBaseCreate (void) ;
void dataBaseAccessInit (void) ;
void diskFlushLocalCache(void);
BOOL saveAll(void) ;
void diskFuseOedipeBats(Array fPlusArray, Array fMinusArray) ;
BOOL diskFuseBats(KEY fPlus, KEY fMinus,
KEY sPlus, KEY sMinus,
int *nPlusp, int *nMinusp) ;
#endif /* !ACEDB_DISK_H */
|