typedef struct Probe Probe;
struct Probe {
/* probe386.s knows offsets of these */
void (*entry)(Probe *);
void (*exit)(Probe *);
void *func;
void *saveret;
u32int *argp;
u32int rval;
u32int orig[2];
u32int probe[2];
u32int exitcode[32];
u32int entrycode[32];
/* rest if devprobe */
Probe *next;
char name[16];
int enabled;
uvlong ticks;
u32int arg0;
};
/* probe386.s */
extern void pentrytmpl(void);
extern void pexittmpl(void);
/* arch dependent probe.c */
extern void freeprobe(Probe *);
extern Probe *mkprobe(void *, void (*)(Probe *), void (*)(Probe *));
extern void probeuninstall(Probe *);
extern void probeinstall(Probe *);
|