]> git.saurik.com Git - apple/xnu.git/blobdiff - osfmk/i386/bsd_i386_native.c
xnu-4903.270.47.tar.gz
[apple/xnu.git] / osfmk / i386 / bsd_i386_native.c
index 6b8e1d1249deb7890f7846380615237d5c150506..541ec6a727a8041f1836002e8f37a338bc41d71c 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 2010-2012 Apple Inc. All rights reserved.
  *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
- * 
+ *
  * This file contains Original Code and/or Modifications of Original Code
  * as defined in and that are subject to the Apple Public Source License
  * Version 2.0 (the 'License'). You may not use this file except in
  * unlawful or unlicensed copies of an Apple operating system, or to
  * circumvent, violate, or enable the circumvention or violation of, any
  * terms of an Apple operating system software license agreement.
- * 
+ *
  * Please obtain a copy of the License at
  * http://www.opensource.apple.com/apsl/ and read it before using this file.
- * 
+ *
  * The Original Code and all software distributed under the License are
  * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
@@ -22,7 +22,7 @@
  * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
  * Please see the License for the specific language governing rights and
  * limitations under the License.
- * 
+ *
  * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 #include <mach_debug.h>
  */
 kern_return_t
 machine_thread_dup(
-    thread_t           parent,
-    thread_t           child,
-    __unused boolean_t is_corpse
-)
+       thread_t            parent,
+       thread_t            child,
+       __unused boolean_t  is_corpse
+       )
 {
-       
-       pcb_t           parent_pcb = THREAD_TO_PCB(parent);
-       pcb_t           child_pcb = THREAD_TO_PCB(child);
+       pcb_t           parent_pcb = THREAD_TO_PCB(parent);
+       pcb_t           child_pcb = THREAD_TO_PCB(child);
 
        /*
         * Copy over the x86_saved_state registers
         */
-       if (thread_is_64bit_addr(parent))
+       if (thread_is_64bit_addr(parent)) {
                bcopy(USER_REGS64(parent), USER_REGS64(child), sizeof(x86_saved_state64_t));
-       else
+       } else {
                bcopy(USER_REGS32(parent), USER_REGS32(child), sizeof(x86_saved_state32_t));
+       }
 
        /*
         * Check to see if parent is using floating point
@@ -97,26 +97,27 @@ machine_thread_dup(
         */
        fpu_dup_fxstate(parent, child);
 
-#ifdef MACH_BSD
+#ifdef  MACH_BSD
        /*
         * Copy the parent's cthread id and USER_CTHREAD descriptor, if 32-bit.
         */
        child_pcb->cthread_self = parent_pcb->cthread_self;
-       if (!thread_is_64bit_addr(parent))
+       if (!thread_is_64bit_addr(parent)) {
                child_pcb->cthread_desc = parent_pcb->cthread_desc;
+       }
 
        /*
         * FIXME - should a user specified LDT, TSS and V86 info
         * be duplicated as well?? - probably not.
         */
        // duplicate any use LDT entry that was set I think this is appropriate.
-        if (parent_pcb->uldt_selector!= 0) {
-               child_pcb->uldt_selector = parent_pcb->uldt_selector;
+       if (parent_pcb->uldt_selector != 0) {
+               child_pcb->uldt_selector = parent_pcb->uldt_selector;
                child_pcb->uldt_desc = parent_pcb->uldt_desc;
        }
 #endif
 
-       return (KERN_SUCCESS);
+       return KERN_SUCCESS;
 }
 
 void thread_set_parent(thread_t parent, int pid);
@@ -127,7 +128,7 @@ thread_set_parent(thread_t parent, int pid)
        pal_register_cache_state(parent, DIRTY);
 
        if (thread_is_64bit_addr(parent)) {
-               x86_saved_state64_t     *iss64;
+               x86_saved_state64_t     *iss64;
 
                iss64 = USER_REGS64(parent);
 
@@ -135,7 +136,7 @@ thread_set_parent(thread_t parent, int pid)
                iss64->rdx = 0;
                iss64->isf.rflags &= ~EFL_CF;
        } else {
-               x86_saved_state32_t     *iss32;
+               x86_saved_state32_t     *iss32;
 
                iss32 = USER_REGS32(parent);
 
@@ -150,7 +151,7 @@ thread_set_parent(thread_t parent, int pid)
  * current thread to the given thread ID; fast version for 32-bit processes
  *
  * Parameters:    self                    Thread ID to set
- *                
+ *
  * Returns:        0                      Success
  *                !0                      Not success
  */
@@ -158,15 +159,15 @@ kern_return_t
 thread_fast_set_cthread_self(uint32_t self)
 {
        machine_thread_set_tsd_base(current_thread(), self);
-       return (USER_CTHREAD); /* N.B.: not a kern_return_t! */
+       return USER_CTHREAD; /* N.B.: not a kern_return_t! */
 }
 
 /*
  * thread_fast_set_cthread_self64: Sets the machine kernel thread ID of the
- * current thread to the given thread ID; fast version for 64-bit processes 
+ * current thread to the given thread ID; fast version for 64-bit processes
  *
  * Parameters:    self                    Thread ID
- *                
+ *
  * Returns:        0                      Success
  *                !0                      Not success
  */
@@ -174,7 +175,7 @@ kern_return_t
 thread_fast_set_cthread_self64(uint64_t self)
 {
        machine_thread_set_tsd_base(current_thread(), self);
-       return (USER_CTHREAD); /* N.B.: not a kern_return_t! */
+       return USER_CTHREAD; /* N.B.: not a kern_return_t! */
 }
 
 /*
@@ -211,11 +212,12 @@ thread_set_user_ldt(uint32_t address, uint32_t size, uint32_t flags)
        pcb_t pcb;
        struct fake_descriptor temp;
 
-       if (flags != 0)
-               return -1;              // flags not supported
-       if (size > 0xFFFFF)
-               return -1;              // size too big, 1 meg is the limit
-
+       if (flags != 0) {
+               return -1;              // flags not supported
+       }
+       if (size > 0xFFFFF) {
+               return -1;              // size too big, 1 meg is the limit
+       }
        mp_disable_preemption();
 
        // create a "fake" descriptor so we can use fix_desc()
@@ -226,14 +228,14 @@ thread_set_user_ldt(uint32_t address, uint32_t size, uint32_t flags)
        temp.offset = address;
        temp.lim_or_seg = size;
        temp.size_or_wdct = SZ_32;
-       temp.access = ACC_P|ACC_PL_U|ACC_DATA_W;
+       temp.access = ACC_P | ACC_PL_U | ACC_DATA_W;
 
        // turn this into a real descriptor
-       fix_desc(&temp,1);
+       fix_desc(&temp, 1);
 
        // set up our data in the pcb
        pcb->uldt_desc = *(struct real_descriptor*)&temp;
-       pcb->uldt_selector = USER_SETTABLE;             // set the selector value
+       pcb->uldt_selector = USER_SETTABLE;             // set the selector value
 
        // now set it up in the current table...
        *ldt_desc_p(USER_SETTABLE) = *(struct real_descriptor*)&temp;