Lines Matching refs:shm

47 	globals->shm	 = NULL;  in tsrm_win32_ctor()
71 if (globals->shm) { in tsrm_win32_dtor()
72 for (ptr = globals->shm; ptr < (globals->shm + globals->shm_size); ptr++) { in tsrm_win32_dtor()
78 free(globals->shm); in tsrm_win32_dtor()
405 for (ptr = TWG(shm); ptr < (TWG(shm) + TWG(shm_size)); ptr++) { in shm_get()
416 if (ptr < (TWG(shm) + TWG(shm_size))) { in shm_get()
420 newptr = (shm_pair*)realloc((void*)TWG(shm), (TWG(shm_size)+1)*sizeof(shm_pair)); in shm_get()
425 TWG(shm) = newptr; in shm_get()
635 shm_pair *shm; in shmget() local
661 …info_handle = CreateFileMapping(INVALID_HANDLE_VALUE, NULL, PAGE_READWRITE, 0, sizeof(shm->descrip… in shmget()
689 for (shm_pair *ptr = TWG(shm); ptr < (TWG(shm) + TWG(shm_size)); ptr++) { in shmget()
692 ptr = TWG(shm); in shmget()
698 shm = shm_get(key, NULL); in shmget()
699 if (!shm) { in shmget()
704 shm->segment = shm_handle; in shmget()
705 shm->info = info_handle; in shmget()
706 shm->descriptor = MapViewOfFileEx(shm->info, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL); in shmget()
708 if (NULL != shm->descriptor && created) { in shmget()
709 shm->descriptor->shm_perm.key = key; in shmget()
710 shm->descriptor->shm_segsz = size; in shmget()
711 shm->descriptor->shm_ctime = time(NULL); in shmget()
712 shm->descriptor->shm_cpid = getpid(); in shmget()
713 shm->descriptor->shm_perm.mode = flags; in shmget()
715 shm->descriptor->shm_perm.cuid = shm->descriptor->shm_perm.cgid= 0; in shmget()
716 shm->descriptor->shm_perm.gid = shm->descriptor->shm_perm.uid = 0; in shmget()
717 shm->descriptor->shm_atime = shm->descriptor->shm_dtime = 0; in shmget()
718 shm->descriptor->shm_lpid = shm->descriptor->shm_nattch = 0; in shmget()
719 shm->descriptor->shm_perm.mode = shm->descriptor->shm_perm.seq = 0; in shmget()
722 …if (NULL != shm->descriptor && (shm->descriptor->shm_perm.key != key || size > shm->descriptor->sh… in shmget()
723 if (NULL != shm->segment) { in shmget()
724 CloseHandle(shm->segment); in shmget()
726 UnmapViewOfFile(shm->descriptor); in shmget()
727 CloseHandle(shm->info); in shmget()
736 shm_pair *shm = shm_get(key, NULL); in shmat() local
738 if (!shm || !shm->segment) { in shmat()
742 shm->addr = MapViewOfFileEx(shm->segment, FILE_MAP_ALL_ACCESS, 0, 0, 0, NULL); in shmat()
744 if (NULL == shm->addr) { in shmat()
750 shm->descriptor->shm_atime = time(NULL); in shmat()
751 shm->descriptor->shm_lpid = getpid(); in shmat()
752 shm->descriptor->shm_nattch++; in shmat()
754 return shm->addr; in shmat()
759 shm_pair *shm = shm_get(0, (void*)shmaddr); in shmdt() local
762 if (!shm || !shm->segment) { in shmdt()
766 shm->descriptor->shm_dtime = time(NULL); in shmdt()
767 shm->descriptor->shm_lpid = getpid(); in shmdt()
768 shm->descriptor->shm_nattch--; in shmdt()
770 ret = UnmapViewOfFile(shm->addr) ? 0 : -1; in shmdt()
771 if (!ret && shm->descriptor->shm_nattch <= 0) { in shmdt()
772 ret = UnmapViewOfFile(shm->descriptor) ? 0 : -1; in shmdt()
773 shm->descriptor = NULL; in shmdt()
780 shm_pair *shm = shm_get(key, NULL); in shmctl() local
782 if (!shm || !shm->segment) { in shmctl()
788 memcpy(buf, shm->descriptor, sizeof(struct shmid_ds)); in shmctl()
792 shm->descriptor->shm_ctime = time(NULL); in shmctl()
793 shm->descriptor->shm_perm.uid = buf->shm_perm.uid; in shmctl()
794 shm->descriptor->shm_perm.gid = buf->shm_perm.gid; in shmctl()
795 shm->descriptor->shm_perm.mode = buf->shm_perm.mode; in shmctl()
799 if (shm->descriptor->shm_nattch < 1) { in shmctl()
800 shm->descriptor->shm_perm.key = -1; in shmctl()