home *** CD-ROM | disk | FTP | other *** search
/ H4CK3R 4 / hacker04 / 04_HACK04.ISO / darwin / darwinx86.iso / usr / include / mach / i386 / rpc.h < prev    next >
Encoding:
C/C++ Source or Header  |  2001-09-30  |  1.9 KB  |  52 lines

  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_ */
  52.