darwin-xnu/osfmk/ipc/ipc_types.h
<<
>>
Prefs
   1/*
   2 * Copyright (c) 2000-2005 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
  26/*
  27 * Define Basic IPC types available to callers.
  28 * These are not intended to be used directly, but
  29 * are used to define other types available through
  30 * port.h and mach_types.h for in-kernel entities.
  31 */
  32
  33#ifndef _IPC_IPC_TYPES_H_
  34#define _IPC_IPC_TYPES_H_
  35
  36#include <mach/port.h>
  37#include <mach/message.h>
  38#include <mach/mach_types.h>
  39
  40#ifdef  MACH_KERNEL_PRIVATE
  41
  42typedef natural_t ipc_table_index_t;    /* index into tables */
  43typedef natural_t ipc_table_elems_t;    /* size of tables */
  44typedef natural_t ipc_entry_bits_t;
  45typedef ipc_table_elems_t ipc_entry_num_t;      /* number of entries */
  46typedef ipc_table_index_t ipc_port_request_index_t;
  47
  48typedef mach_port_name_t mach_port_index_t;             /* index values */
  49typedef mach_port_name_t mach_port_gen_t;               /* generation numbers */
  50
  51typedef struct ipc_entry *ipc_entry_t;
  52typedef struct ipc_tree_entry *ipc_tree_entry_t;
  53typedef struct ipc_table_size *ipc_table_size_t;
  54typedef struct ipc_port_request *ipc_port_request_t;
  55typedef struct ipc_pset *ipc_pset_t;
  56typedef struct ipc_kmsg *ipc_kmsg_t;
  57
  58#define IE_NULL ((ipc_entry_t) 0)
  59#define ITE_NULL        ((ipc_tree_entry_t) 0)
  60#define ITS_NULL        ((ipc_table_size_t) 0)
  61#define         ITS_SIZE_NONE   ((ipc_table_elems_t) -1)
  62#define IPR_NULL        ((ipc_port_request_t) 0)
  63#define IPS_NULL        ((ipc_pset_t) 0)
  64#define IKM_NULL        ((ipc_kmsg_t) 0)
  65
  66typedef void (*mach_msg_continue_t)(mach_msg_return_t); /* after wakeup */
  67
  68#else   /* MACH_KERNEL_PRIVATE */
  69
  70struct ipc_object ;
  71
  72#endif  /* MACH_KERNEL_PRIVATE */
  73
  74typedef struct ipc_object       *ipc_object_t;
  75
  76#define IPC_OBJECT_NULL         ((ipc_object_t) 0)
  77#define IPC_OBJECT_DEAD         ((ipc_object_t)~0)
  78#define IPC_OBJECT_VALID(io)    (((io) != IPC_OBJECT_NULL) && \
  79                                 ((io) != IPC_OBJECT_DEAD))
  80
  81#endif  /* _IPC_IPC_TYPES_H_ */
  82
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.