diff gsm-fw/ccd/cdt.c @ 648:970d6199f2c5

gsm-fw/ccd/*.[ch]: initial import from the LoCosto source
author Michael Spacefalcon <msokolov@ivan.Harhan.ORG>
date Thu, 04 Sep 2014 05:48:57 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/gsm-fw/ccd/cdt.c	Thu Sep 04 05:48:57 2014 +0000
@@ -0,0 +1,158 @@
+/* 
++----------------------------------------------------------------------------- 
+|  Project :  
+|  Modul   : cdt.c
++----------------------------------------------------------------------------- 
+|  Copyright 2002 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 :  Ccddata tool. Delivers informations from ccddata_dll.dll.
++----------------------------------------------------------------------------- 
+*/ 
+
+/*==== INCLUDES =============================================================*/
+#include "typedefs.h"
+#include "ccdtable.h"
+#include "ccddata.h"
+
+#include <stdio.h>
+#include <string.h>
+
+static char*
+#include "ccddata_version.h"
+;
+
+/*==== CONSTS ================================================================*//*==== TYPES =================================================================*/
+/*==== LOCALS ================================================================*/
+static int       ccddata_version;
+static int       ccddata_table_version;
+static char*     cdt_ccddata_dllname;
+/*==== PRIVATE FUNCTIONS =====================================================*/
+/*
++------------------------------------------------------------------------------
+|  Function     :  parse_cmdline
++------------------------------------------------------------------------------
+|  Description  :  Checks options and parameters.
+|
+|  Parameters   :  Argc and argv from main.
+|
+|  Return       :  0 if correct cmdline, -1 otherwise.
+|                  
++------------------------------------------------------------------------------
+*/
+static int parse_cmdline (int argc, char* argv[])
+{
+  int ac = 1;
+
+  if (argc < 2)
+    return -1;
+
+  while (ac < argc)
+  {
+    char* av;
+    av = argv[ac];
+    switch (av[0])
+    {
+      case '-':
+        if (!strcmp (&av[1], "cdv"))          /* Ccddata version */
+        {
+          ccddata_version = 1;
+        }
+        else if (!strcmp (&av[1], "tv"))     /* Table version */
+        {
+          ccddata_table_version = 1;
+        }
+        else if (!strcmp (&av[1], "l"))     /* Cccdata dll */
+        {
+          ++ac;
+          cdt_ccddata_dllname = argv[ac];
+        }
+        else
+        {
+          fprintf (stderr, "Unknown option: %s\n", av);
+          return -1;
+        }
+        break;
+      default:
+        return -1;
+    }
+    ac++;
+  }
+  return 0;
+}
+
+
+/*
++------------------------------------------------------------------------------
+|  Function     :  usage
++------------------------------------------------------------------------------
+|  Description  :  Print usage information.
+|
+|  Parameters   :  tapname - The name of the tap executable.
+|
+|  Return       :  -
+|                  
++------------------------------------------------------------------------------
+*/
+
+static void usage (char* cdtname)
+{
+  fprintf (stderr, "Usage: %s [options]\n", cdtname);
+  fprintf (stderr, " Options:\n");
+  fprintf (stderr, "  -cdv: print version of ccddata dll\n");
+  fprintf (stderr, "  -tv: print version ccddata tables\n");
+  fprintf (stderr, "  -l <ccddata-dll>: select dedicated ccddata dll\n");
+}
+
+/*==== PUBLIC FUNCTIONS ======================================================*/
+
+/*
++------------------------------------------------------------------------------
+|  Function     :  main
++------------------------------------------------------------------------------
+|  Description  :  The start into happiness.
+|
+|  Parameters   :  As usual. See parse_cmdline() and usage() for details. 
+|
+|  Return       :  0
+|                  
++------------------------------------------------------------------------------
+*/
+
+int main (int argc, char** argv)
+{
+  printf ("Ccddata tool %s\n", CCDDATA_VERSION);
+
+  if (parse_cmdline (argc, argv) < 0)
+  {
+    char *cdtbase;
+    cdtbase = strrchr (argv[0], '\\');
+    if (!cdtbase)
+      cdtbase = strrchr (argv[0], '/');
+    usage (cdtbase ? cdtbase+1 : argv[0]);
+    return -1;
+  }
+
+  if (ccddata_init (cdt_ccddata_dllname, 0, NULL, NULL) != CCDDATA_DLL_OK)
+  {
+    fprintf (stderr, "Cannot load ccddata dll");
+    return -1;
+  }
+
+  if (ccddata_version)
+    printf ("Version: %s\n", ccddata_get_version());
+  if (ccddata_table_version)
+    printf ("Table version: %d\n", ccddata_get_table_version());
+
+  ccddata_exit ();
+
+  return 0;
+}