lkml.org 
[lkml]   [2009]   [Jul]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH -tip -v10 5/7] x86: add pt_regs register and stack access APIs
    Andi Kleen wrote:
    > Masami Hiramatsu <mhiramat@redhat.com> writes:
    >
    >> Add following APIs for accessing registers and stack entries from pt_regs.
    >
    > You forgot to state who calls these functions/why are they added?
    > Who only has strings for registers?

    Oh, yes. This patch is needed for kprobes based event tracer on ftrace.
    Some other debugging tools might be able to use it.

    > I can see the point of having a function for nth argument though,
    > that's useful.
    >
    >> +static inline unsigned long regs_get_argument_nth(struct pt_regs *regs,
    >> + unsigned n)
    >> +{
    >> + if (n < NR_REGPARMS) {
    >> + switch (n) {
    >> + case 0:
    >> + return regs->ax;
    >> + case 1:
    >> + return regs->dx;
    >> + case 2:
    >> + return regs->cx;
    >
    >
    > [....]
    >
    > That could be done shorter with a offsetof table.
    >
    >> + if (n < NR_REGPARMS) {
    >> + switch (n) {
    >> + case 0:
    >> + return regs->di;
    >> + case 1:
    >> + return regs->si;
    >> + case 2:
    >> + return regs->dx;
    >> + case 3:
    >> + return regs->cx;
    >> + case 4:
    >> + return regs->r8;
    >> + case 5:
    >> + return regs->r9;
    >
    > and that too.

    I'm not so sure about your idea.
    Would you mean below code?

    int offs_table[NR_REGPARMS] = {
    [0] = offsetof(struct pt_regs, di),
    ...
    };
    if (n < NR_REGPARMS)
    return *((unsigned long *)regs + offs_table[n]);


    Thank you,

    --
    Masami Hiramatsu

    Software Engineer
    Hitachi Computer Products (America), Inc.
    Software Solutions Division

    e-mail: mhiramat@redhat.com



    \
     
     \ /
      Last update: 2009-07-06 21:29    [W:5.508 / U:0.460 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site