summaryrefslogtreecommitdiffstats
path: root/c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>1999-08-11 23:45:57 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>1999-08-11 23:45:57 +0000
commit1d4048b236f1ca4ee555de04ca1b8d1492434670 (patch)
tree19ba7b2e04b8576d685a274a04cc720e56e6adfc /c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c
parentFinal update from Santanu Mitra <smitra@cs.uah.edu>, T.N.S. Prasad (diff)
downloadrtems-1d4048b236f1ca4ee555de04ca1b8d1492434670.tar.bz2
Patch from Tony R. Ambardar <tonya@ece.ubc.ca>:
I'm attaching a big patch for the ts_386ex BSP which adds and includes the following: 1) Conversion to ELF format + minor code cleanups + documentation. 2) An Ada95 binding to FreeBSD sockets, based on Samuel Tardieu's adasockets-0.1.3 package. This includes some sample applications. 3) Some Ada and C interfaces to add serial-port debugging to programs. Comes with examples, too; the Ada one shows how transparent adding the support can be. Note that Rosimildo sent me the original C code. The network stuff is not BSP specific, and could be added to your Ada code collection. The debugging stuff is specific to the i386. Right now, everything sits in my "tools" directory.
Diffstat (limited to 'c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c')
-rw-r--r--c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c85
1 files changed, 85 insertions, 0 deletions
diff --git a/c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c b/c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c
new file mode 100644
index 0000000000..0f52a84156
--- /dev/null
+++ b/c/src/lib/libbsp/i386/ts_386ex/tools/debug_ada/init.c
@@ -0,0 +1,85 @@
+/*
+ * COPYRIGHT (c) 1989-1997.
+ * On-Line Applications Research Corporation (OAR).
+ * Copyright assigned to U.S. Government, 1994.
+ *
+ * The license and distribution terms for this file may be found in
+ * the file LICENSE in this distribution or at
+ * http://www.OARcorp.com/rtems/license.html.
+ *
+ * $Id$
+ */
+
+#include <bsp.h>
+
+#include <assert.h>
+#include <pthread.h>
+
+#include <stdio.h>
+
+#ifdef GNAT_PID
+#include <unistd.h>
+pid_t getpid()
+{
+ return GNAT_PID;
+}
+#endif
+
+/*
+ * By having the POSIX_Init thread create a second thread just
+ * to invoke gnat_main, we can override all default attributes
+ * of the "Ada environment task". Otherwise, we would be
+ * stuck with the defaults set by RTEMS.
+ */
+
+void *start_gnat_main( void * argument )
+{
+ extern int gnat_main ( int argc, char **argv, char **envp );
+
+ (void) gnat_main ( 0, 0, 0 );
+
+ exit( 0 );
+
+ return 0;
+}
+
+void *POSIX_Init( void *argument )
+{
+ pthread_t thread_id;
+ pthread_attr_t attr;
+ int status;
+
+ status = pthread_attr_init( &attr );
+ assert( !status );
+
+#ifdef GNAT_MAIN_STACKSPACE
+ status = pthread_attr_setstacksize( &attr, GNAT_MAIN_STACKSPACE );
+ assert( !status );
+#endif
+
+ status = pthread_create( &thread_id, &attr, start_gnat_main, NULL );
+ assert( !status );
+
+ pthread_exit( 0 );
+
+ return 0;
+}
+
+/* configuration information */
+
+#define CONFIGURE_TEST_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_TEST_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_POSIX_INIT_THREAD_TABLE
+
+#define CONFIGURE_MICROSECONDS_PER_TICK RTEMS_MILLISECONDS_TO_MICROSECONDS(1)
+
+#define CONFIGURE_MAXIMUM_POSIX_THREADS 20
+#define CONFIGURE_MAXIMUM_POSIX_KEYS 20
+#define CONFIGURE_MAXIMUM_POSIX_MUTEXES 30
+#define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES 20
+
+#define CONFIGURE_INIT
+
+#include <confdefs.h>
+