Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

prof(1)

monitor(3C)

PROFIL(2)  —  Silicon Graphics

NAME

profil − execution time profile

SYNOPSIS

profil (buff, bufsiz, offset, scale)
char ∗buff;
int bufsiz, offset, scale;

DESCRIPTION

Buff points to an area of core whose length (in bytes) is given by bufsiz. After this call, the user’s program counter (pc) is examined each clock tick; offset is subtracted from it, and the result multiplied by scale. If the resulting number corresponds to a word inside buff, that word is incremented.

The scale is interpreted as an unsigned (16 bit), fixed-point fraction with binary point at the left: FFFF (hex) gives a 1-1 mapping of pc’s to words in buff; FFFF (hex) maps each pair of instruction words together. 2(hex) maps all instructions onto the beginning of buff (producing a non-interrupting core clock). 

Profiling is turned off by giving a scale of 0 or 1.  It is rendered ineffective by giving a bufsiz of 0.  Profiling is turned off when an exec is executed, but remains on in child and parent both after a fork. Profiling will be turned off if an update in buff would cause a memory fault. 

RETURN VALUE

Not defined. 

SEE ALSO

prof(1), monitor(3C). 

ASSEMBLER

moveq#44,D0
movlbuff,A0
movlbufsiz,D1
movloffset,A1
movlD2,save
movlscale,D2
trap#0
movlsave,D2

The D2 register must be saved when calling profil(2) since that register might be in use by the "C" program that calls this routine.

Version 3.6  —  December 20, 1987

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026