2 copyright (c) 1999 William R. Pearson
5 /* $Name: fa_34_26_5 $ - $Id: mm_file.h,v 1.26 2006/10/05 18:20:40 wrp Exp $ */
8 mm_file.h - defines m_file_str for mmap()ed files
11 #include <sys/types.h>
20 typedef off_t fseek_t;
28 typedef __int64 int64_t;
29 typedef unsigned __int64 uint64_t;
32 typedef unsigned long uint64_t;
36 typedef int64_t MM_OFF;
49 FILE *libf; /* sequence file being read */
50 FILE *hfile; /* BLAST2.0 description file */
51 unsigned int *oid_list; /* oid list for subsets */
52 int oid_seqs; /* start offset for mask array */
53 int pref_db; /* preferred database */
54 unsigned int max_oid; /* start offset for mask array */
56 char lb_name[120]; /* file name */
57 int lb_type; /* library type */
58 int *sascii; /* ascii -> sq mapping */
60 /* used by flat files */
61 char *lline; /* last line read */
62 unsigned char *cpsave; /* position in line for lgetlib() */
63 fseek_t lpos; /* position in file */
65 /* Genbank Flat files */
66 int lfflag; /* flag for CRLF in EMBL CDROM files */
68 /* stuff for GCG format files (5,6) */
69 int gcg_binary; /* flag for binary gcg format */
70 long gcg_len; /* length of GCG sequence */
72 int bl_lib_pos; /* for ncbl2 */
73 int bl_format_ver; /* blast formatdb version */
74 char opt_text[MAX_FN]; /* text after filename */
76 /* used when memory mapping */
77 int mm_flg; /* mmap worked */
78 int mmap_fd; /* mmap_fd */
79 char *mmap_base; /* base */
80 char *mmap_addr; /* current pos */
81 long st_size; /* file size */
83 MM_OFF *d_pos_arr; /* pointer to desc. offsets */
84 MM_OFF *s_pos_arr; /* pointer to seq. offsets */
85 MM_OFF *a_pos_arr; /* pointer to aux offsets */
87 /* currently available only for memory mapped files */
88 int max_cnt; /* # database entries */
89 int64_t tot_len; /* total residue length */
90 long max_len; /* maximum sequence lengh */
91 int lib_aa; /* 0 = DNA, 1 = prot */
92 char *tmp_buf; /* temporary buffer */
93 int tmp_buf_max; /* max size */
95 /* used for SQL database queries */
96 char *sql_db, *sql_query, *sql_getdesc, *sql_getseq;
98 char **sql_uid_arr; /* indexed by lpos */
99 /* used to get sequence data */
103 /* used to open the database */
105 MYSQL_RES *mysql_res;
110 /* used to open the database */
115 int (*getlib)(unsigned char *seq, int maxs,
116 char *libstr, int n_libstr,
119 struct lmf_str *lm_fd,
122 void (*ranlib)(char *str, int cnt,
123 fseek_t libpos, char *libstr,
124 struct lmf_str *lm_fd);