Annotation of kernel/mach/ppc/syscall_sw.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * Portions Copyright (c) 1999 Apple Computer, Inc.  All Rights
                      7:  * Reserved.  This file contains Original Code and/or Modifications of
                      8:  * Original Code as defined in and that are subject to the Apple Public
                      9:  * Source License Version 1.1 (the "License").  You may not use this file
                     10:  * except in compliance with the License.  Please obtain a copy of the
                     11:  * License at http://www.apple.com/publicsource and read it before using
                     12:  * this file.
                     13:  * 
                     14:  * The Original Code and all software distributed under the License are
                     15:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     16:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     17:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     18:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     19:  * License for the specific language governing rights and limitations
                     20:  * under the License.
                     21:  * 
                     22:  * @APPLE_LICENSE_HEADER_END@
                     23:  */
                     24: 
                     25: /* Copyright (c) 1991 NeXT Computer, Inc.  All rights reserved.
                     26:  *
                     27:  *     File:   mach/ppc/syscall_sw.h
                     28:  *     Author: Matt Watson, NeXT Computer, Inc.
                     29:  *
                     30:  *     This header file defines system call macros
                     31:  *     for the PowerPC family processors.
                     32:  *
                     33:  * HISTORY
                     34:  *
                     35:  *  4-Apr-97  Umesh Vaishampayan ([email protected])
                     36:  *     Fixed the system call calling convention.
                     37:  *
                     38:  *  28-Mar-97  Matt Watson ([email protected])
                     39:  *     Ported to ppc.
                     40:  *
                     41:  *  6-Nov-92  Ben Fathi ([email protected])
                     42:  *     Ported to m98k.
                     43:  *
                     44:  * 23-Jan-91  Mike DeMoney ([email protected])
                     45:  *     Created.
                     46:  */
                     47: 
                     48: #ifndef        _MACH_PPC_SYSCALL_SW_H_
                     49: #define        _MACH_PPC_SYSCALL_SW_H_
                     50: 
                     51: #import <architecture/ppc/asm_help.h>
                     52: #import <architecture/ppc/pseudo_inst.h>
                     53: 
                     54: /*
                     55:  * Mach system call traps.
                     56:  *
                     57:  * The first 8 system call args are passed by user-code in
                     58:  * a0 - a7. (Should there ever need to be more
                     59:  * than 8 args, those should be passed in s0 - s17.)
                     60:  *
                     61:  * The system call number is in r0.
                     62:  *
                     63:  * NOTE: (Like the C calling convention), the kernel does not
                     64:  * preserve caller-saves across system calls.
                     65:  */
                     66: 
                     67: /*
                     68:  * kernel_trap_args_N -- Put the arguments in the right places.
                     69:  * Args are passed in a0 - a7, system call number in ep.
                     70:  */
                     71: #define        kernel_trap_args_0
                     72: #define        kernel_trap_args_1
                     73: #define        kernel_trap_args_2
                     74: #define        kernel_trap_args_3
                     75: #define        kernel_trap_args_4
                     76: #define        kernel_trap_args_5
                     77: #define        kernel_trap_args_6
                     78: #define        kernel_trap_args_7
                     79: 
                     80: /*
                     81:  * simple_kernel_trap -- Mach system calls with 8 or less args
                     82:  * Args are passed in a0 - a7, system call number in r0.
                     83:  * Do a "sc" instruction to enter kernel.
                     84:  */    
                     85: #define simple_kernel_trap(trap_name, trap_number)     \
                     86:        .globl  _##trap_name                            @\
                     87: _##trap_name:                                          @\
                     88:        li      r0,trap_number                           @\
                     89:        sc                                               @\
                     90:        blr                                              @\
                     91:        END(trap_name)
                     92: 
                     93: #define kernel_trap_0(trap_name,trap_number)            \
                     94:        simple_kernel_trap(trap_name,trap_number)
                     95: 
                     96: #define kernel_trap_1(trap_name,trap_number)            \
                     97:        simple_kernel_trap(trap_name,trap_number)
                     98: 
                     99: #define kernel_trap_2(trap_name,trap_number)            \
                    100:        simple_kernel_trap(trap_name,trap_number)
                    101: 
                    102: #define kernel_trap_3(trap_name,trap_number)            \
                    103:        simple_kernel_trap(trap_name,trap_number)
                    104: 
                    105: #define kernel_trap_4(trap_name,trap_number)            \
                    106:        simple_kernel_trap(trap_name,trap_number)
                    107: 
                    108: #define kernel_trap_5(trap_name,trap_number)            \
                    109:        simple_kernel_trap(trap_name,trap_number)
                    110: 
                    111: #define kernel_trap_6(trap_name,trap_number)            \
                    112:        simple_kernel_trap(trap_name,trap_number)
                    113: 
                    114: #define kernel_trap_7(trap_name,trap_number)            \
                    115:        simple_kernel_trap(trap_name,trap_number)
                    116: 
                    117: #define kernel_trap_8(trap_name,trap_number)            \
                    118:         simple_kernel_trap(trap_name,trap_number)
                    119: 
                    120: #define kernel_trap_9(trap_name,trap_number)            \
                    121:         simple_kernel_trap(trap_name,trap_number)
                    122: 
                    123: #define kernel_trap(trap_name,trap_number,nargs)        \
                    124:        kernel_trap_##nargs(trap_name,trap_number)
                    125: 
                    126: #endif /* _MACH_PPC_SYSCALL_SW_H_ */

unix.superglobalmegacorp.com

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