it's read from the buffer filled by VG_(read_procselfmaps_contents)(). */
extern
void VG_(parse_procselfmaps) (
- void (*record_mapping)( Addr addr, UInt len, Char rr, Char ww, Char xx,
+ void (*record_mapping)( Addr addr, SizeT len, Char rr, Char ww, Char xx,
UInt dev, UInt ino, ULong foff,
const UChar *filename ) );
extern void VG_(mini_stack_dump) ( Addr ips[], UInt n_ips );
extern SegInfo * VG_(read_seg_symbols) ( Segment *seg );
extern void VG_(symtab_incref) ( SegInfo * );
-extern void VG_(symtab_decref) ( SegInfo *, Addr a, UInt len );
+extern void VG_(symtab_decref) ( SegInfo *, Addr a );
extern Bool VG_(get_fnname_nodemangle)( Addr a, Char* fnname, Int n_fnname );
UInt flags; /* SF_* */
Addr addr; /* mapped addr (page aligned) */
- UInt len; /* size of mapping (page aligned) */
+ SizeT len; /* size of mapping (page aligned) */
/* These are valid if (flags & SF_FILE) */
ULong offset; /* file offset */
extern Segment *VG_(first_segment)(void);
extern Segment *VG_(next_segment)(Segment *);
-extern Bool VG_(seg_contains)(const Segment *s, Addr ptr, UInt size);
-extern Bool VG_(seg_overlaps)(const Segment *s, Addr ptr, UInt size);
+extern Bool VG_(seg_contains)(const Segment *s, Addr ptr, SizeT size);
+extern Bool VG_(seg_overlaps)(const Segment *s, Addr ptr, SizeT size);
-extern void VG_(pad_address_space)(void);
+extern void VG_(pad_address_space) (void);
extern void VG_(unpad_address_space)(void);
extern REGPARM(1)
/*====================================================================*/
static void build_valgrind_map_callback
- ( Addr start, UInt size, Char rr, Char ww, Char xx,
+ ( Addr start, SizeT size, Char rr, Char ww, Char xx,
UInt dev, UInt ino, ULong foffset, const UChar* filename )
{
UInt prot = 0;
Addr sp_at_startup___global_arg = 0;
static void build_segment_map_callback
- ( Addr start, UInt size, Char rr, Char ww, Char xx,
+ ( Addr start, SizeT size, Char rr, Char ww, Char xx,
UInt dev, UInt ino, ULong foffset, const UChar* filename )
{
UInt prot = 0;
/*--- Maintain an ordered list of all the client's mappings ---*/
/*--------------------------------------------------------------*/
-Bool VG_(seg_contains)(const Segment *s, Addr p, UInt len)
+Bool VG_(seg_contains)(const Segment *s, Addr p, SizeT len)
{
Addr se = s->addr+s->len;
Addr pe = p+len;
return (p >= s->addr && pe <= se);
}
-Bool VG_(seg_overlaps)(const Segment *s, Addr p, UInt len)
+Bool VG_(seg_overlaps)(const Segment *s, Addr p, SizeT len)
{
Addr se = s->addr+s->len;
Addr pe = p+len;
{
recycleseg(s);
if (s->symtab != NULL) {
- VG_(symtab_decref)(s->symtab, s->addr, s->len);
+ VG_(symtab_decref)(s->symtab, s->addr);
s->symtab = NULL;
}
s->dev != dev ||
s->ino != ino ||
s->offset != off)) {
- VG_(symtab_decref)(s->symtab, s->addr, s->len);
+ VG_(symtab_decref)(s->symtab, s->addr);
s->symtab = NULL;
}
} else {
So the sig of the called fn might be
- void (*record_mapping)( Addr start, UInt size,
+ void (*record_mapping)( Addr start, SizeT size,
Char r, Char w, Char x,
ULong foffset, UChar* filename )
procmap_buf!
*/
void VG_(parse_procselfmaps) (
- void (*record_mapping)( Addr addr, UInt len, Char rr, Char ww, Char xx,
+ void (*record_mapping)( Addr addr, SizeT len, Char rr, Char ww, Char xx,
UInt dev, UInt ino, ULong foff, const UChar* filename )
)
{
continue;
if (seg->symtab != NULL)
- VG_(symtab_decref)(seg->symtab, seg->addr, seg->len);
+ VG_(symtab_decref)(seg->symtab, seg->addr);
VG_(symtab_incref)(si);
seg->symtab = si;
return;
}
-void VG_(symtab_decref)(SegInfo *si, Addr start, UInt len)
+void VG_(symtab_decref)(SegInfo *si, Addr start)
{
vg_assert(si->ref >= 1);
if (--si->ref == 0)