[OSADL-svn-commits] r5 - in fddi-20070618-1-ptx1: . config config/autoconf config/m4 include src tests

OSADL repository commits osadl-svn-commits at lists.osadl.org
Tue Oct 2 11:41:19 CEST 2007


Author: robert
Date: Mon Jun 18 21:44:10 2007
New Revision: 5

Log:
started autotoolization

Added:
   fddi-20070618-1-ptx1/GNUmakefile.am
   fddi-20070618-1-ptx1/autogen.sh   (contents, props changed)
   fddi-20070618-1-ptx1/config/
   fddi-20070618-1-ptx1/config/GNUmakefile.am
   fddi-20070618-1-ptx1/config/autoconf/
   fddi-20070618-1-ptx1/config/fddi.pc.in
   fddi-20070618-1-ptx1/config/m4/
   fddi-20070618-1-ptx1/config/m4/.secret-world-domination-project
   fddi-20070618-1-ptx1/config/m4/acx_pthread.m4
   fddi-20070618-1-ptx1/configure.ac
   fddi-20070618-1-ptx1/include/
   fddi-20070618-1-ptx1/include/GNUmakefile.am
   fddi-20070618-1-ptx1/include/fddi.h
   fddi-20070618-1-ptx1/include/fddistuff.h
   fddi-20070618-1-ptx1/src/GNUmakefile.am
   fddi-20070618-1-ptx1/src/libfddi.c
   fddi-20070618-1-ptx1/tests/
   fddi-20070618-1-ptx1/tests/GNUmakefile.am
   fddi-20070618-1-ptx1/tests/test.c
Modified:
   fddi-20070618-1-ptx1/src/fddi.c

Added: fddi-20070618-1-ptx1/GNUmakefile.am
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/GNUmakefile.am	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,23 @@
+SUBDIRS = include config src tests
+
+EXTRA_DIST = \
+	autogen.sh \
+	config/m4/.secret-world-domination-project
+
+MAINTAINERCLEANFILES = \
+	configure \
+	GNUmakefile.in \
+	aclocal.m4 \
+	config/autoconf/compile \
+	config/autoconf/config.guess \
+	config/autoconf/config.sub \
+	config/autoconf/depcomp \
+	config/autoconf/install-sh \
+	config/autoconf/ltmain.sh \
+	config/autoconf/mdate-sh \
+	config/autoconf/missing \
+	config/autoconf/texinfo.tex \
+	config/m4/libtool.m4 \
+	config/m4/ltoptions.m4 \
+	config/m4/ltsugar.m4 \
+	config/m4/ltversion.m4

Added: fddi-20070618-1-ptx1/autogen.sh
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/autogen.sh	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,48 @@
+#!/bin/bash
+
+#
+# usage:
+#
+# banner <target name>
+#
+banner() {
+	echo
+	TG=`echo $1 | sed -e "s,/.*/,,g"`
+	LINE=`echo $TG |sed -e "s/./-/g"`
+	echo $LINE
+	echo $TG
+	echo $LINE
+	echo
+}
+
+
+ACLOCAL=${ACLOCAL:=aclocal}
+AUTOHEADER=${AUTOHEADER:=autoheader}
+AUTOMAKE=${AUTOMAKE:=automake}
+AUTOCONF=${AUTOCONF:=autoconf}
+
+#$ACLOCAL --version | \
+#   awk -vPROG="aclocal" -vVERS=1.7\
+#   '{if ($1 == PROG) {gsub ("-.*","",$4); if ($4 < VERS) print PROG" < version "VERS"\nThis may result in errors\n"}}'
+
+#$AUTOMAKE --version | \
+#   awk -vPROG="automake" -vVERS=1.7\
+#   '{if ($1 == PROG) {gsub ("-.*","",$4); if ($4 < VERS) print PROG" < version "VERS"\nThis may result in errors\n"}}'
+
+
+banner "running libtoolize"
+libtoolize --force || exit
+
+banner "running aclocal"
+$ACLOCAL -I config/m4 || exit
+
+banner "running autoheader"
+$AUTOHEADER || exit
+
+banner "running automake"
+$AUTOMAKE --gnu --add-missing -Wall || exit
+
+banner "running autoconf"
+$AUTOCONF -Wall || exit
+
+banner "Finished"

