The ioctl mechanism also gives the kernel the ability to approve or
disapprove every change. I'm not running large machines but whole avionics
systems doing development work for new electronics. We also need absolute
reliability and the ioctl mechanism has given me the flexibility I need.
Perhaps it's more programming than the memory block approach, but it is more
"object oriented" (certainly more modular).
Norm
----- Original Message -----
From: Gearheart, Todd <[EMAIL PROTECTED]>
To: 'Dresner, Norman A.' <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, February 07, 2001 1:19 PM
Subject: RE: [rtl] beginner question
> Hi!
>
> >Finally, using, for example,
> > append="mem=125m"
> >I can reserve the top 5 MB of memory in a 128 MB machine and then use it
as
> >shared memory "directly." There are techniques that allow using the same
> >address for these blocks in both the kernel & user-land so data
structures
> >can contain valid pointers.
>
> Indeed, been there done this...
>
>
> I chose my method because it gave my kernel level handler the ability to
> examine and approve/disapprove all changes made by User space before
making
> them. When you have SEVERAL TONS of machine sitting atop 6 hydraulic jacks
> running 3000 PSI - with 2 to 4 humans inside (then there is the hydraulic
> control loading system connected to the yoke/columns running at 1200 PSI
> that 1 to 2 humans are holding on to/reclining against). It is always best
> to be RIDICULOUSLY paranoid...
>
> ;-)
>
>
> -----Original Message-----
> From: Dresner, Norman A. [mailto:[EMAIL PROTECTED]]
> Sent: Wednesday, February 07, 2001 11:29 AM
> To: 'Gearheart, Todd'; 'Stuart Hughes'
> Cc: '[EMAIL PROTECTED]'
> Subject: RE: [rtl] beginner question
>
>
> Todd.
>
> It's always seemed to me to be much safer and simpler to implement
ioctl(2)
> functions to get & set parameters or data blocks.
>
> Also consider mmap(2) to give users access to kernel data segments (always
a
> risky proposition which is why I favor ioctl.
>
> Finally, using, for example,
> append="mem=125m"
> I can reserve the top 5 MB of memory in a 128 MB machine and then use it
as
> shared memory "directly." There are techniques that allow using the same
> address for these blocks in both the kernel & user-land so data structures
> can contain valid pointers.
>
> Norman Dresner
> Fellow Systems Engineer
> Radar Systems Engineering Department
> Electronic Systems and Sensors Segment
> Northrop Grumman Corporation
> Baltimore-Washington International Airport
> 7323 Aviation Boulevard
> Baltimore Maryland 21240
>
> Voice: (410) 993 - 2096 Mornings; all-day voice-mail
> (410) 969 - 8068 Afternoons with answering machine
> FAX: (410) 993 - 8084 On-site
> (410) 969 - 8068 Afternoons; call first to arrange
> E-Mail: Mornings: [EMAIL PROTECTED]
> Afternoons: [EMAIL PROTECTED]
>
>
>
> > -----Original Message-----
> > From: Gearheart, Todd [SMTP:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 07, 2001 11:15 AM
> > To: 'Stuart Hughes'
> > Cc: '[EMAIL PROTECTED]'
> > Subject: RE: [rtl] beginner question
> >
> > You can also "access" private data in kernel address space from user
mode
> > programs, by employing a simple trick. A user program can request access
> > to
> > a section of private kernel address space (via fifos, shared memory, or
> > whatever). Then a kernel module can copy the requested section of the
> > kernel
> > private address space "needed in user space" into shared memory. Then
user
> > mode program can view/modify the shared memory area and signal/indicate
> > the
> > change(s) made. Finally the kernel module can take care of "updating"
the
> > changes back into the kernel private address space (from the shared
memory
> > area).
> >
> > I was able to implement a similar "swapping technique" in my simulator
> > application. It allows access to ALL kernel real-time storage from the
> > user
> > side as well...
> >
> > Regards,
> > Todd Gearheart
> >
> > -----Original Message-----
> > From: Stuart Hughes [mailto:[EMAIL PROTECTED]]
> > Sent: Wednesday, February 07, 2001 7:43 AM
> > To: Stefano Picerno
> > Cc: [EMAIL PROTECTED]
> > Subject: Re: [rtl] beginner question
> >
> >
> > Stefano Picerno wrote:
> > >
> > > If I have two different realtime modules, can I access the address
space
> > > of one of them from the other?
> > >
> > > I mean, if task A have some private data at 0x1234578, can task B read
> > the
> > > same data at the same address?
> >
> > Yes, they occupy the same kernel address space.
> >
> > Regards, Stuart
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > ---
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
> > -- [rtl] ---
> > To unsubscribe:
> > echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> > echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> > ---
> > For more information on Real-Time Linux see:
> > http://www.rtlinux.org/rtlinux/
> -- [rtl] ---
> To unsubscribe:
> echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
> echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
> ---
> For more information on Real-Time Linux see:
> http://www.rtlinux.org/rtlinux/
>
>
-- [rtl] ---
To unsubscribe:
echo "unsubscribe rtl" | mail [EMAIL PROTECTED] OR
echo "unsubscribe rtl <Your_email>" | mail [EMAIL PROTECTED]
---
For more information on Real-Time Linux see:
http://www.rtlinux.org/rtlinux/