Linux-Development-Sys Digest #657, Volume #6 Tue, 27 Apr 99 22:17:19 EDT
Contents:
Re: Change from gcc to egcs gives seg fault in make (Craig Graham)
Re: compiling glibc2 (Chris Rankin)
Re: how can i find CPU-type in the linux kernel? ("Jon Plews")
Re: Threads >> PThreads or LinuxThreads?? (Martin Recktenwald)
truly multilingual support in Linux? ("Tomas FRYDRYCH")
Re: redhat 6.0? (Paul Bristow)
Re: Change from gcc to egcs gives seg fault in make (Clifford T. Matthews)
Linux driver ("Tony Pappas")
no links resolved while compiling mod_perl !! ("JB")
Help with 2.2.6 mmap (Frank McGirt)
Re: redhat 6.0? (Michael McConnell)
Re: Malloc-ing out of specific memory ("Gianni Mariani")
Re: Problem installing makemake with libstdc++ (Alex Rhomberg)
Open Source Software at 1999 USENIX Annual Conference--Reg Savings until May 3
(Jennifer Radtke)
libpthread.so not thread safe? ("Michael Chen")
AD1812 based sound card - Drivers!!! ([EMAIL PROTECTED])
Re: Malloc-ing out of specific memory (Maciej Golebiewski)
limit connected users for a ftp server ? ("Thierry BUCCO")
serielle Com && Time Stamp Counter (Stephan Wolff)
----------------------------------------------------------------------------
From: Craig Graham <[EMAIL PROTECTED]>
Subject: Re: Change from gcc to egcs gives seg fault in make
Date: Tue, 27 Apr 1999 12:45:57 +0000
"Clifford T. Matthews" wrote:
<SNIP : Deleted Cliff sharing a useful insight>
I've been getting this problem, and it did puzzle me
- sometimes egcs would compile a file ok, sometimes
it would crash. If it crashed, chances were it would
compile ok if you tried it again on the same file
straight away.
You described what is most likely the problem - how did
you solve it?
> Cliff Matthews <[EMAIL PROTECTED]>
Craig.
------------------------------
From: Chris Rankin <au.com.zipworld@{no.spam}rankinc>
Subject: Re: compiling glibc2
Date: Tue, 27 Apr 1999 22:06:05 +1000
Andreas Jaeger wrote:
> Alternativly get glibc 2.1 or wait for glibc 2.1.1.
>
Is glibc-2.1 available for download somewhere? I tried gnu.org but there
was a file instead saying that it had been temporarily removed for
"political reasons". And the version I downloaded from Finland (funet?)
failed one of the POSIX tests - globbing, I think.
Cheers,
Chris.
------------------------------
From: "Jon Plews" <[EMAIL PROTECTED]>
Subject: Re: how can i find CPU-type in the linux kernel?
Date: Tue, 27 Apr 1999 08:18:13 +0100
lckun wrote in message <[EMAIL PROTECTED]>...
>
>Hi all..
>
>I try to modify the linux kernel now for my studying..
>How can i find CPU-Type in the linux kernel-2.0.36?
>I can't find in the source where i write the function printk to output
>for cpu-type in the kernel.
>
arch/i386/kernel/setup.c contains CPU ID code.
Jon Plews.
------------------------------
From: Martin Recktenwald <[EMAIL PROTECTED]>
Subject: Re: Threads >> PThreads or LinuxThreads??
Date: 27 Apr 1999 13:50:35 +0200
[EMAIL PROTECTED] (Juergen Heinzl) writes:
> Here's a snippet where DEFAULT_SIG_XXX are SIGUSR1 and SIGUSR2 ...
> #ifdef SIGRTMIN
> int __pthread_sig_restart;
> int __pthread_sig_cancel;
> int __pthread_sig_debug;
> #else
> int __pthread_sig_restart = DEFAULT_SIG_RESTART;
> int __pthread_sig_cancel = DEFAULT_SIG_CANCEL;
> int __pthread_sig_debug = 0; /* disabled */
> #endif
If DEFAULT_SIG_RESTART/CANCEL are SIGUSR1/2 even with glibc21 this
means SIGUSR1/2 are not available for the program itself.
I guess I understood you wrong here ...
> ... and glibc-2.1 is available. I've to know since it is a somewhat
> patched 2.1.1pre1 system here.
prep.ai.mit.edu:/gnu/glibc/glibc-2.1-README:
"glibc-2.1 has been (temporarily) removed, until some
political issues are worked out."
Martin.
--
Sign the petition against spam:
http://www.politik-digital.de/spam/
------------------------------
From: "Tomas FRYDRYCH" <Use-Author-Address-Header@[127.1]>
Date: Tue, 27 Apr 1999 12:40:29 +0000
Subject: truly multilingual support in Linux?
I have come across a project by Summer Institute of Linguistics
that has to do with rendering of non-Roman scripts, but has much
wider application. The folk at SIL have developed system which
greatly simplifies input and display of text composed in languages
that need to use far more (context-sensitive) characters than the
basic ASCII set, plus it supports both left-to-right and right-to-left
languages. The system is capable of dealing with dozens of
languages (in a single document!!!), can be expanded virtually
without limits (without rewriting the code, i.e., by a non-
programmer) and in principle is very simple -- the low-level API
currently contains about a dozen of functions and a high-level API
for Windows about the same number.
If this system was built directly into an OS, such as Linux, it would
mean that any application designed for the system could deal
efficiently and correctly with multilingual data which might use
languages the application developer never even heard of.
Multilingual word processing is currently real pain under any OS I
have come across. While you can get versions of the OSs for
specific language groups, creating documents that combine
"incompatible" languages, such as English/Arabic, is really
frustrating. I believe that the system from SIL would make it
possible to remove this barier from computing once for ever, with
relatively little effort. Further, it would make it possible to use
applications under the OS efficiently even by people who use
languages for which it is not worth the effort to create a specific
version of the system -- in other words, an OS system which would
implement something like this would immediately become a trully
global player.
If anyone who is involved in the Linux development thinks that this
might be worth some effort, please use the human-readable email
address in the Author-Address header to contact me.
Tomas
(I myself am not currently a Linux user, althought I have played
with it and I realy like it. At the very moment porting my multilingual
documents to a new OS is a pain that does not seem worth the
effort. But I tell you that if Linux offered a trully multilingual support,
I would ditch Windows at this very moment, and there would many
others like me.)
------------------------------
Crossposted-To: comp.os.linux.advocacy
From: paul@bartok (Paul Bristow)
Subject: Re: redhat 6.0?
Date: Tue, 27 Apr 1999 10:48:49 GMT
[EMAIL PROTECTED] wrote:
: Any word from RedHat when on the official release date for RedHat linux 6.0
: is going to be?
Their web site says May 10th.
--
Paul C Bristow -- [EMAIL PROTECTED] -- http://www.cee.hw.ac.uk/~paul
"If you don't know what you need Windows NT for, you don't need it."
-- Bill Gates
------------------------------
From: [EMAIL PROTECTED] (Clifford T. Matthews)
Subject: Re: Change from gcc to egcs gives seg fault in make
Date: 27 Apr 1999 08:03:06 -0600
>>>>> "Craig" == Craig Graham <[EMAIL PROTECTED]> writes:
Craig> "Clifford T. Matthews" wrote: <SNIP : Deleted Cliff sharing a
Craig> useful insight>
I believe my insight is useful, but I can't say I've ever seen what
you're describing, which is the compiler itself crashing. My problem
is with code that has been compiled with one compiler but then links
against a shared library made with a separate compiler. Specifically
code that is compiled on a Red Hat 5.2 system that makes calls to the
ndbm routines. Such code will not run correctly on the Red Hat 6.0
beta system or on SuSE 6.0.
Craig> I've been getting this problem, and it did puzzle me -
Craig> sometimes egcs would compile a file ok, sometimes it would
Craig> crash. If it crashed, chances were it would compile ok if you
Craig> tried it again on the same file straight away.
Craig> You described what is most likely the problem - how did you
Craig> solve it?
I don't think that what I've described applies to your problem, but
that's because I doubt that you're using a compilation system that has
been compiled with one compiler and uses shared libraries that was
compiled with a different compiler. NOTE: This bug only affects
functions which return structs that are larger than 32 bits (which the
ndbm routines do).
Still, what follows is my workaround.
I wrote wrappers in C and then verified that my wrappers do the right
thing with the compiler I use. I could have written the wrappers in
assembly, but they would be relying on the particular calling
conventions associated with this problem, so I chose to just write
them in C and then modify our Makefile to make sure they're compiled
with enough optimization to avoid the double stack popping.
Here's the code I stuck in linux.c:
#if defined (__GNUC__) && defined (__GNUC_MINOR__)
#if __GNUC__ == 2 && __GNUC_MINOR__ == 7 && defined (__i386__)
/*
* There is a very bad problem associated with the use of the db
* shared libraries under Linux. Specifically, the calling convention
* for functions which return structs that are larger than 32 bits
* somehow got changed when some of the Linux distributions switched
* from gcc to egcs. Both compilers put an extra pointer on the stack
* before calling the routine that returns the large struct, but gcc
* expects the caller to pop that extra pointer, where egcs expects
* the called to pop it. This means that if you compile the caller
* with gcc and call a shared library that was called with egcs, the
* stack pointer will be off by 4 bytes after the function returns and
* the stack is adjusted. That can be a catastrophe if further code
* expects the stack to be correct after adjustments. On the other
* hand, if we make the questionable call and then do nothing else,
* the "leave" instruction will restore the stack pointer by using the
* frame pointer and we'll never be bothered by the extra pop.
*
* So, as a workaround, we can wrap the routines, then check the
* assembly code that the compiler produces to make sure that it's
* tolerant of the error, then call the wrappers. That makes the
* wrapper routines look like voodoo code that was written by a
* superstitious programmer, but the code (or some other workaround)
* is absolutely necessary because we want to have one Executor
* executable that can run with both the shared libraries from Red Hat
* 5.2 as well as the new ones in SuSE 6.0 (and the new ones that will
* probably be in Red Hat 6.0).
*
* These wrappers absolutely have to be compiled with enough
* optimization so that the stack isn't adjusted before the leave
* instruction. If it is adjusted, then any interrupt that occurs
* between the adjustment and the transfering of the data from the
* temporary stack space to the address passed will cause corruption.
*
* If you do not understand the above, or if you disagree with it,
* please contact Cliff before changing the following code. Axing the
* code alone and then testing the result is not sufficient, unless
* you're sure that your test involves *both* db shared libaries.
*
*/
PUBLIC void
_dbm_fetch (datum *datump, DBM *db, datum datum)
{
*datump = dbm_fetch (db, datum);
}
PUBLIC void
_dbm_firstkey (datum *datump, DBM *db)
{
*datump = dbm_firstkey (db);
}
PUBLIC void
_dbm_nextkey (datum *datump, DBM *db)
{
*datump = dbm_nextkey (db);
}
#endif
#endif
Here's the modification I made to linux.make (from which we build our
Makefile):
# see the extended comment in linux.c as to why we REQUIRE -O6 below
# if you change this, you may introduce a very subtle bug.
linux.o: linux.c
$(TARGET_GCC) $(TARGET_CFLAGS) -O6 -c -o $*.o $<
Here's the modification I made to the code that was calling the dbm
routines:
/*
* See the extended comment in linux.c before adjusting any of this.
* It's much more subtle than it looks.
*/
#if !defined (DBM_FETCH)
#define DBM_FETCH(datump, db, datum) (*(datump) = dbm_fetch ((db), (datum)))
#define DBM_FIRSTKEY(datump, db) (*(datump) = dbm_firstkey (db))
#define DBM_NEXTKEY(datump, db) (*(datump) = dbm_nextkey (db))
#endif
...
for (DBM_FIRSTKEY(&key, db); key.dptr; DBM_NEXTKEY(&key, db)) {
keyp = (rkey_t *) key.dptr;
if (isamatch(keyp, vcbp, &new)) {
DBM_FETCH (&content, db, key);
And here's the objdump of linux.o so you can see how compiling with -O6
PUBLIC void
_dbm_nextkey (datum *datump, DBM *db)
{
128: 55 pushl %ebp
129: 89 e5 movl %esp,%ebp
12b: 83 ec 08 subl $0x8,%esp
12e: 53 pushl %ebx
12f: 8b 5d 08 movl 0x8(%ebp),%ebx
*datump = dbm_nextkey (db);
132: 8d 55 f8 leal 0xfffffff8(%ebp),%edx
135: ff 75 0c pushl 0xc(%ebp)
138: 52 pushl %edx
139: e8 fc ff ff ff call 13a <_dbm_nextkey+0x12> <------------+
13e: 8b 55 f8 movl 0xfffffff8(%ebp),%edx |
141: 8b 4d fc movl 0xfffffffc(%ebp),%ecx |
144: 89 13 movl %edx,(%ebx) |
146: 89 4b 04 movl %ecx,0x4(%ebx) |
} |
149: 8b 5d f4 movl 0xfffffff4(%ebp),%ebx |
14c: c9 leave |
14d: c3 ret |
|
The important thing to note above is that there's no use of the |
stack pointer after the call to dbm_fetch, so it doesn't hurt us if |
our code uses a shared libary that pops the extra arg ---------------+
--Cliff
[EMAIL PROTECTED]
------------------------------
From: "Tony Pappas" <[EMAIL PROTECTED]>
Subject: Linux driver
Date: Tue, 27 Apr 1999 11:10:35 -0400
I've written a driver for a PCI card and have registered the symbols to
\proc\ksym. How would an application obtain these symbols? Is it a dynamic
link to the driver functions? Once I load my driver module, I do see the
symbols in \proc\ksym.
Thanks,
Tony Pappas
[EMAIL PROTECTED]
517-336-1831
517-336-1880 Fax
------------------------------
From: "JB" <[EMAIL PROTECTED]>
Subject: no links resolved while compiling mod_perl !!
Date: Tue, 27 Apr 1999 15:53:31 +0100
Ok guys, let's see this through :
I'm actually trying to support ASP with my apache server. To do so, you need
to install the apache perl module (mod_perl). The problem is :
when I try to recompile apche to include the module, no links are solved
while goiing the mod_perl part !!
I'm positive I've the right release of perl but it seems the compiled
libraries are missing for it doesn't link.
If anyone got the idea to go through that @^#{^#{[@^#{@�[\[\~@]@, thanks a
lot,
Max.
------------------------------
From: [EMAIL PROTECTED] (Frank McGirt)
Subject: Help with 2.2.6 mmap
Date: Tue, 27 Apr 1999 17:08:54 GMT
I have installed 2.2.6 kernel with no problems. but mmap file op has
been changed to delete first arg:
Old:
int (*mmap) (struct inode *, struct file *, struct vm_area_struct *);
New:
int (*mmap) (struct file *, struct vm_area_struct *);
Could someone please tell me the approved way
to get a minor device number other than the old way:
minor = MINOR(inode->i_rdev);
Does
minor = MINOR(file->f_dentry->d_inode->i_dev);
work????
.
I would appreciate any help or suggestions?
Frank McGirt
[EMAIL PROTECTED]
------------------------------
From: Michael McConnell <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.advocacy
Subject: Re: redhat 6.0?
Date: Tue, 27 Apr 1999 23:12:47 +0100
On Tue, 27 Apr 1999, Paul Bristow wrote:
> [EMAIL PROTECTED] wrote:
> : Any word from RedHat when on the official release date for RedHat linux 6.0
> : is going to be?
> Their web site says May 10th.
If you're after a CD of it, we already have it :)
Check out: http://www.amush.cx/linux/
-- Michael "Soruk" McConnell [Red Hat 6.0 Available!]
Eridani Star System -- The Most Up-to-Date Red Hat Linux CDROMs Available
Email: [EMAIL PROTECTED] http://www.amush.cx/linux/ Fax: +44-8701-600807
------------------------------
From: "Gianni Mariani" <[EMAIL PROTECTED]>
Subject: Re: Malloc-ing out of specific memory
Date: Tue, 27 Apr 1999 10:50:33 -0700
I did a thing called MMmalloc for SGI a long while back that could be easily
ported. I think they have the source code on the SGI Developer's Toolbox.
It implimented the SGI "amalloc" functionality
plus allowed for relocatable arenas.
Marcin Romaszewicz wrote in message <7g31b6$[EMAIL PROTECTED]>...
>
>Hello all,
>
>I need a malloc which will function on a specific memory area, a big plus
>if it's multiprocess safe. I need to set up a shared memory area between a
>set of processes, and malloc out of that memory area.
>
>Before I go re-inventing the wheel, I wonder if there already is some
>kind of modified malloc that would do this.
>
>Thanks,
>-- Marcin
>
------------------------------
Date: Tue, 27 Apr 1999 13:54:35 +0200
From: Alex Rhomberg <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development.apps
Subject: Re: Problem installing makemake with libstdc++
Fred Dunn wrote:
>
> Gak! I'm new to this whole Linux development game and I'm stuck. I'm
> attempting to install makemake-2.5.0-1.i386.rpm on a stock Redhat 5.2
> system and here's what I get as output:
>
> [root@Banff /tmp]# rpm -ivh makemake*
> error: failed dependencies:
> libstdc++-libc6.1.1.so.2 is needed by makemake-2.5.0-1
> So, anyone know what gives? I'm stuck until I solve this so any help
> is appreciated.
Let's look on a Starbuck (RH 5.9) system
spaceballs:/usr/lib% ls -l libstdc++-libc6.1-1.so.2
/usr/lib/libstdc++-libc6.1-1.so.2 -> libstdc++-2-libc6.1-1-2.9.0.so*
==> Note the hyphen; the name here is not 6.1.1 but 6.1-1
(version-release)
but it's probably save to
ln -s /usr/lib/libstdc++-libc6.1-1.so.2
/usr/lib/libstdc++-libc6.1.1.so.2
(or better install with --nodeps)
spaceballs:/usr/lib% rpm -q -f libstdc++-2-libc6.1-1-2.9.0.so
egcs-c++-1.1.2-12
libstdc++-2.9.0-12
spaceballs:/usr/lib% rpm -q -R libstdc++
/sbin/ldconfig
ld-linux.so.2
libNoVersion.so.1
libc.so.6
libm.so.6
libstdc++.so.2.7.2
libm.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.1)
libc.so.6(GLIBC_2.0)
I think you need to upgrade to glibc2.1 (as indicated by the libc6.1
somewhere in there)
If you don't to do that, you probably could get the src.rpm and compile
yourself.
Good luck
Alex (BTW, I had no problems whatsoever in upgrading my alphas to
glibc2.1)
--
_________________________________________________________________
/ \
| Alex Rhomberg Tel: +41 1 632 49 18 |
| Institut fuer Elektronik Fax: +41 1 632 12 10 |
| ETH Zuerich Zentrale: +41 1 632 11 11 |
| Gloriastrasse 35 |
| 8092 Zuerich email: [EMAIL PROTECTED] |
\_________________________________________________________________/
------------------------------
Crossposted-To:
comp.os.linux.admin,comp.os.linux.advocacy,comp.os.linux.development.apps,comp.os.linux.misc
From: [EMAIL PROTECTED] (Jennifer Radtke)
Subject: Open Source Software at 1999 USENIX Annual Conference--Reg Savings until May 3
Date: Tue, 27 Apr 1999 16:06:20 GMT
Top developers, systems administrators, and other UNIX gurus get the why as
well as the how-to at the renown USENIX Annual Conference. The USENIX
Conference takes place June 6-11, 1999, in Monterey, California. Programs
for the tutorial and technical sessions, including the FREENIX track, and
associated events are online. Please go to
http://www.usenix.org/events/usenix99
The FREENIX track is devoted to high level technical discussion of open
source software. FREENIX, now in its third year, offers peer-refereed
papers, expert talks, and evening sessions led by leading developers.
USENIX has also provided a grant to the OpenBSD development project to
support a new release. It will be distributed for free at the conference.
USENIX is helping to ensure that the development process for open source
software will continue to be characterized by intense yet healthy
competition.
The refereed papers are on topics of especially high interest: management
of resource systems, file systems, virtual memory systems, storage systems,
security, web server performance and O/S performance. The Invited talks
concentrate on the extremely practical; topics include: UNIX/Open System &
Y2K, IP Multicast, E-mail Bombs, IPv6, IP Telephony.
John Ousterhout, creator of Tcl/Tk and leading figure in the open source
world will deliver the conference keynote. His attention is on a
fundamental shift in software development to integration applications -
created by coordinating and extending existing applications, protocols,
frameworks, and devices.
24 tutorials are being offered over three days, with Eric Allman, Tom
Christiansen, Peter Galvin, Evi Nemeth, and Marcus Ranum among the
instructors. Courses range over systems administration, security, Linux,
high availability, kernel internals, Perl, performance tuning, network
programming and configuration, and more.
As always, there's lots of discussion in the halls, over beers, and, this
year, at the desserts Reception in the fantastic Monterey Bay Aquarium.
===========================================================================
USENIX is a not-for-profit society with an international membership of
scientists, engineers, and system administrators working on the cutting
edge of systems and software. For 25 years USENIX conferences and workshops
have emphasized the free exchange of technical ideas unfettered by
stodginess or commercialism.
------------------------------
From: "Michael Chen" <[EMAIL PROTECTED]>
Crossposted-To: comp.os.linux.development.apps,comp.os.linux.help
Subject: libpthread.so not thread safe?
Date: Tue, 27 Apr 1999 10:33:36 -0700
I have a multi-threaded shared-library module compiled with gcc on Linux.
If I link it with the default -shared option, it is NOT thread safe. At run-time,
it often deadlock in calls to pthread_mutex_trylock(). xxgdb reveals that
the mutex is not properly zero out after pthread_mutex_init().
Then I tried explicitly include "/usr/lib/libpthread.a" when I link the .so,
multi-threading seem to work fine.
Is there something about libpthread.so that I don't know?
I am using RedHat 5.2.
Many thanks
--Michael
------------------------------
From: [EMAIL PROTECTED]
Subject: AD1812 based sound card - Drivers!!!
Date: Tue, 27 Apr 1999 07:10:25 GMT
hi,
anyone know where (if at all), i can find the drivers (modules) for
a Action Media (Analog Logic's AD1812 based) sound card?
how to get it to work. it has SB compatibility but, i think, thru
s/w, and it is a PnP card.
TIA,
bdutta.
============= Posted via Deja News, The Discussion Network ============
http://www.dejanews.com/ Search, Read, Discuss, or Start Your Own
------------------------------
From: Maciej Golebiewski <[EMAIL PROTECTED]>
Subject: Re: Malloc-ing out of specific memory
Date: Tue, 27 Apr 1999 11:14:22 +0200
Marcin Romaszewicz wrote:
>
> Hello all,
>
> I need a malloc which will function on a specific memory area, a big plus
> if it's multiprocess safe. I need to set up a shared memory area between a
> set of processes, and malloc out of that memory area.
>
> Before I go re-inventing the wheel, I wonder if there already is some
> kind of modified malloc that would do this.
MPICH has a memory manager (allocator/deallocator) that (de)allocates
memory
blocks from a shmem area in a multiprocess-safe way.
http://www-unix.mcs.anl.gov/mpi/mpich/
After you download and unpack the code, look at mpid/ch_shmem or
mpid/ch_lfshmem.
Maciej
------------------------------
From: "Thierry BUCCO" <[EMAIL PROTECTED]>
Subject: limit connected users for a ftp server ?
Date: Tue, 27 Apr 1999 15:02:44 +0200
Hi,
i've transformed my linux box in a little ftp server. But i want to permit
connexion for only 2 guests. How can i do that ?
Thanks a lot.
Thierry - FRANCE
------------------------------
From: Stephan Wolff <[EMAIL PROTECTED]>
Subject: serielle Com && Time Stamp Counter
Date: Tue, 27 Apr 1999 16:31:16 +0200
Hallo Freaks
Ich suche jemanden der sich Kernelprogrammierung unter Linux auskennt,
und zwar geht es umfolgendes :
-Kernel Version 2.2.5
-Pentium system
-Programmierung der seriellen Schnittstelle com1 oder com2,
Characterdeveice
-Timerprogrammierung zur Zeitname :
a : mit dem iternen clock timer (REAL TIME CLOCK)
b : mit Hilfe des Pentium eigenen TIME STAMP COUNTER
Problemstellung :
es soll ein Kernelmodul (Geraete_treiber)erstellt werden,
welches die serielle Schnittstelle auf Eingabe �berwacht :
-einlesen eines 8bit Zeichens(Konfiguration Baudrate, Buffer =
NULL,
Paritybit soll alles Konform mit der bereits bestehenden
serial.c des Kernels bleiben, ebenfalls der Interrupthandler )
-dies soll im asynchronen Betrieb erfolgen ( abtesten ob Zeichen
eingegangen oder nicht mit Irq 3,4 je nach com)
-wenn ein Zeichen eingelesen wird soll sofort der Clock Timer
ausgelesen werden
(es soll daraus eine Echtzeitmessung werden,
welche eine Genauigkeit im Micro || Nano
sekunden bereich bewerkstelligt)
das Hauptproblem liegt hierbei in der Aktuellen Zeitname
innerhalb des Seriellen Ger�tetreibers es wird hier eine Irq
unterdr�ckung
mittles <cli> erforderlich sein
-der Devicetreiber, so hab ich mir gedacht, soll in folgender
weise implementiert werden, entweder durch Ver�nderung des
bereits
bestehen Seriellen Treibers des Linux Kernels (serial.c &
/dev/ttyS)
oder als neues Modul welches den Character mit dem der jeweiligen
Timestampstruktur zur�ck gibt
-Vor und Nachteile :
#bei Ver�nderung von serial .c wird der treiber incompatible, f�r
die Mouse
and so on .... weiter hin greift sich dieser Treiber
gleich alle coms die er findet mittels
autodetect ......
Frage : Wie kann man den Port und die Irq einer einzelnen com wieder
freigeben, so da�
man darauf wieder einen neuen Treiber (MODUL) setzen
kann.......
vielleicht mit setserial ???????
Wo greift man da am besten in den Treiber ein ???? vielleicht
beim
Auslesen des Ports, wo wird
der Port mit dem Filedescripter verkn�pft, wie kann
ich die verkn�pfung des R�ckgabewerts
mit der R�ckgabe des Time Stamps am besten realisieren,
ich will sp�ter im Usermode nur noch einen Filedescripter
auslesen der einen Character und die Timestructure
enth�lt auslesen und abspeichern
( dazu sind schon gute Programme in der Serial HOWTO erh�ltlich
die sich auf ein solches Modul zuschneiden lassen .........
Sinn und Zweck : Mu� man daf�r in bestehende Serialtreiber
eingreifen bzw. Neuschreiben oder
kann man diese Funktion auch Usermode realisieren, da ist
das Einlesen der eines Charkters mittels Irq kein
Problem(termio),
allerdings kann da die Zeitmessung nicht mehr ohne
Unterbrechung erfolgen (weil kein Zugriff auf die
Systeminterrupts
gestattet ist) dies kann man vielleicht noch
als root umgehen, falls sich dort cli einsetzen l��t,
weiterhin bleibt
bei solchen Sachen eine gewisse Zeitverz�gerung nicht
aus ,
da ich sowas noch nicht so oft
gemacht habe kenne ich mich da leider nur sehr
sp�rlich damit aus .....
wenn ich mich an dieser stelle geirrt habe bin ich f�r
jeden Tip f�r eine m�gliche
Implementierung sehr ;)
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Und hier f�r alle die nicht lesen wollten noch ein struktogramm :
serielle Pipeline --> UART-Baustein --> port,irq der com0
|
|
|<----- interrupthandler(async)
|
|
auslesen des
ports mit outb,inb
auslesen des
Time Stamp Counters
Problem : entweder serial.c oder neues Modul was kann man tun ???
beides in der
selben Interruptroutine
andere Interrupts
werden mit cli blockiert
|
|
|
/dev/ttySspezial-->
Ger�tetreiber (mknode)
|
|
|
auslesen der Device
mittels fd
zur�ck gegeben werden
Character und
zugeh�riger Time Stamp
|
|
|
fertig
Also noch mal wer dazu noch eine Idee hat oder wei� was nicht geht
oder wie man sowas realisiert der kann sich an folgende
Email addresse wenden oder eine Nachricht in der Newsgroup hinterlassen.
P.S. Quellcode von eigenen Treibern wird in dieser Beziehung nat�rlich
immer gern genommen, alte BORG WEISHEIT aus STARTRECK
"Was man nicht assimlieren kann, kann man auch nicht verstehen !"
Email :
[EMAIL PROTECTED]
Also dann hoff ich mal das sich jemand meldet und verabschiede mich
hiermit
Tsch�ss ............
------------------------------
** FOR YOUR REFERENCE **
The service address, to which questions about the list itself and requests
to be added to or deleted from it should be directed, is:
Internet: [EMAIL PROTECTED]
You can send mail to the entire list (and comp.os.linux.development.system) via:
Internet: [EMAIL PROTECTED]
Linux may be obtained via one of these FTP sites:
ftp.funet.fi pub/Linux
tsx-11.mit.edu pub/linux
sunsite.unc.edu pub/Linux
End of Linux-Development-System Digest
******************************