[comp.unix.questions] pmap, mmap, iomap... what unixes are these available on?

uccjcm@ecsvax.uncecs.edu (John McLendon) (09/07/89)

We're looking at un*x's to move our application to, but we need
to be able to memory map a register based board we produce
into a processes address space. HP has iomap. Sun has mmap
which I presume can do the same thing. Regulus has a non-standard
call that does this. Concurrent does it with mmap.
Does anyone know if AT&T can do this with the latest SYSV/386?
How about other un*x's?
			Thanks in advance...
			John
-- 
Signed: John McLendon                uunet\
        (919) 846-7931 (home)		   >mcnc!ecsvax!uccjcm
        (919) 941-5730 (play)	    gatech/

kdg@nirvo.uucp (Kurt Gollhardt) (09/08/89)

In article <7634@ecsvax.uncecs.edu> uccjcm@ecsvax.uncecs.edu (John McLendon) writes:
>
>We're looking at un*x's to move our application to, but we need
>to be able to memory map a register based board we produce
>into a processes address space. HP has iomap. Sun has mmap
>which I presume can do the same thing. Regulus has a non-standard
>call that does this. Concurrent does it with mmap.
>Does anyone know if AT&T can do this with the latest SYSV/386?
>How about other un*x's?

The current AT&T UNIX System V/386 Release 3.2, and similar systems,
do not support mmap() (or iomap, or any such).  Release 4.0, however,
will provide mmap(), including its other function of mapping a file
into a process's address space.

On the other hand, it *is* possible in 3.2 for a device driver to set up
such a mapping for its own device (though the mechanisms for doing so are
somewhat arcane, and such a driver would probably have to be modified to
work with 4.0).  This is done for the console video board when running
SimulTask 386 or X Windows.

-- 
Kurt Gollhardt                      \   Nirvonics, Inc. -- Plainfield, NJ
Kurt.Gollhardt@nirvo.uucp           /\     Software Design and Consulting
...!rutgers!nirvo!Kurt.Gollhardt   /  \
     "It's all about people; not you and me or him and her, but *us*."

tony@cairo.UUCP (Tony Anzelmo) (09/08/89)

In article <7634@ecsvax.uncecs.edu> uccjcm@ecsvax.uncecs.edu (John McLendon) writes:
>
>We're looking at un*x's to move our application to, but we need
>to be able to memory map a register based board we produce
>into a processes address space. HP has iomap. Sun has mmap
>which I presume can do the same thing. Regulus has a non-standard
>call that does this. Concurrent does it with mmap.
>Does anyone know if AT&T can do this with the latest SYSV/386?
>How about other un*x's?
>			Thanks in advance...
>			John
>-- 
>Signed: John McLendon                uunet\
>        (919) 846-7931 (home)		   >mcnc!ecsvax!uccjcm
>        (919) 941-5730 (play)	    gatech/


The Alliant version of UNIX (Concentrix) has recently released a rich
set of real-time extensions under the name FX/RT. It includes I/O primitives
including:

	o The ability to map process virtual addresses to external
	  bus address space (VME or multibus) via the call rt_map_vtoe.
	  This call allows direct access to device registers for control or
	  programmed I/O.

	o The ability to allocate and load external bus mapping registers
	  via rt_alloc_extba/rt_map_etov. These calls allow a dma device
	  to be controlled from a user process.

	o The ability to connect a device interrupt to a user written
	  interrupt service routine by allocating an interrupt vector
	  (rt_alloc_intvec), installing an interrupt service routine
	  (isr_install), and connecting the two (rt_conn_intr). In
	  addition, the interrupt service routine can wakeup waiting
	  processes through the use of semaphores and/or events.

The above facilities permit a complete user written driver to be developed.
In addition to these I/O related facilities, other system calls and library
routines in FX/RT include:

	o Place a process into a real-time scheduling class that uses
	  fixed-priority preemptive policies.

	o Asynchronous event and semaphore synchronization primitives.

	o A logical naming facility to allow unrelated processes to use
	  common events, semaphores, and I/O objects.

	o Shared memory support.

	o Finer control over processor scheduling (such as, binding to
	  a particular cpu) and memory residency (such as, locking a
	  process in memory to prevent paging/swapping).


Tony Anzelmo
Anzelmo Associates, Inc.
508-568-1880
...!linus!alliant!cairo!tony

plocher%sally@Sun.COM (John Plocher) (09/13/89)

In article <7634@ecsvax.uncecs.edu> uccjcm@ecsvax.uncecs.edu (John McLendon) writes:
>
>to be able to memory map a register based board we produce
>Does anyone know if AT&T can do this with the latest SYSV/386?

The latest SYSV/386 is Vr4.0 (Not avaliable in stores, send CASH via email to late
night scams, PO BOX ....) and it does have mmap().  Vr3.2 has a mechanism to map in the
video memory into a shared memory segment, (see discussion here about 2 months ago
(June/July))

BTW, Vr4 is nice.  It has *LOTS* of neat features, like job control, symbolioc
links, RFS and NFS, Sun RPC, YP, ANSI C, lightweight processes, and 50# of doc!
I just wish I had the time to hack - I could write so many nifty things!

   -John Plocher