[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