Annotation of xinu/sys/preset.c, revision 1.1.1.2

1.1       root        1: /* preset.c - preset */
                      2: 
                      3: #include <conf.h>
                      4: #include <kernel.h>
                      5: #include <mark.h>
                      6: #include <ports.h>
                      7: 
                      8: /*------------------------------------------------------------------------
                      9:  *  preset  --  reset a port, freeing waiting processes and messages
                     10:  *------------------------------------------------------------------------
                     11:  */
                     12: SYSCALL        preset(portid, dispose)
                     13:        int     portid;
                     14:        int     (*dispose)();
                     15: {
                     16:        struct  pt *ptptr;
                     17: 
1.1.1.2 ! root       18: #ifdef DEBUG
        !            19:        dotrace("preset", &portid, 2);
        !            20: #endif
        !            21:        disable();
1.1       root       22:        if ( isbadport(portid) ||
                     23: #ifdef MEMMARK
                     24:             unmarked(ptmark) ||
                     25: #endif
                     26:             (ptptr= &ports[portid])->ptstate != PTALLOC ) {
1.1.1.2 ! root       27:                restore();
1.1       root       28:                return(SYSERR);
                     29:        }
                     30:        _ptclear(ptptr, PTALLOC, dispose);
1.1.1.2 ! root       31:        restore();
1.1       root       32:        return(OK);
                     33: }

unix.superglobalmegacorp.com

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