The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/EXTERNAL_HEADERS/mach-o/kld.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /*
    2  * Copyright (c) 1999 Apple Computer, Inc. All rights reserved.
    3  *
    4  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
    5  * 
    6  * This file contains Original Code and/or Modifications of Original Code
    7  * as defined in and that are subject to the Apple Public Source License
    8  * Version 2.0 (the 'License'). You may not use this file except in
    9  * compliance with the License. The rights granted to you under the License
   10  * may not be used to create, or enable the creation or redistribution of,
   11  * unlawful or unlicensed copies of an Apple operating system, or to
   12  * circumvent, violate, or enable the circumvention or violation of, any
   13  * terms of an Apple operating system software license agreement.
   14  * 
   15  * Please obtain a copy of the License at
   16  * http://www.opensource.apple.com/apsl/ and read it before using this file.
   17  * 
   18  * The Original Code and all software distributed under the License are
   19  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
   20  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
   21  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
   22  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
   23  * Please see the License for the specific language governing rights and
   24  * limitations under the License.
   25  * 
   26  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
   27  */
   28 
   29 #ifndef _MACHO_KLD_H_
   30 #define _MACHO_KLD_H_
   31 
   32 #include <mach-o/loader.h>
   33 #include <stdarg.h>
   34 
   35 /*
   36  * These API's are in libkld.  Both kmodload(8) and /mach_kernel should
   37  * link with -lkld and then ld(1) will expand -lkld to libkld.dylib or
   38  * libkld.a depending on if -dynamic or -static is in effect.
   39  *
   40  * Note: we are using the __DYNAMIC__ flag to indicate user space kernel
   41  * linking and __STATIC__ as a synonym of KERNEL.
   42  */
   43 
   44 /*
   45  * Note that you must supply the following function for error reporting when
   46  * using any of the functions listed here.
   47  */
   48 extern void kld_error_vprintf(const char *format, va_list ap);
   49 
   50 /*
   51  * These two are only in libkld.dylib for use by kmodload(8) (user code compiled
   52  * with the default -dynamic).
   53  */
   54 #ifdef __DYNAMIC__
   55 __private_extern__ long kld_load_basefile(
   56     const char *base_filename);
   57 
   58 /* Note: this takes only one object file name */
   59 __private_extern__ long kld_load(
   60     struct mach_header **header_addr,
   61     const char *object_filename,
   62     const char *output_filename);
   63 
   64 __private_extern__ long kld_load_from_memory(
   65     struct mach_header **header_addr,
   66     const char *object_name,
   67     char *object_addr,
   68     long object_size,
   69     const char *output_filename);
   70 #endif /* __DYNAMIC__ */
   71 
   72 /*
   73  * This two are only in libkld.a use by /mach_kernel (kernel code compiled with
   74  * -static).
   75  */
   76 #ifdef __STATIC__
   77 /* Note: this api does not write an output file */
   78 __private_extern__ long kld_load_from_memory(
   79     struct mach_header **header_addr,
   80     const char *object_name,
   81     char *object_addr,
   82     long object_size);
   83 #endif /* __STATIC__ */
   84 
   85 __private_extern__ long kld_load_basefile_from_memory(
   86     const char *base_filename,
   87     char *base_addr,
   88     long base_size);
   89 
   90 __private_extern__ long kld_unload_all(
   91     long deallocate_sets);
   92 
   93 __private_extern__ long kld_lookup(
   94     const char *symbol_name,
   95     unsigned long *value);
   96 
   97 __private_extern__ long kld_forget_symbol(
   98     const char *symbol_name);
   99 
  100 __private_extern__ void kld_address_func(
  101     unsigned long (*func)(unsigned long size, unsigned long headers_size));
  102 
  103 #define KLD_STRIP_ALL   0x00000000
  104 #define KLD_STRIP_NONE  0x00000001
  105 
  106 __private_extern__ void kld_set_link_options(
  107     unsigned long link_options);
  108 
  109 #endif /* _MACHO_KLD_H_ */

Cache object: 67bbd654680f9ba740774c2c20d29267


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.