From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17419 invoked by alias); 27 Mar 2011 11:40:08 -0000 Received: (qmail 17406 invoked by uid 22791); 27 Mar 2011 11:40:07 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00 X-Spam-Check-By: sourceware.org Received: from tirion.supremecenter202.com (HELO tirion.supremecenter202.com) (209.25.195.243) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Sun, 27 Mar 2011 11:40:01 +0000 Received: from [77.28.161.172] (port=49708 helo=[192.168.1.68]) by tirion.supremecenter202.com with esmtpsa (TLSv1:AES256-SHA:256) (Exim 4.69) (envelope-from ) id 1Q3oK3-0005cP-Ch for ecos-devel@ecos.sourceware.org; Sun, 27 Mar 2011 11:39:55 +0000 Message-ID: <4D8F2207.7070701@siva.com.mk> Date: Sun, 27 Mar 2011 11:40:00 -0000 From: Ilija Kocho User-Agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.14) Gecko/20110223 Lightning/1.0b2 Thunderbird/3.1.8 ThunderBrowse/3.3.5 MIME-Version: 1.0 To: ecos-devel@ecos.sourceware.org Subject: Re: tty.cdl References: <4D8DBE3F.2000708@siva.com.mk> In-Reply-To: Content-Type: multipart/mixed; boundary="------------000407060004040706060703" X-IsSubscribed: yes Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org X-SW-Source: 2011-03/txt/msg00026.txt.bz2 This is a multi-part message in MIME format. --------------000407060004040706060703 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Content-length: 1475 On 26.03.2011 19:32, Sergei Gavrikov wrote: > On Sat, 26 Mar 2011, Ilija Kocho wrote: > >> Hello colleagues >> >> I need to extend tty.cdl in order to accommodate more than 4 serial >> ports, currently I need 6. I can simply add 2 port entries but i would >> prefer something like the snippet below. Either case I am ready to post >> to Bugzilla. >> Note: Similar case is with termios.cdl >> >> Please advise. > > Hi Ilija, > > It seems your issue cannot be solved by editing the config files *only*. > There are a couple of hardwired conditional definitions for device table > entries there, take a look at > > $ECOS_REPOSITORY/io/serial//src/common/tty.c > $ECOS_REPOSITORY/io/serial//src/common/termiostty.c > > > Sergei Hi Sergei Thanks for the notes. I tried to extend this concept to tty.c, please see attached CDL. Here are my questions. 1. The proc output is in io-serial.h and is protected to instantiate in only file that defines __CYGSEM_FILE_IS_IO_SERIAL_COMMON_TTY_C (tty.c) I would ask if it is possible to redirect puts to other file? 2. This may be question for John. CYGOPT_IO_SERIAL_PROC_INCREMENTER interface is used as a stealth container for define_proc. I guess this is not a typical usage of cdl_interface. Could it cause a trouble? Note: I haven't tested compilation yet, only header generation. If this approach is considered acceptable I would produce required changes in tty.c and post a bug on Bugzilla. Regards Ilija --------------000407060004040706060703 Content-Type: text/plain; name="tty.cdl" Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="tty.cdl" Content-length: 5487 # ==================================================================== # # tty.cdl # # eCos serial TTY configuration data # # ==================================================================== ## ####ECOSGPLCOPYRIGHTBEGIN#### ## ------------------------------------------- ## This file is part of eCos, the Embedded Configurable Operating System. ## Copyright (C) 1998, 1999, 2000, 2001, 2002 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): jskov # Original data: gthomas # Contributors: ilijak # Date: 1999-07-07 # #####DESCRIPTIONEND#### # # ==================================================================== #define_header "tty_defices.inl" cdl_component CYGPKG_IO_SERIAL_HALDIAG { display "HAL/diag serial device driver" flavor bool default_value 1 description " This option enables the use of the HAL diagnostic channel via the standard I/O drivers." compile -library=libextras.a common/haldiag.c } cdl_option CYGDAT_IO_SERIAL_TTY_CONSOLE { display "Console device name" flavor data default_value {"\"/dev/ttydiag\""} description " This option selects the TTY device to use for the console." } cdl_component CYGPKG_IO_SERIAL_TTY_TTYDIAG { display "TTY mode HAL/diag channel" flavor bool default_value 1 description " This option causes '/dev/ttydiag' to be included in the standard drivers." } # Proc index set proc_i 0 # Workarround to prevent configtool crash set __dev "_DEV" for { set ::channel 0 } { $::channel < 6 } { incr ::channel } { cdl_interface CYGINT_IO_SERIAL_TTY_TTY[set ::channel] { } cdl_component CYGPKG_IO_SERIAL_TTY_TTY[set ::channel] { display "TTY mode channel #[set ::channel]" # active_if CYGINT_IO_SERIAL_TTY_TTY[set ::channel] flavor bool default_value 0 define_proc { puts $::cdl_header "" puts $::cdl_header "#ifdef __CYGSEM_FILE_IS_IO_SERIAL_COMMON_TTY_C" puts $::cdl_header "static struct tty_private_info tty_private_info$proc_i;" puts $::cdl_header "DEVTAB_ENTRY(tty_io$proc_i," puts $::cdl_header " \"/dev/tty$proc_i\"," puts $::cdl_header " CYGDAT_IO_SERIAL_TTY_TTY$proc_i$__dev," puts $::cdl_header " &tty_devio," puts $::cdl_header " tty_init," puts $::cdl_header " tty_lookup," puts $::cdl_header " &tty_private_info$proc_i);" puts $::cdl_header "#endif // __CYGSEM_FILE_IS_IO_SERIAL_COMMON_TTY_C" puts $::cdl_header "" } description " This option causes '/dev/tty[set ::channel]' to be included in the standard drivers." cdl_option CYGDAT_IO_SERIAL_TTY_TTY[set ::channel]_DEV { display "TTY mode channel #[set ::channel] device" flavor data default_value [ format { "\"/dev/ser%d\"" } $::channel ] description " This option selects the physical device to use for '/dev/tty[set ::channel]'." } } cdl_interface CYGOPT_IO_SERIAL_PROC_INCREMENTER[set ::channel] { no_define define_proc { incr proc_i } description "Increment proc_i for every tty - active or inactive." } } cdl_interface CYGOPT_IO_SERIAL_PROC_ZERO { no_define define_proc { set proc_i 0 } description "Reset proc_i for next save." } --------------000407060004040706060703--