Added: fddi-20070618-1-ptx1/config/GNUmakefile.am
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/config/GNUmakefile.am	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,7 @@
+EXTRA_DIST = fddi.pc.in
+
+pkgconfigdir = $(libdir)/pkgconfig
+pkgconfig_DATA = fddi.pc
+
+MAINTAINERCLEANFILES = \
+	GNUmakefile.in

Added: fddi-20070618-1-ptx1/config/fddi.pc.in
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/config/fddi.pc.in	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,12 @@
+prefix=@prefix@
+exec_prefix=@exec_prefix@
+libdir=@libdir@
+includedir=@includedir@
+
+Name: <name>
+Description: <description>
+Requires: @REQUIRES_LIBRN@
+Version: @VERSION@
+Libs: -L${libdir} -lfddi
+#Libs.private: -lm -lpthread ...etc...
+Cflags: -I${includedir}

Added: fddi-20070618-1-ptx1/config/m4/.secret-world-domination-project
==============================================================================

Added: fddi-20070618-1-ptx1/config/m4/acx_pthread.m4
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/config/m4/acx_pthread.m4	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,238 @@
+dnl @synopsis ACX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]])
+dnl
+dnl @summary figure out how to build C programs using POSIX threads
+dnl
+dnl This macro figures out how to build C programs using POSIX threads.
+dnl It sets the PTHREAD_LIBS output variable to the threads library and
+dnl linker flags, and the PTHREAD_CFLAGS output variable to any special
+dnl C compiler flags that are needed. (The user can also force certain
+dnl compiler flags/libs to be tested by setting these environment
+dnl variables.)
+dnl
+dnl Also sets PTHREAD_CC to any special C compiler that is needed for
+dnl multi-threaded programs (defaults to the value of CC otherwise).
+dnl (This is necessary on AIX to use the special cc_r compiler alias.)
+dnl
+dnl NOTE: You are assumed to not only compile your program with these
+dnl flags, but also link it with them as well. e.g. you should link
+dnl with $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS
+dnl $LIBS
+dnl
+dnl If you are only building threads programs, you may wish to use
+dnl these variables in your default LIBS, CFLAGS, and CC:
+dnl
+dnl        LIBS="$PTHREAD_LIBS $LIBS"
+dnl        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+dnl        CC="$PTHREAD_CC"
+dnl
+dnl In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute
+dnl constant has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to
+dnl that name (e.g. PTHREAD_CREATE_UNDETACHED on AIX).
+dnl
+dnl ACTION-IF-FOUND is a list of shell commands to run if a threads
+dnl library is found, and ACTION-IF-NOT-FOUND is a list of commands to
+dnl run it if it is not found. If ACTION-IF-FOUND is not specified, the
+dnl default action will define HAVE_PTHREAD.
+dnl
+dnl Please let the authors know if this macro fails on any platform, or
+dnl if you have any other suggestions or comments. This macro was based
+dnl on work by SGJ on autoconf scripts for FFTW (www.fftw.org) (with
+dnl help from M. Frigo), as well as ac_pthread and hb_pthread macros
+dnl posted by Alejandro Forero Cuervo to the autoconf macro repository.
+dnl We are also grateful for the helpful feedback of numerous users.
+dnl
+dnl @category InstalledPackages
+dnl @author Steven G. Johnson <stevenj at alum.mit.edu>
+dnl @version 2005-06-15
+dnl @license GPLWithACException
+
+AC_DEFUN([ACX_PTHREAD], [
+AC_REQUIRE([AC_CANONICAL_HOST])
+AC_LANG_SAVE
+AC_LANG_C
+acx_pthread_ok=no
+
+# We used to check for pthread.h first, but this fails if pthread.h
+# requires special compiler flags (e.g. on True64 or Sequent).
+# It gets checked for in the link test anyway.
+
+# First of all, check if the user has set any of the PTHREAD_LIBS,
+# etcetera environment variables, and if threads linking works using
+# them:
+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS])
+        AC_TRY_LINK_FUNC(pthread_join, acx_pthread_ok=yes)
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test x"$acx_pthread_ok" = xno; then
+                PTHREAD_LIBS=""
+                PTHREAD_CFLAGS=""
+        fi
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+fi
+
+# We must check for the threads library under a number of different
+# names; the ordering is very important because some systems
+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the
+# libraries is broken (non-POSIX).
+
+# Create a list of thread flags to try.  Items starting with a "-" are
+# C compiler flags, and other items are library names, except for "none"
+# which indicates that we try without any flags at all, and "pthread-config"
+# which is a program returning the flags for the Pth emulation library.
+
+acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"
+
+# The ordering *is* (sometimes) important.  Some notes on the
+# individual items follow:
+
+# pthreads: AIX (must check this before -lpthread)
+# none: in case threads are in libc; should be tried before -Kthread and
+#       other compiler flags to prevent continual compiler warnings
+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)
+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)
+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)
+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)
+# -pthreads: Solaris/gcc
+# -mthreads: Mingw32/gcc, Lynx/gcc
+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it
+#      doesn't hurt to check since this sometimes defines pthreads too;
+#      also defines -D_REENTRANT)
+#      ... -mt is also the pthreads flag for HP/aCC
+# pthread: Linux, etcetera
+# --thread-safe: KAI C++
+# pthread-config: use pthread-config program (for GNU Pth library)
+
+case "${host_cpu}-${host_os}" in
+        *solaris*)
+
+        # On Solaris (at least, for some versions), libc contains stubbed
+        # (non-functional) versions of the pthreads routines, so link-based
+        # tests will erroneously succeed.  (We need to link with -pthreads/-mt/
+        # -lpthread.)  (The stubs are missing pthread_cleanup_push, or rather
+        # a function called by this macro, so we could check for that, but
+        # who knows whether they'll stub that too in a future libc.)  So,
+        # we'll just look for -pthreads and -lpthread first:
+
+        acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"
+        ;;
+esac
+
+if test x"$acx_pthread_ok" = xno; then
+for flag in $acx_pthread_flags; do
+
+        case $flag in
+                none)
+                AC_MSG_CHECKING([whether pthreads work without any flags])
+                ;;
+
+                -*)
+                AC_MSG_CHECKING([whether pthreads work with $flag])
+                PTHREAD_CFLAGS="$flag"
+                ;;
+
+		pthread-config)
+		AC_CHECK_PROG(acx_pthread_config, pthread-config, yes, no)
+		if test x"$acx_pthread_config" = xno; then continue; fi
+		PTHREAD_CFLAGS="`pthread-config --cflags`"
+		PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"
+		;;
+
+                *)
+                AC_MSG_CHECKING([for the pthreads library -l$flag])
+                PTHREAD_LIBS="-l$flag"
+                ;;
+        esac
+
+        save_LIBS="$LIBS"
+        save_CFLAGS="$CFLAGS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Check for various functions.  We must include pthread.h,
+        # since some functions may be macros.  (On the Sequent, we
+        # need a special flag -Kthread to make this header compile.)
+        # We check for pthread_join because it is in -lpthread on IRIX
+        # while pthread_create is in libc.  We check for pthread_attr_init
+        # due to DEC craziness with -lpthreads.  We check for
+        # pthread_cleanup_push because it is one of the few pthread
+        # functions on Solaris that doesn't have a non-functional libc stub.
+        # We try pthread_create on general principles.
+        AC_TRY_LINK([#include <pthread.h>],
+                    [pthread_t th; pthread_join(th, 0);
+                     pthread_attr_init(0); pthread_cleanup_push(0, 0);
+                     pthread_create(0,0,0,0); pthread_cleanup_pop(0); ],
+                    [acx_pthread_ok=yes])
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        AC_MSG_RESULT($acx_pthread_ok)
+        if test "x$acx_pthread_ok" = xyes; then
+                break;
+        fi
+
+        PTHREAD_LIBS=""
+        PTHREAD_CFLAGS=""
+done
+fi
+
+# Various other checks:
+if test "x$acx_pthread_ok" = xyes; then
+        save_LIBS="$LIBS"
+        LIBS="$PTHREAD_LIBS $LIBS"
+        save_CFLAGS="$CFLAGS"
+        CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
+
+        # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.
+	AC_MSG_CHECKING([for joinable pthread attribute])
+	attr_name=unknown
+	for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do
+	    AC_TRY_LINK([#include <pthread.h>], [int attr=$attr; return attr;],
+                        [attr_name=$attr; break])
+	done
+        AC_MSG_RESULT($attr_name)
+        if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then
+            AC_DEFINE_UNQUOTED(PTHREAD_CREATE_JOINABLE, $attr_name,
+                               [Define to necessary symbol if this constant
+                                uses a non-standard name on your system.])
+        fi
+
+        AC_MSG_CHECKING([if more special flags are required for pthreads])
+        flag=no
+        case "${host_cpu}-${host_os}" in
+            *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;
+            *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;
+        esac
+        AC_MSG_RESULT(${flag})
+        if test "x$flag" != xno; then
+            PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"
+        fi
+
+        LIBS="$save_LIBS"
+        CFLAGS="$save_CFLAGS"
+
+        # More AIX lossage: must compile with cc_r
+        AC_CHECK_PROG(PTHREAD_CC, cc_r, cc_r, ${CC})
+else
+        PTHREAD_CC="$CC"
+fi
+
+AC_SUBST(PTHREAD_LIBS)
+AC_SUBST(PTHREAD_CFLAGS)
+AC_SUBST(PTHREAD_CC)
+
+# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:
+if test x"$acx_pthread_ok" = xyes; then
+        ifelse([$1],,AC_DEFINE(HAVE_PTHREAD,1,[Define if you have POSIX threads libraries and header files.]),[$1])
+        :
+else
+        acx_pthread_ok=no
+        $2
+fi
+AC_LANG_RESTORE
+])dnl ACX_PTHREAD

