+ shmh = (struct shmhandle *)
+ malloc(sizeof(struct shmhandle), M_SHM, M_WAITOK);
+ shmh->shmh_kva = 0;
+ shmh->shmh_id = (caddr_t)(0xc0000000|rval); /* XXX */
+ error = vm_mmap(shm_map, &shmh->shmh_kva, ctob(size),
+ VM_PROT_ALL, VM_PROT_ALL,
+ MAP_ANON, shmh->shmh_id, 0);
+ if (error) {
+ free((caddr_t)shmh, M_SHM);