1
0
mirror of https://git.FreeBSD.org/src.git synced 2025-01-25 16:13:17 +00:00

Add a function for exporting 64 bit types.

This commit is contained in:
David Malone 2007-06-04 18:14:28 +00:00
parent 41e419cb61
commit df82ff50ed
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=170288
2 changed files with 26 additions and 0 deletions

View File

@ -891,6 +891,31 @@ sysctl_handle_long(SYSCTL_HANDLER_ARGS)
return (error);
}
/*
* Handle a 64 bit int, signed or unsigned. arg1 points to it.
*/
int
sysctl_handle_quad(SYSCTL_HANDLER_ARGS)
{
int error = 0;
uint64_t tmpout;
/*
* Attempt to get a coherent snapshot by making a copy of the data.
*/
if (!arg1)
return (EINVAL);
tmpout = *(uint64_t *)arg1;
error = SYSCTL_OUT(req, &tmpout, sizeof(uint64_t));
if (error || !req->newptr)
return (error);
error = SYSCTL_IN(req, arg1, sizeof(uint64_t));
return (error);
}
/*
* Handle our generic '\0' terminated 'C' string.
* Two cases:

View File

@ -170,6 +170,7 @@ struct sysctl_oid {
int sysctl_handle_int(SYSCTL_HANDLER_ARGS);
int sysctl_msec_to_ticks(SYSCTL_HANDLER_ARGS);
int sysctl_handle_long(SYSCTL_HANDLER_ARGS);
int sysctl_handle_quad(SYSCTL_HANDLER_ARGS);
int sysctl_handle_intptr(SYSCTL_HANDLER_ARGS);
int sysctl_handle_string(SYSCTL_HANDLER_ARGS);
int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS);