Blame


1 cfa37a7b 2004-04-10 devnull .TH GETCALLERPC 3
2 cfa37a7b 2004-04-10 devnull .SH NAME
3 cfa37a7b 2004-04-10 devnull getcallerpc \- fetch return PC of current function
4 cfa37a7b 2004-04-10 devnull .SH SYNOPSIS
5 cfa37a7b 2004-04-10 devnull .br
6 cfa37a7b 2004-04-10 devnull .B #include <u.h>
7 cfa37a7b 2004-04-10 devnull .br
8 cfa37a7b 2004-04-10 devnull .B #include <libc.h>
9 cfa37a7b 2004-04-10 devnull .PP
10 cfa37a7b 2004-04-10 devnull .B ulong getcallerpc(void *firstarg)
11 cfa37a7b 2004-04-10 devnull .SH DESCRIPTION
12 cfa37a7b 2004-04-10 devnull .I Getcallerpc
13 cfa37a7b 2004-04-10 devnull is a portable way to discover the PC to which the current function will return.
14 cfa37a7b 2004-04-10 devnull .I Firstarg
15 cfa37a7b 2004-04-10 devnull should be a pointer to the first argument to the function in question.
16 cfa37a7b 2004-04-10 devnull .SH EXAMPLE
17 cfa37a7b 2004-04-10 devnull .IP
18 cfa37a7b 2004-04-10 devnull .EX
19 cfa37a7b 2004-04-10 devnull void
20 cfa37a7b 2004-04-10 devnull printpc(ulong arg)
21 cfa37a7b 2004-04-10 devnull {
22 cfa37a7b 2004-04-10 devnull print("Called from %.8lux\en", getcallerpc(&arg));
23 cfa37a7b 2004-04-10 devnull }
24 cfa37a7b 2004-04-10 devnull
25 cfa37a7b 2004-04-10 devnull void
26 cfa37a7b 2004-04-10 devnull main(int argc, char *argv[])
27 cfa37a7b 2004-04-10 devnull {
28 cfa37a7b 2004-04-10 devnull printpc(0);
29 cfa37a7b 2004-04-10 devnull printpc(0);
30 cfa37a7b 2004-04-10 devnull printpc(0);
31 cfa37a7b 2004-04-10 devnull }
32 cfa37a7b 2004-04-10 devnull .EE
33 cfa37a7b 2004-04-10 devnull .SH SOURCE
34 c3674de4 2005-01-11 devnull .B \*9/src/lib9/
35 cfa37a7b 2004-04-10 devnull .SH BUGS
36 cfa37a7b 2004-04-10 devnull The
37 cfa37a7b 2004-04-10 devnull .I firstarg
38 cfa37a7b 2004-04-10 devnull parameter should not be necessary.