From e3cbdeffc01c18d5aee8a8d43fbd277316a18f87 Mon Sep 17 00:00:00 2001 From: William Cohen Date: Fri, 20 Jun 2008 14:42:25 -0400 Subject: Functions for kdev_t information: MAJOR, MINOR, MKDEV, and usrdev2kerndev. --- ChangeLog | 4 ++++ stapfuncs.5.in | 14 ++++++++++++++ tapset/ChangeLog | 4 ++++ tapset/dev.stp | 33 +++++++++++++++++++++++++++++++++ 4 files changed, 55 insertions(+) create mode 100644 tapset/dev.stp diff --git a/ChangeLog b/ChangeLog index 8492689a..e80c6465 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2008-06-20 wcohen + + * stapfuncs.5.in: Add documentation for tapset/dev.stp functions. + 2008-06-18 Josh Stone PR 6644 diff --git a/stapfuncs.5.in b/stapfuncs.5.in index d8a1a55c..acfb42f9 100644 --- a/stapfuncs.5.in +++ b/stapfuncs.5.in @@ -642,6 +642,20 @@ or SIG_ERR, it will return the address of the handler. signal_str(num) Returns the string representation of the given signal number. +.SS DEVICE +.TP +MAJOR:long(dev:long) +Extracts the major device number from a kernel device number (kdev_t). +.TP +MINOR:long(dev:long) +Extracts the minor device number from a kernel device number (kdev_t). +.TP +MKDEV:long(major:long, minor:long) +Creates a value that can be compared to a kernel device number (kdev_t). +.TP +usrdev2kerndev:long(dev:long) +Converts a user-space device number into the format used in the kernel. + .SH FILES .nh .IR @prefix@/share/systemtap/tapset diff --git a/tapset/ChangeLog b/tapset/ChangeLog index d51e186a..efb660c6 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,7 @@ +2008-06-20 wcohen + + * dev.stp: New. + 2008-06-19 Zhaolei * aux_syscalls.stp: Output unknown bits in _stp_lookup_or_str. diff --git a/tapset/dev.stp b/tapset/dev.stp new file mode 100644 index 00000000..80449324 --- /dev/null +++ b/tapset/dev.stp @@ -0,0 +1,33 @@ +// Device numbering tapset +// Copyright (C) 2008 Red Hat Corp. +// +// This file is part of systemtap, and is free software. You can +// redistribute it and/or modify it under the terms of the GNU General +// Public License (GPL); either version 2, or (at your option) any +// later version. + +%{ +#include +%} + +function MAJOR:long(dev:long) +%{ /* pure */ + THIS->__retvalue = MAJOR(THIS->dev); +%} + + +function MINOR:long(dev:long) +%{ /* pure */ + THIS->__retvalue = MINOR(THIS->dev); +%} + + +function MKDEV:long(major:long, minor:long) +%{ /* pure */ + THIS->__retvalue = MKDEV(THIS->major,THIS->minor); +%} + +function usrdev2kerndev:long(dev:long) +%{ /* pure */ + THIS->__retvalue = new_decode_dev(THIS->dev); +%} -- cgit