# ====================================================================
#
#      syntheth.cdl
#
#      Synthetic target ethernet package.
#
# ====================================================================
## ####ECOSGPLCOPYRIGHTBEGIN####                                            
## -------------------------------------------                              
## This file is part of eCos, the Embedded Configurable Operating System.   
## Copyright (C) 2002, 2003 Free Software Foundation, Inc.                  
##
## eCos is free software; you can redistribute it and/or modify it under    
## the terms of the GNU General Public License as published by the Free     
## Software Foundation; either version 2 or (at your option) any later      
## version.                                                                 
##
## eCos is distributed in the hope that it will be useful, but WITHOUT      
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or    
## FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License    
## for more details.                                                        
##
## You should have received a copy of the GNU General Public License        
## along with eCos; if not, write to the Free Software Foundation, Inc.,    
## 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.            
##
## As a special exception, if other files instantiate templates or use      
## macros or inline functions from this file, or you compile this file      
## and link it with other works to produce a work based on this file,       
## this file does not by itself cause the resulting work to be covered by   
## the GNU General Public License. However the source code for this file    
## must still be made available in accordance with section (3) of the GNU   
## General Public License v2.                                               
##
## This exception does not invalidate any other reasons why a work based    
## on this file might be covered by the GNU General Public License.         
## -------------------------------------------                              
## ####ECOSGPLCOPYRIGHTEND####                                              
# ====================================================================
######DESCRIPTIONBEGIN####
#
# Author(s):      bartv
# Original data:  bartv
# Contributors:
# Date:           2002-08-07
#
#####DESCRIPTIONEND####
# ====================================================================

cdl_package CYGPKG_DEVS_ETH_ECOSYNTH {
    display     "Synthetic target ethernet driver"
    description "
        The ethernet driver for the eCos synthetic target allows applications
        and other packages such as a TCP/IP stack to perform ethernet I/O.
        This can involve either an unused ethernet device, or an emulated
        ethernet device as provided by the Linux kernel's tunnel/tap
        support. The eCos code interacts with a suitable Linux application
        through the I/O auxiliary. Up to four ethernet devices are
        supported, and the host-side target definition file controls how
        each device will perform its I/O."
    doc         ref/devs-eth-synth-ecosynth.html
    
    parent      CYGPKG_IO_ETH_DRIVERS
    active_if   CYGPKG_IO_ETH_DRIVERS
    active_if   CYGPKG_HAL_SYNTH
    implements  CYGINT_IO_ETH_MULTICAST

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 {
	display         "Provide eth0 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth0 is enabled when a TCP/IP stack
            is part of the configuration, disabled otherwise."
	default_value   CYGPKG_NET_STACK
	implements      CYGHWR_NET_DRIVERS
	implements      CYGHWR_NET_DRIVER_ETH0
    }
    
    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 {
	display        "Provide eth1 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth1 is always disabled, but can
	    be enabled if the eCos application needs more than one ethernet
	    device."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
	implements      CYGHWR_NET_DRIVER_ETH1
    }

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 {
	display        "Provide eth2 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth2 is always disabled, but can
	    be enabled if the eCos application needs more than two ethernet
	    devices."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
    }

    cdl_option CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 {
	display        "Provide eth3 device"
	description     "
	    The synthetic target can provide up to four ethernet devices,
	    eth0 to eth3. By default eth3 is always disabled, but can
	    be enabled if the eCos application needs more than three ethernet
	    devices."
	default_value 0
	implements      CYGHWR_NET_DRIVERS
    }

    cdl_component CYGPKG_DEVS_ETH_ECOSYNTH_OPTIONS {
	display     "Build options"
	active_if   { CYGVAR_DEVS_ETH_ECOSYNTH_ETH0 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH1 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH2 || CYGVAR_DEVS_ETH_ECOSYNTH_ETH3 }
	flavor      none
	compile     -library=libextras.a syntheth.c
	requires    CYGINT_ISO_ERRNO_CODES CYGINT_ISO_STRING_MEMFUNCS
	description "
	    Package-specific build options including control over compiler
	    flags used only in building this package."

	cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_ADD {
            display "Additional compiler flags"
            flavor  data
            no_define
            default_value { "-D_KERNEL -D__ECOS" }
            description   "
                This option modifies the set of compiler flags for
                building this package. These flags are used in addition
                to the set of global flags."
	}
        cdl_option CYGPKG_DEVS_ETH_ECOSYNTH_CFLAGS_REMOVE {
            display "Suppressed compiler flags"
            flavor  data
            no_define
            default_value { "" }
            description   "
                This option modifies the set of compiler flags for
                building this package. These flags are removed from
                the set of global flags if present."
        }
    }
}

# EOF syntheth.cdl
