Annotation of XNU/osfmk/mach/i386/rpc.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: /*
                     23:  * @OSF_COPYRIGHT@
                     24:  */
                     25: #ifndef _MACH_I386_RPC_H_
                     26: #define _MACH_I386_RPC_H_
                     27: 
                     28: /*
                     29:  * Just temporary until all vestiges of short-circuit can be
                     30:  * removed.
                     31:  */
                     32: #define CAN_SHCIRCUIT(name)    (0)
                     33: 
                     34: /*
                     35:  * Kernel machine dependent macros for mach rpc
                     36:  *
                     37:  * User args (argv) begin two words above the frame pointer (past saved ebp 
                     38:  * and return address) on the user stack. Return code is stored in register
                     39:  * ecx, by convention (must be a caller-saves register, to survive return
                     40:  * from server work function). The user space instruction pointer is eip,
                     41:  * and the user stack pointer is uesp.
                     42:  */
                     43: #define MACH_RPC_ARGV(act)     ( (char *)(USER_REGS(act)->ebp + 8) )
                     44: #define MACH_RPC_RET(act)      ( USER_REGS(act)->ecx )
                     45: #define MACH_RPC_FUNC(act)     ( USER_REGS(act)->edx )
                     46: #define MACH_RPC_SIG(act)       ( USER_REGS(act)->edi ) 
                     47: #define MACH_RPC_UIP(act)      ( USER_REGS(act)->eip )
                     48: #define MACH_RPC_USP(act)      ( USER_REGS(act)->uesp )
                     49: #define MACH_RPC_RETADDR(sp)    ( *((int *)sp - 1) )
                     50: 
                     51: #endif /* _MACH_I386_RPC_H_ */

unix.superglobalmegacorp.com

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