Added: fddi-20070618-1-ptx1/configure.ac
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/configure.ac	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,135 @@
+# -*- Autoconf -*-
+# Process this file with autoconf to produce a configure script.
+AC_PREREQ(2.59)
+
+AC_INIT([fddi], [0.0.0], [bugs at pengutronix.de])
+AC_CONFIG_HEADERS([include/fddi_config.h])
+AC_CONFIG_SRCDIR([src/fddi.c])
+AC_CONFIG_MACRO_DIR([config/m4])
+AC_CONFIG_AUX_DIR([config/autoconf])
+AC_CANONICAL_BUILD
+AC_CANONICAL_HOST
+
+AM_MAINTAINER_MODE
+
+CFLAGS="${CFLAGS} -Wall"
+
+#
+# libtool library versioning stuff
+#
+# Library code modified:	    REVISION++
+# Interfaces changed/added/removed: CURRENT++	REVISION=0
+# Interfaces added:		    AGE++
+# Interfaces removed:		    AGE=0
+LT_CURRENT=0
+LT_REVISION=0
+LT_AGE=0
+AC_SUBST(LT_CURRENT)
+AC_SUBST(LT_REVISION)
+AC_SUBST(LT_AGE)
+
+
+#
+# Checks for programs.
+#
+AC_PROG_CC
+#AM_MISSING_PROG(PERL, perl, $missing_dir)
+# libtool, old:
+AC_LIBTOOL_WIN32_DLL
+#AC_LIBTOOL_TAGS([])
+AC_PROG_LIBTOOL
+# libtool, new:
+# LT_INIT(win32-dll)
+
+AM_INIT_AUTOMAKE([foreign no-exeext dist-bzip2])
+
+
+#
+# Checks for libraries.
+#
+
+##
+# librn
+##
+# REQUIRES_LIBRN="librn >= 0.4.2"
+# AC_SUBST(REQUIRES_LIBRN)
+# PKG_CHECK_MODULES([librn],
+# 	[${REQUIRES_LIBRN}],
+# 	[],
+# 	[AC_MSG_ERROR([*** ${REQUIRES_LIBRN} not found by pkg-config on your system])]
+# )
+# AC_SUBST(librn_CFLAGS)
+# AC_SUBST(librn_LIBS)
+
+#
+# Checks for header files.
+#
+AC_HEADER_DIRENT
+AC_HEADER_STDC
+AC_HEADER_SYS_WAIT
+AC_CHECK_HEADERS([	\
+	arpa/inet.h	\
+	limits.h	\
+	netdb.h		\
+	netinet/in.h	\
+	stddef.h	\
+	stdlib.h	\
+	string.h	\
+	sys/param.h	\
+	sys/socket.h	\
+	sys/time.h	\
+	sys/un.h	\
+	unistd.h	\
+	utime.h		\
+	])
+
+
+#
+# Checks for typedefs, structures, and compiler characteristics.
+#
+AC_C_CONST
+AC_C_INLINE
+AC_TYPE_SIZE_T
+AC_HEADER_TIME
+
+
+#
+# Checks for library functions.
+#
+AC_FUNC_MEMCMP
+AC_TYPE_SIGNAL
+AC_FUNC_STAT
+AC_FUNC_UTIME_NULL
+AC_CHECK_FUNCS([gethostbyaddr gethostbyname gethostname gettimeofday memset mkdir socket utime])
+
+
+#
+# Debugging
+#
+AC_MSG_CHECKING([whether to enable debugging])
+AC_ARG_ENABLE(debug,
+    AS_HELP_STRING([--enable-debug], [enable debugging @<:@default=yes@:>@]),
+	[case "$enableval" in
+	y | yes) CONFIG_DEBUG=yes ;;
+        *) CONFIG_DEBUG=no ;;
+    esac],
+    [CONFIG_DEBUG=yes])
+AC_MSG_RESULT([${CONFIG_DEBUG}])
+if test "${CONFIG_DEBUG}" = "yes"; then
+    CFLAGS="${CFLAGS} -Werror -Wsign-compare -Wfloat-equal -Wformat-security -g -O1"
+    AC_DEFINE(DEBUG, 1, [debugging])
+else
+    CFLAGS="${CFLAGS} -O2"
+fi
+
+
+AC_CONFIG_FILES([
+	GNUmakefile
+	config/fddi.pc
+	config/GNUmakefile
+	include/GNUmakefile
+	src/GNUmakefile
+	tests/GNUmakefile
+	])
+AC_OUTPUT
+

