home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 8 / CDASC08.ISO / VRAC / GT1800S.ZIP / DRAM.H < prev    next >
Encoding:
C/C++ Source or Header  |  1993-05-14  |  7.9 KB  |  213 lines

  1. #define CREATE 0
  2. #define OPEN 1
  3. #define CLOSE 2
  4. #define ADD 3
  5. #define READ 4
  6. #define PURGE 5
  7. #define APPEND 6
  8. #define HASH_READ 7
  9. #define DELETE 8
  10. #define UNDELETE 9
  11. #define STICKY_BIT       0x0001
  12. #define EXPORTED_BIT     0x0002
  13. #define QWK_NETWORK_BIT  0x0004
  14. #define REGISTER register int
  15. #define MAX_CALLER 0x7FFFFFFFL
  16. #define MAX_PID 32
  17.  
  18. typedef unsigned long LONGINTEGER;
  19. typedef unsigned char BOOLEAN;
  20. typedef unsigned char STRING;
  21. typedef unsigned char BYTE;
  22. typedef unsigned int  INTEGER;
  23.  
  24. extern void _fastcall ccitt_crc_calc(unsigned);
  25. extern void _fastcall ccitt_crc32_calc(unsigned);
  26.  
  27. struct old_user_record {
  28.     char      old_user_deleted;
  29.     STRING    old_user_name[31];
  30.     int       old_user_msg_number;
  31.     STRING    old_user_date[9];
  32.     int       old_user_credit;
  33.     STRING    old_user_time[9];
  34.     int       old_user_charges;
  35.     int       old_user_times_on;
  36.     char      old_user_banned;
  37.     char      old_user_expert;
  38.     char      old_user_more;
  39.     STRING    old_user_home[31];
  40.     STRING    old_user_password[21];
  41.     STRING    old_user_phone[11];
  42.     char      old_user_privel;
  43.     char      old_user_day_calls;
  44.     int       old_user_accum_time;
  45. };
  46.  
  47. typedef struct idx_record {
  48.     BOOLEAN   hash_del_flg;
  49.     BOOLEAN   hash_re_used;
  50.     INTEGER   hash_code;
  51.     INTEGER   hash_ptr;
  52. } IDX_RECORD;
  53.  
  54. typedef struct user_record {                       /*  OFFSETS  */
  55.     BOOLEAN      user_deleted;                     /*      0    */
  56.     STRING       user_name[31];                    /*      1    */
  57.     STRING       user_first_date[9];               /*     32    */
  58.     STRING       user_first_time[6];               /*     41    */
  59.     STRING       user_last_date[9];                /*     47    */
  60.     STRING       user_last_time[6];                /*     56    */
  61.     INTEGER      user_credit;                      /*     62    */
  62.     INTEGER      user_charges;                     /*     64    */
  63.     INTEGER      user_times_on;                    /*     66    */
  64.     BOOLEAN      user_banned;                      /*     68    */
  65.     BOOLEAN      user_expert;                      /*     69    */
  66.     BOOLEAN      user_more;                        /*     70    */
  67.     STRING       user_home[31];                    /*     71    */
  68.     STRING       user_phone[11];                   /*    102    */
  69.     STRING       user_password[21];                /*    113    */
  70.     char         user_privel;                      /*    134    */
  71.     INTEGER      user_day_calls;                   /*    135    */
  72.     INTEGER      user_accum_time;                  /*    137    */
  73.     char         user_protocol;                    /*    139    */
  74.     INTEGER      user_screen_lgth;                 /*    140    */
  75.     INTEGER      user_upload_k;                    /*    142    */
  76.     INTEGER      user_upload_files;                /*    144    */
  77.     INTEGER      user_dnload_k;                    /*    146    */
  78.     INTEGER      user_dnload_files;                /*    148    */
  79.     LONGINTEGER  user_caller_no;                   /*    150    */
  80.     INTEGER      user_hash_code;                   /*    154    */
  81.     STRING       user_cb_handle[10];               /*    156    */
  82.     INTEGER      user_expire_date;                 /*    166    */
  83.     int          user_time_bank;                   /*    168    */
  84.     INTEGER      user_day_dnload_k;                /*    170    */
  85.     int          user_day_time_deposits;           /*    172    */
  86.     int          user_day_time_withdrawals;        /*    174    */
  87. } USER_RECORD;
  88.  
  89. struct msg_record {
  90.     BOOLEAN        msg_deleted;
  91.     INTEGER        msg_number;
  92.     STRING         msg_sender[31];
  93.     STRING         msg_addressee[31];
  94.     STRING         msg_topic[31];
  95.     STRING         msg_date[9];
  96.     int            msg_dest_net;
  97.     STRING         msg_time[6];
  98.     BYTE           msg_weekday;
  99.     BYTE           msg_flags;             /*   0x01 - STICKY BIT         */
  100.                       /*   0x02 - EXPORTED BIT       */
  101.                       /*   0x04 - QWK NETWORK BIT    */
  102.     char           msg_filler;
  103.     int            msg_dest_node;
  104.     BYTE           msg_perm_priv;
  105.     BYTE           msg_received;
  106.     INTEGER        msg_reply_no[3];
  107.     INTEGER        msg_orig_no;
  108. };
  109.  
  110. typedef struct {
  111.     BOOLEAN        user_msg_deleted;
  112.     INTEGER        user_msg_prior_read;
  113.     INTEGER        user_msg_highest_scan;
  114.     LONGINTEGER    user_msg_caller_no;
  115.     INTEGER        user_msg_hash_code;
  116.     BOOLEAN        user_msg_banned;
  117.     INTEGER        user_msg_marked[2];
  118. } USER_MSG_RECORD;
  119.  
  120. typedef struct {                              /*       Active Flag        */
  121.     INTEGER        pid_active;                /*                          */
  122.     STRING         pid_name[20];              /*   0 = Inactive           */
  123.     STRING         pid_program[14];           /*   1 = Waiting for call   */
  124.     STRING         pid_function[32];          /*   2 = Caller Online      */
  125.     STRING         pid_callername[32];        /*   3 = Terminal Mode      */
  126.     STRING         pid_curr_msg_path[64];
  127.     STRING         pid_curr_file_path[64];
  128.     BYTE           pid_xnumber;
  129.     BOOLEAN        pid_xmessage_ready;
  130.     STRING         pid_xmessage[80];
  131.     char           pid_cb_handle[10];
  132.     char           pid_filler[64];
  133. } PID_RECORD;
  134.  
  135. typedef struct {
  136.     int                  dram_status;          /*  0=Closed,  1=Open  */
  137.     int                  record_locking;       /*  0=No Lock, 1=Lock  */
  138.     int                  dat_handle;
  139.     LONGINTEGER          datfpos;
  140.     int                  dat_lock_active;
  141.     LONGINTEGER          dat_lock_offset;
  142.     LONGINTEGER          dat_lock_lgth;
  143.     int                  idx_handle;
  144.     LONGINTEGER          idxfpos;
  145.     int                  idx_lock_active;
  146.     LONGINTEGER          idx_lock_offset;
  147.     LONGINTEGER          idx_lock_lgth;
  148.     int                  dat_recsize;
  149.     int                  dat_keypos;
  150.     int                  dat_keytype;
  151.     STRING               string_key[80];          /*    Type 0,2   */
  152.     LONGINTEGER          binary_key;              /*    Type 1     */
  153.     INTEGER              hash_key;
  154.     STRING               dram_path[80];
  155.     STRING               dram_fname[16];
  156.     USER_RECORD far      *user_rec;               /*    Type 0 & 2   */
  157.     USER_MSG_RECORD far  *user_msg_rec;           /*    Type 1       */
  158.     IDX_RECORD far       *idx_rec;
  159. } DRAM;
  160.  
  161. typedef struct {
  162.     BOOLEAN   files_deleted;
  163.     STRING    files_name[31];
  164.     STRING    files_path[61];
  165.     long      files_size;
  166.     char      files_month;
  167.     char      files_day;
  168.     int       files_year;
  169.     BYTE      files_privel[8];
  170.     BOOLEAN   files_offline;
  171.     BOOLEAN   files_cdrom;
  172.     BOOLEAN   files_free_area;
  173. } FILES_RECORD;
  174.  
  175. int dram(int,DRAM far *);
  176. int dram_create(DRAM far *,int);
  177. int dram_open(DRAM far *,int);
  178. int dram_read(DRAM far *,int);
  179. int dram_add(DRAM far *,int);
  180. int dram_close(DRAM far *,int);
  181. int dram_delete(DRAM far *,int);
  182. int dram_undelete(DRAM far *,int);
  183. void idx_expand(DRAM far *);
  184. int re_org(DRAM far *,int);
  185. void backup_idx(DRAM far *);
  186. int fexist(STRING *);
  187. int dexist(STRING *);
  188. DRAM far *allocate_fcb(void);
  189. void release_fcb(DRAM far *);
  190. void lock_dat(DRAM far *,LONGINTEGER,LONGINTEGER);
  191. void lock_idx(DRAM far *,LONGINTEGER,LONGINTEGER);
  192. void unlock_dat(DRAM far *);
  193. void unlock_idx(DRAM far *);
  194. int readfile(int,STRING far *,int);
  195. int writefile(int,STRING far *,int);
  196. int seekfile(int,LONGINTEGER,int);
  197. int o_mode(int);
  198. int createfile(char *);
  199. int closefile(int,char *);
  200. void prt_error(char *,char *);
  201. LONGINTEGER elapsed(LONGINTEGER);
  202. void real_time(LONGINTEGER *);
  203. void dram_slasher(DRAM far *);
  204. void lock_g(int,LONGINTEGER,LONGINTEGER);
  205. void unlock_g(int,LONGINTEGER,LONGINTEGER);
  206.  
  207. extern STRING   copyright1[];
  208. extern STRING   copyright2[];
  209. extern INTEGER  begin_prime;
  210. extern INTEGER  prime[];
  211. extern INTEGER  crc_reg_lo;
  212. extern INTEGER  crc_reg_hi;
  213.