1da2e3ebdSchin /*********************************************************************** 2da2e3ebdSchin * * 3da2e3ebdSchin * This software is part of the ast package * 4*b30d1939SAndy Fiddaman * Copyright (c) 1985-2011 AT&T Intellectual Property * 5da2e3ebdSchin * and is licensed under the * 6*b30d1939SAndy Fiddaman * Eclipse Public License, Version 1.0 * 77c2fbfb3SApril Chin * by AT&T Intellectual Property * 8da2e3ebdSchin * * 9da2e3ebdSchin * A copy of the License is available at * 10*b30d1939SAndy Fiddaman * http://www.eclipse.org/org/documents/epl-v10.html * 11*b30d1939SAndy Fiddaman * (with md5 checksum b35adb5213ca9657e911e9befb180842) * 12da2e3ebdSchin * * 13da2e3ebdSchin * Information and Software Systems Research * 14da2e3ebdSchin * AT&T Research * 15da2e3ebdSchin * Florham Park NJ * 16da2e3ebdSchin * * 17da2e3ebdSchin * Glenn Fowler <gsf@research.att.com> * 18da2e3ebdSchin * David Korn <dgk@research.att.com> * 19da2e3ebdSchin * Phong Vo <kpv@research.att.com> * 20da2e3ebdSchin * * 21da2e3ebdSchin ***********************************************************************/ 22da2e3ebdSchin #if defined(_UWIN) && defined(_BLD_ast) 23da2e3ebdSchin _STUB_vmsegment()24da2e3ebdSchinvoid _STUB_vmsegment(){} 25da2e3ebdSchin 26da2e3ebdSchin #else 27da2e3ebdSchin 28da2e3ebdSchin #include "vmhdr.h" 29da2e3ebdSchin 30da2e3ebdSchin /* Get the segment containing this address 31da2e3ebdSchin ** 32da2e3ebdSchin ** Written by Kiem-Phong Vo, kpv@research.att.com, 02/07/95 33da2e3ebdSchin */ 34da2e3ebdSchin 35da2e3ebdSchin #if __STD_C vmsegment(Vmalloc_t * vm,Void_t * addr)36da2e3ebdSchinVoid_t* vmsegment(Vmalloc_t* vm, Void_t* addr) 37da2e3ebdSchin #else 38da2e3ebdSchin Void_t* vmsegment(vm, addr) 39da2e3ebdSchin Vmalloc_t* vm; /* region */ 40da2e3ebdSchin Void_t* addr; /* address */ 41da2e3ebdSchin #endif 42da2e3ebdSchin { 43*b30d1939SAndy Fiddaman Seg_t *seg; 44*b30d1939SAndy Fiddaman Vmdata_t *vd = vm->data; 45da2e3ebdSchin 46*b30d1939SAndy Fiddaman SETLOCK(vm, 0); 47da2e3ebdSchin 48da2e3ebdSchin for(seg = vd->seg; seg; seg = seg->next) 49da2e3ebdSchin if((Vmuchar_t*)addr >= (Vmuchar_t*)seg->addr && 50da2e3ebdSchin (Vmuchar_t*)addr < (Vmuchar_t*)seg->baddr ) 51da2e3ebdSchin break; 52da2e3ebdSchin 53*b30d1939SAndy Fiddaman CLRLOCK(vm, 0); 54*b30d1939SAndy Fiddaman 55da2e3ebdSchin return seg ? (Void_t*)seg->addr : NIL(Void_t*); 56da2e3ebdSchin } 57da2e3ebdSchin 58da2e3ebdSchin #endif 59