Added: fddi-20070618-1-ptx1/include/GNUmakefile.am
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/include/GNUmakefile.am	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,9 @@
+noinst_HEADERS = \
+	fddistuff.h
+
+nobase_include_HEADERS = \
+	fddi.h
+
+MAINTAINERCLEANFILES = \
+	fddi_config.h.in \
+	GNUmakefile.in

Added: fddi-20070618-1-ptx1/include/fddi.h
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/include/fddi.h	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,5 @@
+#ifndef FDDI_H
+#define FDDI_H
+
+
+#endif

Added: fddi-20070618-1-ptx1/include/fddistuff.h
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/include/fddistuff.h	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,5 @@
+#ifndef FDDI_H
+#define FDDI_H
+
+
+#endif

Added: fddi-20070618-1-ptx1/src/GNUmakefile.am
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/src/GNUmakefile.am	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,20 @@
+lib_LTLIBRARIES = libfddi.la
+
+bin_PROGRAMS = fddi
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+
+libfddi_la_SOURCES = \
+	libfddi.c
+
+fddi_la_LDFLAGS = \
+	-version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE)
+#	-no-undefined	# win32_dll stuff only
+
+fddi_SOURCES = \
+	fddi.c
+
+MAINTAINERCLEANFILES = \
+	GNUmakefile.in

