Annotation of xinu/sys/interrupt.s, revision 1.1.1.1

1.1       root        1: /* interrupt.s - disable, restore, enable */
                      2: 
                      3: #include <procreg.h>
                      4: 
                      5: /*----------------------------------------------------------------------------
                      6:  * disable -- disable interrupts and save current IPL at argument address
                      7:  *----------------------------------------------------------------------------
                      8:  *     On entry, the stack contains (at AP+4) the address of a longword at
                      9:  *     which disable should save the current IPL.
                     10:  *     To call:  PStype ps;  disable(ps);
                     11: */
                     12:        .text                           /* text in subsegment 0         */
                     13:        .align  1                       /* clr low bit of loc counter   */
                     14:        .globl  _disable                /* external name                */
                     15: _disable:                              /* entry point for disable      */
                     16:        .word   0x0                     /* entry mask,save no registers */
                     17:        mfpr    $IPL, *4(ap)            /* store old IPL                */
                     18:        mtpr    $DISABLE, $IPL          /* disable interrupts           */
                     19:        ret
                     20: 
                     21: /*----------------------------------------------------------------------------
                     22:  * restore -- restore interrupts to argument IPL
                     23:  *----------------------------------------------------------------------------
                     24:  *     On entry, the stack contains (at AP+4) the address of a longword
                     25:  *     containing the new IPL level.
                     26:  *     To call:  PStype ps;  restore(ps);
                     27: */
                     28:        .text
                     29:        .align  1
                     30:        .globl  _restore                /* global procedure name        */
                     31: _restore:
                     32:        .word   0x0                     /* entry mask,no regs saved     */
                     33:        mtpr    *4(ap), $IPL            /* restore IPL                  */
                     34:        ret
                     35: 
                     36: /*----------------------------------------------------------------------------
                     37:  * enable -- enable interrupts
                     38:  *----------------------------------------------------------------------------
                     39:  *     To call:  enable();
                     40: */
                     41:        .text
                     42:        .align  1
                     43:        .globl  _enable                 /* global procedure name        */
                     44: _enable:
                     45:        .word   0x0                     /* entry mask,no regs saved     */
                     46:        mtpr    $ENABLE, $IPL           /* enable interrupts            */
                     47:        ret

unix.superglobalmegacorp.com

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