Annotation of coherent/b/lib/libc/crt/_prof.c, revision 1.1.1.1

1.1       root        1: /*
                      2:  * libc/crt/_prof.c
                      3:  * Runtime profiling.
                      4:  */
                      5: 
                      6: #include <stdio.h>
                      7: #include <unistd.h>
                      8: #include <sys/types.h>
                      9: 
                     10: #if    _I386
                     11: extern _start();
                     12: extern __end_text();
                     13: #define        BTEXT   _start
                     14: #define        ETEXT   __end_text
                     15: #else
                     16: extern etext();
                     17: #define        BTEXT   (caddr_t)1
                     18: #define        ETEXT   etext
                     19: #endif
                     20: 
                     21: /*
                     22:  * The profiling runtime start-off mcrts0.s
                     23:  * enables profiling by calling _profon() before calling main().
                     24:  */
                     25: _profon()
                     26: {
                     27: #ifndef        Z8001
                     28:        register unsigned       bufl;
                     29:        register short          *buf;
                     30:        static char             emsg[]  = "No room for profil buffer\n";
                     31: 
                     32:        bufl = ((unsigned)ETEXT - (unsigned)BTEXT) / 2;
                     33:        buf = (short *)sbrk(bufl * sizeof (short));
                     34:        if (buf == NULL) {
                     35:                write(STDERR_FILENO, emsg, sizeof emsg);
                     36:                abort();
                     37:        }
                     38:        monitor((caddr_t)BTEXT, (caddr_t)ETEXT, buf, bufl);
                     39: #else
                     40:        monitor((caddr_t)1);            /* dummy call to start things off */
                     41: #endif
                     42: }
                     43: 
                     44: /*
                     45:  * The profiling runtime start-off mcrts0.s
                     46:  * disables profiling by calling _profoff() at _exit.
                     47:  * It turns off profiling and writes out the final profiling information.
                     48:  */
                     49: _profoff()
                     50: {
                     51:        monitor(NULL);
                     52: }
                     53: 
                     54: /* end of libc/crt/_prof.c */

unix.superglobalmegacorp.com

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