Modified: fddi-20070618-1-ptx1/src/fddi.c
==============================================================================
--- fddi-20070618-1-ptx1/src/fddi.c	(original)
+++ fddi-20070618-1-ptx1/src/fddi.c	Mon Jun 18 21:44:10 2007
@@ -1,286 +1,6 @@
-#include <string.h>
-#include <memory.h>
-#include <stdlib.h>
-#include "fddi.h"
-
-#define MAX_IO_INTERFACES	16
-#define MAX_IO_INTERFACE_INSTS	64
-
-/* managment of io-interfaces */
-static int num_of_interfaces = 0;
-static IO_INTERFACE io_interfaces[MAX_IO_INTERFACES];
-
-
-static int num_of_interface_instances = 0;
-static IO_INTERFACE_INST io_interface_instances[MAX_IO_INTERFACE_INSTS];
-
-int register_io_interface(IO_INTERFACE ioitf)
-{
-	if (num_of_interfaces >= MAX_IO_INTERFACES)
-		return RESERR_OUT_OF_MEM;
-	io_interfaces[num_of_interfaces++] = ioitf;
-	return RESOK;
-}
-
-int bind_io_interface(IO_INTERFACE ioitf, char* name, LL_INTERFACE llitf, IO_INTERFACE_INST* res)
-{
-	int ret;
-	if (num_of_interface_instances >= MAX_IO_INTERFACE_INSTS)
-		return RESERR_OUT_OF_MEM;
-	/* call to function pointer from registered io-interface */
-	ret = (*ioitf->_fptr_bind_io_interface)(name, llitf, res);
-	if (ret == RESOK)
-		io_interface_instances[num_of_interface_instances++] = *res;
-	return ret;
-}
-
-int enum_io_interfaces(IO_INTERFACE** ioitfs)
-{
-	*ioitfs = io_interfaces;
-	return num_of_interfaces;
-}
-
-int enum_io_interface_instances(IO_INTERFACE_INST** ioitfinsts)
-{
-	*ioitfinsts = io_interface_instances;
-	return num_of_interface_instances;
-}
-
-IO_INTERFACE get_io_interface(char* name)
-{
-	int i;
-	for (i = 0; i < num_of_interfaces; i++)
-		if (strcmp(name, io_interfaces[i]->name) == 0)
-			return io_interfaces[i];
-	return NULL;
-}
-
-IO_INTERFACE_INST get_io_interface_inst(char* name)
-{
-	int i;
-	for (i = 0; i < num_of_interface_instances; i++)
-		if (strcmp(name, io_interface_instances[i]->name) == 0)
-			return io_interface_instances[i];
-	return NULL;
-}
-
-int enum_io_transport_units(IO_INTERFACE_INST ioitfinst, IO_TRANSPORT_UNIT** iotpus)
-{
-	*iotpus = ioitfinst->tpus;
-	return ioitfinst->num_tpus;
-}
-
-int enum_io_devices(IO_INTERFACE_INST ioitfinst, IO_DEVICE** iodevices)
-{
-	*iodevices = ioitfinst->devlist;
-	return ioitfinst->num_dev;
-}
-
-int enum_io_variables(IO_INTERFACE_INST ioitfinst, IO_VARIABLE** iovars)
-{
-	*iovars = ioitfinst->varlist;
-	return ioitfinst->num_var;
-}
-
-static int count_devices(IO_DEVICE io_device)
-{
-	int n_dev;
-	IO_DEVICE dev_child;
-
-	if (io_device == NULL)
-		return 0;
-
-	n_dev = 1; // the device itself
-	dev_child = io_device->first_child;
-
-	while (dev_child != NULL)
-	{
-		n_dev += count_devices(dev_child);
-		dev_child = dev_child->next_child;
-	}
-	return n_dev;
-}
-
-static IO_DEVICE* fill_devices(IO_DEVICE dev, IO_DEVICE* devlist)
-/* return adress to continue. devlist must be large enough */
-{
-	IO_DEVICE* list = devlist;
-	IO_DEVICE dev_child;
-
-	*list = dev;
-	list++;
-
-	dev_child = dev->first_child;
-
-	while (dev_child != NULL)
-	{
-		list = fill_devices(dev_child, list);
-		dev_child = dev_child->next_child;
-	}
-	return list;
-}
-
-int configure_io_interface_inst(IO_INTERFACE_INST ioitfinst, IO_DEVICE root)
-{
-	int ret;
-	/* call to function pointer from registered io-interface */
-	ret = (*ioitfinst->ioitf->_fptr_configure_io_interface_inst)(ioitfinst, root);
-	if (ret == RESOK)
-	{
-		int i;
-		IO_VARIABLE* list;
-
-		/* the configure method fills the tpu-list */
-		/* the other lists are filled by the fddi interface in this function */
-
-		/* fill device list */
-		ioitfinst->num_dev = count_devices(root);
-		ioitfinst->devlist = malloc(ioitfinst->num_dev * sizeof(IO_DEVICE));
-		fill_devices(root, ioitfinst->devlist);
-
-		/* fill variable list */
-		ioitfinst->num_var = 0;
-		for (i = 0; i < ioitfinst->num_tpus; i++)
-			ioitfinst->num_var += ioitfinst->tpus[i]->num_var;
-
-		ioitfinst->varlist = malloc(ioitfinst->num_var * sizeof(IO_VARIABLE));
-		list = ioitfinst->varlist;
-		for (i = 0; i < ioitfinst->num_tpus; i++)
-		{
-			memcpy(list, ioitfinst->tpus[i]->varlist, ioitfinst->tpus[i]->num_var * sizeof(IO_VARIABLE));
-			list += ioitfinst->tpus[i]->num_var;
-		}
-	}
-	return ret;
-}
-
-int scan_io_interface_inst(IO_INTERFACE_INST ioitfinst, IO_DEVICE *root)
-{
-	int ret;
-	/* call to function pointer from registered io-interface */
-	ret = (*ioitfinst->ioitf->_fptr_scan_io_interface_inst)(ioitfinst, root);
-	return ret;
-}
-
-int read_iodevice_async(IO_DEVICE iodev, unsigned long address, unsigned char* buf, unsigned long buf_size, unsigned long* read_size)
-{
-	int ret;
-	/* call to function pointer from registered io-interface */
-	ret = (*iodev->itfinst->ioitf->_fptr_read_device_async)(iodev, address, buf, buf_size, read_size);
-	return ret;
-}
-
-int write_iodevice_async(IO_DEVICE iodev, unsigned long address, unsigned char* buf, unsigned long size)
-{
-	int ret;
-	/* call to function pointer from registered io-interface */
-	ret = (*iodev->itfinst->ioitf->_fptr_write_device_async)(iodev, address, buf, size);
-	return ret;
-}
-
-int cmd_iodevice(IO_DEVICE iodev, IO_DEVICE_COMMAND cmd)
-{
-	int ret;
-	/* call to function pointer from registered io-interface */
-	ret = (*iodev->itfinst->ioitf->_fptr_cmd_device)(iodev, cmd);
-	return ret;
-}
-
-int enum_io_variables_of_iodevice(IO_DEVICE iodev, IO_VARIABLE** iovars)
-{
-	// todo
-	return 0;
-}
-
-/* A very simple implementation of transport units with a lot of improvement possibilities */
-/* While anyone is reading the buffer all write operations are done in a extra buffer to keep the read buffer consistent */
-
-unsigned char* address_to_read(IO_TRANSPORT_UNIT iotpu)
-{
-	iotpu->read_count++;
-	return iotpu->buf_read;
-}
-
-unsigned char* address_to_write(IO_TRANSPORT_UNIT iotpu)
-{
-	if (iotpu->write_count != 0)
-		return NULL;
-	
-	iotpu->write_count++;
-	if (iotpu->buf_read == iotpu->buf_write)
-	{
-		iotpu->buf_write = malloc(iotpu->size);
-		memcpy(iotpu->buf_write, iotpu->buf_read, iotpu->size);
-	}
-	return iotpu->buf_write;
-}
-
-unsigned char* address_to_replace(IO_TRANSPORT_UNIT iotpu)
-{
-	if (iotpu->write_count != 0)
-		return NULL;
-
-	iotpu->write_count++;
-	if (iotpu->buf_read == iotpu->buf_write)
-		iotpu->buf_write = malloc(iotpu->size);
-	return iotpu->buf_write;
-}
-
-int release_adress(IO_TRANSPORT_UNIT iotpu, unsigned char* address)
-{
-	if (address == iotpu->buf_read)
-	{
-		iotpu->read_count--;
-		/* assert iotpu->read_count >= 0 */
-		if (iotpu->read_count == 0 && iotpu->write_count == 0 && iotpu->buf_read != iotpu->buf_write)
-		{
-			free(iotpu->buf_read);
-			iotpu->buf_read = iotpu->buf_write;
-		}
-		return RESOK;
-	}
-	else if (address == iotpu->buf_write)
-	{
-		int i;
-		iotpu->write_count--;
-		/* assert iotpu->write_count >= 0 */
-		if (iotpu->read_count == 0 && iotpu->write_count == 0 && iotpu->buf_read != iotpu->buf_write)
-		{
-			free(iotpu->buf_read);
-			iotpu->buf_read = iotpu->buf_write;
-		}
-
-		/* trigger callbacks */
-		for (i = 0; i < iotpu->num_callbacks; i++)
-			(*iotpu->callback[i])(iotpu);
-
-		return RESOK;
-	}
-	return RESERR_UNKOWNADDRESS;
-}
-
-int send_iotransport_unit(IO_TRANSPORT_UNIT iotpu)
-{
-	int res = 0;
-	/* pseudo code, because low level interface is not ready */
-	/* may be redirected trough stack */
-	/*
-	res = iotpu->itfinst->llitf->Send(iotpu->id, iotpu->buf_write, iotpu->size);
-	*/
-	return 0;
-}
-
-int register_callback_to_iotransport_unit(IO_TRANSPORT_UNIT iotpu, void (*callback)(IO_TRANSPORT_UNIT iotpu))
-{
-	if (iotpu->num_callbacks >= MAXCALLBACKS)
-		return RESERR_OUT_OF_MEM;
-	iotpu->callback[iotpu->num_callbacks] = callback;
-	iotpu->num_callbacks++;
-	return RESOK;
-}
-
-int enum_io_variables_of_iotransport_unit(IO_TRANSPORT_UNIT iotpu, IO_VARIABLE** iovars)
-{
-	*iovars = iotpu->varlist;
-	return iotpu->num_var;
-}
+/* This is a sample main program */
+
+int main(void)
+{
+	return 0;
+}

Added: fddi-20070618-1-ptx1/src/libfddi.c
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/src/libfddi.c	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,6 @@
+
+int template(void)
+{
+	return 0;
+}
+

Added: fddi-20070618-1-ptx1/tests/GNUmakefile.am
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/tests/GNUmakefile.am	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,13 @@
+TESTS = test
+
+noinst_PROGRAMS = test
+
+test_SOURCES = test.c
+test_LDADD = $(top_builddir)/src/libfddi.la
+
+AM_CPPFLAGS = \
+	-I$(top_srcdir)/include \
+	-I$(top_builddir)/include
+
+MAINTAINERCLEANFILES = \
+	GNUmakefile.in

Added: fddi-20070618-1-ptx1/tests/test.c
==============================================================================
--- (empty file)
+++ fddi-20070618-1-ptx1/tests/test.c	Mon Jun 18 21:44:10 2007
@@ -0,0 +1,6 @@
+#include <stdio.h>
+
+int main(void)
+{
+	return 0;
+}


More information about the OSADL-svn-commits mailing list