Subject: re: CVS commit: syssrc/sys/kern
To: source-changes@netbsd.org, Simon Burge <simonb@wasabisystems.com>
From: matthew green <mrg@eterna.com.au>
List: source-changes
Date: 11/03/2002 17:51:33
   
   
   i don't like this change.  i think we can keep it as a small hack
   #ifdef COMPAT_16 in sysctl_diskstats()... certainly it should only
   be visible for COMPAT_16.


something like this appears to work just fine.  anyone mind if i
commit this?


Index: subr_disk.c
===================================================================
RCS file: /cvsroot/syssrc/sys/kern/subr_disk.c,v
retrieving revision 1.46
diff -p -r1.46 subr_disk.c
*** subr_disk.c	2002/11/01 15:20:03	1.46
--- subr_disk.c	2002/11/03 06:50:55
*************** sysctl_disknames(void *vwhere, size_t *s
*** 387,392 ****
--- 387,409 ----
  	return (error);
  }
  
+ #ifdef COMPAT_16
+ struct odisk_sysctl {
+ 	char		dk_name[DK_DISKNAMELEN];
+ 	int32_t		dk_busy;
+ 	int32_t		pad;
+ 	u_int64_t	dk_xfer;
+ 	u_int64_t	dk_seek;
+ 	u_int64_t	dk_bytes;
+ 	u_int32_t	dk_attachtime_sec;
+ 	u_int32_t	dk_attachtime_usec;
+ 	u_int32_t	dk_timestamp_sec;
+ 	u_int32_t	dk_timestamp_usec;
+ 	u_int32_t	dk_time_sec;
+ 	u_int32_t	dk_time_usec;
+ };
+ #endif
+ 
  int
  sysctl_diskstats(int *name, u_int namelen, void *vwhere, size_t *sizep)
  {
*************** sysctl_diskstats(int *name, u_int namele
*** 405,411 ****
--- 422,432 ----
  	}
  
  	if (namelen == 0)
+ #ifdef COMPAT_16
+ 		tocopy = sizeof(struct odisk_sysctl);
+ #else
  		tocopy = sizeof(sdisk);
+ #endif
  	else
  		tocopy = name[0];