Changeset 37041 in vbox
- Timestamp:
- May 11, 2011 4:54:32 PM (14 years ago)
- Location:
- trunk/src/VBox/Runtime/r0drv/darwin
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/darwin/the-darwin-kernel.h
r28800 r37041 111 111 extern void mp_rendezvous_no_intrs(void (*)(void *), void *); 112 112 113 /* osfmk/i386/cpu_data.h */ 114 struct my_cpu_data_x86 115 { 116 struct my_cpu_data_x86 *cpu_this; 117 thread_t cpu_active_thread; 118 void *cpu_int_state; 119 vm_offset_t cpu_active_stack; 120 vm_offset_t cpu_kernel_stack; 121 vm_offset_t cpu_int_stack_top; 122 int cpu_preemption_level; 123 int cpu_simple_lock_count; 124 int cpu_interrupt_level; 125 int cpu_number; 126 int cpu_phys_number; 127 cpu_id_t cpu_id; 128 int cpu_signals; 129 int cpu_mcount_off; 130 /*ast_t*/uint32_t cpu_pending_ast; 131 int cpu_type; 132 int cpu_subtype; 133 int cpu_threadtype; 134 int cpu_running; 135 }; 136 113 137 /* osfmk/i386/cpu_number.h */ 114 138 extern int cpu_number(void); -
trunk/src/VBox/Runtime/r0drv/darwin/threadpreempt-r0drv-darwin.cpp
r37040 r37041 111 111 __asm__ volatile("movl %%gs:%P1,%0\n\t" 112 112 : "=r" (ast_pending) 113 : "i" ( 7*sizeof(void*) + (7 + (ARCH_BITS == 64)) *sizeof(int)) );113 : "i" (__builtin_offsetof(struct my_cpu_data_x86, cpu_pending_ast)) ); 114 114 #else 115 # error fixme. 116 cpu_data_t *pCpu = current_cpu_datap(void); 117 AssertCompileMemberOffset(cpu_data_t, cpu_pending_ast, 7*sizeof(void*) + 7*sizeof(int)); 118 cpu_pending_ast = pCpu->cpu_pending_ast; 115 # error "Port me" 119 116 #endif 120 117 AssertMsg(!(ast_pending & UINT32_C(0xfffff000)),("%#x\n", ast_pending));
Note:
See TracChangeset
for help on using the changeset viewer.