diff src/g23m-aci/aci/db_int.h @ 1:fa8dc04885d8

src/g23m-*: import from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Fri, 16 Oct 2020 06:25:50 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/g23m-aci/aci/db_int.h	Fri Oct 16 06:25:50 2020 +0000
@@ -0,0 +1,143 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  PHB
+|  Modul   :  DBM
++----------------------------------------------------------------------------- 
+|  Copyright 2005 Texas Instruments Berlin, AG 
+|                 All rights reserved. 
+| 
+|                 This file is confidential and a trade secret of Texas 
+|                 Instruments Berlin, AG 
+|                 The receipt of or possession of this file does not convey 
+|                 any rights to reproduce or disclose its contents or to 
+|                 manufacture, use, or sell anything it may describe, in 
+|                 whole, or in part, without the specific written consent of 
+|                 Texas Instruments Berlin, AG. 
++----------------------------------------------------------------------------- 
+|  Purpose :  Internal declarations for DBM module
++----------------------------------------------------------------------------- 
+*/ 
+#ifndef DB_INT_H
+#define DB_INT_H
+
+#include "db.h"
+
+/* This macro allows us to close the file before
+   returning from function */
+#define FFS_OPEN_PROBLEM_PATCH
+
+/* If this macro is activated, we close earlier activated file
+   before opening next file */
+#define FFS_CLOSE_BEFORE_OPEN
+
+/* Mutually exclusive macros */
+#ifdef FFS_CLOSE_BEFORE_OPEN
+#undef FFS_OPEN_PROBLEM_PATCH
+#endif
+
+#ifdef FFS_CLOSE_BEFORE_OPEN
+
+  #define MAX_OPEN_READ_PER_DB 2
+  #define MAX_OPEN_WRITE_PER_DB 1
+
+#endif
+
+#ifdef _SIMULATION_
+  #include "ffs_pc_api.h"
+#else
+  #include "ffs/ffs.h"
+#endif
+
+#include "vsi.h"
+#include "aci_mem.h"
+
+#define RECORD_BITMAP_SIZE      32  /* Based on MAX_NUM_RECORDS 
+                                        RECORD_BITMAP_SIZE = MAX_NUM_RECORDS/8*/
+#define MAX_LEN_DIRECTORY       16  /* Assumed to be max 16 characters        */
+
+
+/* 
+    DBM state 
+ */
+typedef enum
+{
+  
+  DBM_NOT_INITIALISED = 0, 
+  DBM_INITIALISED 
+
+} T_DBM_STATE;
+
+/* 
+    Database state 
+*/
+typedef enum
+{ 
+
+  CLOSED = 0, 
+  OPEN,
+  IN_USE,
+  UNUSED_ENTRY = 0xFF
+
+} T_DB_STATE;
+
+#ifdef FFS_CLOSE_BEFORE_OPEN
+
+typedef struct
+{
+
+  UBYTE    fld_ctr;
+  T_FFS_FD filehandle;
+
+} FileHandleRecord;
+
+#endif
+
+/* 
+    Field record
+ */
+typedef struct
+{
+
+  USHORT    FieldID;                                /* Elementary file identifier                           */
+  T_DB_TYPE DBType;                                 /* database type (UNMANAGED, FREELIST)                  */
+  USHORT    RecordSize;                             /* Size of data in data base record                     */
+  UBYTE     NumOfRecords;                           /* Number of records                                    */
+  UBYTE     UsedRecords;                            /* Number of used records                               */
+  UBYTE     RecordBitMap [RECORD_BITMAP_SIZE];      /* Bitmap representing whether record is present or not */
+  BOOL      Clean;                                  /* File consistency                                     */
+  UBYTE     SortIndexList [MAX_NUM_OF_SORT_INDEXS]; /* Number of associated index files                     */
+  UBYTE*    SortedLists [MAX_NUM_OF_SORT_INDEXS];   /* Sorted lists                                         */
+
+#ifndef FFS_CLOSE_BEFORE_OPEN
+  T_FFS_FD  FFSFileHandle;                          /* FFS File Handle for User file                        */
+#endif
+
+  UBYTE     NextRecordNum;                          /* To take care of non-seqential write                  */
+
+} T_DBM_FIELDRECORD;
+
+
+typedef struct 
+{
+
+  UBYTE               DBDirectory[MAX_LEN_DIRECTORY]; /* Directory path                                       */
+  UBYTE               NumOfFiles;                     /* Maximum files in that database                       */
+  UBYTE               UsedFiles;                      /* Number of used files                                 */
+  BOOL                Clean;                          /* Clean: Database is consistent                        */
+  BOOL                Tracked;                        /* Tracked: History log to be maintained                */
+  T_DB_STATE          DBState;                        /* Database state                                       */
+
+  T_FFS_FD            FFSFileHandle;                  /* FFS File Handle for DD_<db_handle>                   */
+
+#ifdef FFS_CLOSE_BEFORE_OPEN
+  FileHandleRecord READ_OPEN_FIELDS [MAX_OPEN_READ_PER_DB];   /* fields opened for read only                  */
+  FileHandleRecord WRITE_OPEN_FIELDS [MAX_OPEN_WRITE_PER_DB]; /* fields opened for read/write both            */
+  UBYTE  old_read;                                            /* remeber oldest open                          */
+  UBYTE  old_write;                                           /* remeber oldest read                          */
+#endif
+
+  T_DBM_FIELDRECORD*  ptrFieldRecord;                 /* pointer to fields                                    */
+
+} T_DBM_MASTERRECORD;
+
+#endif