From: Ilija Kocho <ilijak@siva.com.mk>
To: ecos-devel@ecos.sourceware.org
Subject: Re: tty.cdl
Date: Sun, 27 Mar 2011 11:40:00 -0000 [thread overview]
Message-ID: <4D8F2207.7070701@siva.com.mk> (raw)
In-Reply-To: <alpine.DEB.2.00.1103262013330.1833@sg-laptop>
[-- Attachment #1: Type: text/plain, Size: 1475 bytes --]
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/<version>/src/common/tty.c
> $ECOS_REPOSITORY/io/serial/<version>/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
[-- Attachment #2: tty.cdl --]
[-- Type: text/plain, Size: 5487 bytes --]
# ====================================================================
#
# 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."
}
next prev parent reply other threads:[~2011-03-27 11:40 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-03-26 10:22 tty.cdl Ilija Kocho
2011-03-26 18:33 ` tty.cdl Sergei Gavrikov
2011-03-27 11:40 ` Ilija Kocho [this message]
2011-03-27 12:45 ` tty.cdl Sergei Gavrikov
2011-03-27 15:46 ` tty.cdl Ilija Kocho
2011-03-27 17:11 ` tty.cdl Sergei Gavrikov
2011-03-27 19:34 ` tty.cdl Ilija Kocho
2011-03-27 19:39 ` tty.cdl Sergei Gavrikov
2011-03-27 19:55 ` tty.cdl Ilija Kocho
2011-03-27 21:11 ` tty.cdl Sergei Gavrikov
2011-03-28 10:42 ` tty.cdl Ilija Kocho
2011-03-28 12:16 ` tty.cdl Sergei Gavrikov
2011-03-28 19:00 ` tty.cdl Ilija Kocho
2011-03-28 19:25 ` tty.cdl Sergei Gavrikov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4D8F2207.7070701@siva.com.mk \
--to=ilijak@siva.com.mk \
--cc=ecos-devel@ecos.sourceware.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).