Added a kernel-only typedef (ptrint_t) giving an integral type that is

least unsuitable for holding an object pointer.  This should have been
used to fix warnings about casts between pointers and ints on alphas.

Moved corresponding existing general typedef (fptrint_t) for function
pointers from the i386 <machine/profile.h> to a kernel-only typedef
in <machine/types.h>.  Kludged libc/gmon/mcount.c so that it can
still see this typedef.
This commit is contained in:
Bruce Evans 1998-07-10 02:27:16 +00:00
parent f763857cff
commit 2e480d34aa
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=37540
5 changed files with 27 additions and 12 deletions

View file

@ -36,11 +36,20 @@
static char sccsid[] = "@(#)mcount.c 8.1 (Berkeley) 6/4/93";
#endif
static const char rcsid[] =
"$Id: mcount.c,v 1.9 1997/02/22 14:58:27 peter Exp $";
"$Id: mcount.c,v 1.10 1998/03/09 04:42:19 jb Exp $";
#endif
#ifndef __NETBSD_SYSCALLS
#ifdef KERNEL
#include <sys/param.h>
#else
/* Kludge to get fptrint_t declared. */
#define KERNEL
#include <sys/param.h>
#undef KERNEL
#endif
#include <sys/gmon.h>
#ifdef KERNEL
#include <sys/systm.h>
@ -325,4 +334,4 @@ mexitcount(selfpc)
}
#endif /* GUPROF */
#endif
#endif /* !__NETBSD_SYSCALLS */

View file

@ -1,4 +1,4 @@
/* $Id: types.h,v 1.4 1998/06/14 15:26:03 bde Exp $ */
/* $Id: types.h,v 1.5 1998/06/27 15:35:00 dfr Exp $ */
/* From: NetBSD: types.h,v 1.8 1997/04/06 08:47:45 cgd Exp */
/*-
@ -75,6 +75,12 @@ typedef int64_t register_t;
typedef int32_t ufs_daddr_t;
#ifdef KERNEL
/* An unsigned integral type that can hold object pointers. */
typedef u_int32_t ptrint_t;
/* An unsigned integral type that can hold function pointers. */
typedef u_int32_t fptrint_t;
typedef u_int64_t uoff_t; /* unsigned file offset */
#endif

View file

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)profile.h 8.1 (Berkeley) 6/11/93
* $Id: profile.h,v 1.13 1997/12/15 02:18:30 tegge Exp $
* $Id: profile.h,v 1.14 1998/02/03 20:32:38 bde Exp $
*/
#ifndef _MACHINE_PROFILE_H_
@ -103,9 +103,6 @@ mcount() \
}
#endif /* KERNEL */
/* An unsigned integral type that can hold function pointers. */
typedef u_int fptrint_t;
/*
* An unsigned integral type that can hold non-negative difference between
* function pointers.

View file

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)profile.h 8.1 (Berkeley) 6/11/93
* $Id: profile.h,v 1.13 1997/12/15 02:18:30 tegge Exp $
* $Id: profile.h,v 1.14 1998/02/03 20:32:38 bde Exp $
*/
#ifndef _MACHINE_PROFILE_H_
@ -103,9 +103,6 @@ mcount() \
}
#endif /* KERNEL */
/* An unsigned integral type that can hold function pointers. */
typedef u_int fptrint_t;
/*
* An unsigned integral type that can hold non-negative difference between
* function pointers.

View file

@ -31,7 +31,7 @@
* SUCH DAMAGE.
*
* @(#)types.h 8.3 (Berkeley) 1/5/94
* $Id: types.h,v 1.12 1998/06/14 14:08:21 bde Exp $
* $Id: types.h,v 1.13 1998/06/18 15:32:05 bde Exp $
*/
#ifndef _MACHINE_TYPES_H_
@ -70,6 +70,12 @@ typedef int32_t register_t;
typedef int32_t ufs_daddr_t;
#ifdef KERNEL
/* An unsigned integral type that can hold object pointers. */
typedef u_int32_t ptrint_t;
/* An unsigned integral type that can hold function pointers. */
typedef u_int32_t fptrint_t;
typedef __uint64_t uoff_t; /* unsigned file offset */
#endif