Home | History | Annotate | Download | only in kern

Lines Matching defs:shmmap_s

204 shm_delete_mapping(struct shmmap_state *shmmap_s,
215 SLIST_REMOVE(&shmmap_s->entries, shmmap_se, shmmap_entry, next);
216 shmmap_s->nitems--;
234 struct shmmap_state *oshmmap_s, *shmmap_s;
245 shmmap_s = kmem_zalloc(sizeof(struct shmmap_state), KM_SLEEP);
246 shmmap_s->nrefs = 1;
247 SLIST_INIT(&shmmap_s->entries);
248 p->p_vmspace->vm_shm = (void *)shmmap_s;
251 return shmmap_s;
261 SLIST_INSERT_HEAD(&shmmap_s->entries, shmmap_se, next);
263 shmmap_s->nitems = oshmmap_s->nitems;
266 return shmmap_s;
311 struct shmmap_state *shmmap_s1, *shmmap_s;
337 shmmap_s = shmmap_getprivate(p);
338 if (shmmap_s != shmmap_s1) {
340 SLIST_FOREACH(shmmap_se, &shmmap_s->entries, next)
353 uobj = shm_delete_mapping(shmmap_s, shmmap_se);
382 struct shmmap_state *shmmap_s;
410 shmmap_s = (struct shmmap_state *)vm->vm_shm;
411 if (shmmap_s && shmmap_s->nitems >= shminfo.shmseg) {
441 shmmap_s = shmmap_getprivate(p);
442 SLIST_INSERT_HEAD(&shmmap_s->entries, shmmap_se, next);
443 shmmap_s->nitems++;
472 uobj = shm_delete_mapping(shmmap_s, shmmap_se);
780 struct shmmap_state *shmmap_s;
787 shmmap_s = (struct shmmap_state *)vm1->vm_shm;
788 SLIST_FOREACH(shmmap_se, &shmmap_s->entries, next)
790 shmmap_s->nrefs++;
798 struct shmmap_state *shmmap_s;
802 shmmap_s = (struct shmmap_state *)vm->vm_shm;
803 if (shmmap_s == NULL) {
809 if (--shmmap_s->nrefs > 0) {
811 vm, shmmap_s->nitems, shmmap_s->nrefs));
812 SLIST_FOREACH(shmmap_se, &shmmap_s->entries, next) {
819 SHMPRINTF(("shmexit: vm %p cleanup (%d entries)\n", vm, shmmap_s->nitems));
820 if (shmmap_s->nitems == 0) {
822 kmem_free(shmmap_s, sizeof(struct shmmap_state));
834 shmmap_se = SLIST_FIRST(&shmmap_s->entries);
840 uobj = shm_delete_mapping(shmmap_s, shmmap_se);
849 if (SLIST_EMPTY(&shmmap_s->entries)) {
853 KASSERT(!SLIST_EMPTY(&shmmap_s->entries));
855 kmem_free(shmmap_s, sizeof(struct shmmap_state));