[comp.sys.m68k] Motorola shared memory questions

ftw@datacube.UUCP (11/19/87)

/* Written  3:48 pm  Nov 19, 1987 by ftw@datacube.UUCP in datacube:comp.unix.wizards */
/* ---------- "Motorola shared memory questions" ---------- */
Anyone out there have experience with shared memory in Sys V.3?  I'm porting
a driver from a Sun 3 environment, and one of the requirements is that a
large chunk of physical address space be mapped into a users' virtual
address space.  This range of address may not swapped or cached.

In Sun land, the driver did this by calling valloc(), and passing the pointer
returned by valloc() to a function that calls mmap() enough times to get all
the addresses mapped.

In Motorola's Sys V port, they have added extensions to the shmget() function
that allows physical addresses to be mapped.  The default parameters for
my system allow up to 128K bytes to be bought per-call.  I need more space
than this, so I call shmget() more than once, and I call shmat() to get
back the corresponding virtual addresses.  The addresses that come out of
shmat() result in a non-contiguous virtual address space.  I really need
it to be contiguous.  The second argument to shmat() can be NULL, or a
valid user virtual address.  I've tried buying memory with malloc() and
passing that pointer to shmat, but I always get EINVAL from shmat().

Any Motorola Sys V gurus out there?


				Farrell T. Woods 

Datacube Inc. Systems / Software Group	4 Dearborn Rd. Peabody, Ma 01960
VOICE:	617-535-6644;	FAX: (617) 535-5643;  TWX: (710) 347-0125
INTERNET: ftw@datacube.COM
UUCP: {rutgers, ihnp4, mirror}!datacube!ftw
/* End of text from datacube:comp.unix.wizards */