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/

Reply via email to