Annotation of 42BSD/lib/libc/vax/csu/gmon.h, revision 1.1.1.1

1.1       root        1:     /* @(#)gmon.h      4.4 (Berkeley) 1/13/83  */
                      2: 
                      3: struct phdr {
                      4:     char       *lpc;
                      5:     char       *hpc;
                      6:     int                ncnt;
                      7: };
                      8: 
                      9:     /*
                     10:      * histogram counters are unsigned shorts (according to the kernel).
                     11:      */
                     12: #define        HISTCOUNTER     unsigned short
                     13: 
                     14:     /*
                     15:      * fraction of text space to allocate for histogram counters
                     16:      * here, 1/2
                     17:      */
                     18: #define        HISTFRACTION    2
                     19: 
                     20:     /*
                     21:      * Fraction of text space to allocate for from hash buckets.
                     22:      * The value of HASHFRACTION is based on the minimum number of bytes
                     23:      * of separation between two subroutine call points in the object code.
                     24:      * Given MIN_SUBR_SEPARATION bytes of separation the value of
                     25:      * HASHFRACTION is calculated as:
                     26:      *
                     27:      *         HASHFRACTION = MIN_SUBR_SEPARATION / (2 * sizeof(short) - 1);
                     28:      *
                     29:      * For the VAX, the shortest two call sequence is:
                     30:      *
                     31:      *         calls   $0,(r0)
                     32:      *         calls   $0,(r0)
                     33:      *
                     34:      * which is separated by only three bytes, thus HASHFRACTION is 
                     35:      * calculated as:
                     36:      *
                     37:      *         HASHFRACTION = 3 / (2 * 2 - 1) = 1
                     38:      *
                     39:      * Note that the division above rounds down, thus if MIN_SUBR_FRACTION
                     40:      * is less than three, this algorithm will not work!
                     41:      */
                     42: #define        HASHFRACTION    1
                     43: 
                     44:     /*
                     45:      * percent of text space to allocate for tostructs
                     46:      * with a minimum.
                     47:      */
                     48: #define ARCDENSITY     2
                     49: #define MINARCS                50
                     50: 
                     51: struct tostruct {
                     52:     char               *selfpc;
                     53:     long               count;
                     54:     unsigned short     link;
                     55: };
                     56: 
                     57:     /*
                     58:      * a raw arc,
                     59:      *     with pointers to the calling site and the called site
                     60:      *     and a count.
                     61:      */
                     62: struct rawarc {
                     63:     unsigned long      raw_frompc;
                     64:     unsigned long      raw_selfpc;
                     65:     long               raw_count;
                     66: };
                     67: 
                     68:     /*
                     69:      * general rounding functions.
                     70:      */
                     71: #define ROUNDDOWN(x,y) (((x)/(y))*(y))
                     72: #define ROUNDUP(x,y)   ((((x)+(y)-1)/(y))*(y))

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.