X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/d7e50217d7adf6e52786a38bcaa4cd698cb9a79e..378393581903b274cb7a4d18e0d978071a6b592d:/bsd/dev/i386/kern_machdep.c?ds=inline diff --git a/bsd/dev/i386/kern_machdep.c b/bsd/dev/i386/kern_machdep.c index b6fcf37a6..a78df67ed 100644 --- a/bsd/dev/i386/kern_machdep.c +++ b/bsd/dev/i386/kern_machdep.c @@ -3,22 +3,19 @@ * * @APPLE_LICENSE_HEADER_START@ * - * Copyright (c) 1999-2003 Apple Computer, Inc. All Rights Reserved. + * The contents of this file constitute Original Code as defined in and + * are subject to the Apple Public Source License Version 1.1 (the + * "License"). You may not use this file except in compliance with the + * License. Please obtain a copy of the License at + * http://www.apple.com/publicsource and read it before using this file. * - * 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 - * compliance with the License. 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 + * This 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, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * 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. + * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the + * License for the specific language governing rights and limitations + * under the License. * * @APPLE_LICENSE_HEADER_END@ */ @@ -29,78 +26,30 @@ * Author: John Seamons * * Machine-specific kernel routines. - * - * 8-Dec-91 Peter King (king) at NeXT - * Added grade_cpu_subtype(). - * FIXME: Do we want to merge this with check_cpu_subtype()? - * - * 5-Mar-90 John Seamons (jks) at NeXT - * Created. */ #include #include #include -check_cpu_subtype (cpu_subtype) - cpu_subtype_t cpu_subtype; -{ - struct machine_slot *ms = &machine_slot[cpu_number()]; - - switch (ms->cpu_subtype) { - case CPU_SUBTYPE_386: - if (cpu_subtype == CPU_SUBTYPE_386) - return (TRUE); - break; - - case CPU_SUBTYPE_486: - case CPU_SUBTYPE_486SX: - if ( cpu_subtype == CPU_SUBTYPE_486 || - cpu_subtype == CPU_SUBTYPE_486SX || - cpu_subtype == CPU_SUBTYPE_386 ) - return (TRUE); - break; - - case CPU_SUBTYPE_586: - if ( cpu_subtype == CPU_SUBTYPE_586 || - cpu_subtype == CPU_SUBTYPE_486 || - cpu_subtype == CPU_SUBTYPE_486SX || - cpu_subtype == CPU_SUBTYPE_386 ) - return (TRUE); - break; - - default: - if ( CPU_SUBTYPE_INTEL_MODEL(cpu_subtype) == - CPU_SUBTYPE_INTEL_MODEL_ALL) { - if ( CPU_SUBTYPE_INTEL_FAMILY(ms->cpu_subtype) >= - CPU_SUBTYPE_INTEL_FAMILY(cpu_subtype)) - return (TRUE); - } - else { - if ( ms->cpu_subtype == cpu_subtype) - return (TRUE); - } - break; - } - - return (FALSE); -} +extern int grade_binary(cpu_type_t exectype, cpu_subtype_t execsubtype); /********************************************************************** - * Routine: grade_cpu_subtype() + * Routine: grade_binary() * - * Function: Return a relative preference for cpu_subtypes in fat - * executable files. The higher the grade, the higher the - * preference. A grade of 0 means not acceptable. + * Function: Return a relative preference for exectypes and + * execsubtypes in fat executable files. The higher the + * grade, the higher the preference. A grade of 0 means + * not acceptable. **********************************************************************/ -grade_cpu_subtype (cpu_subtype) - cpu_subtype_t cpu_subtype; +int +grade_binary(__unused cpu_type_t exectype, cpu_subtype_t execsubtype) { - struct machine_slot *ms = &machine_slot[cpu_number()]; + int cpusubtype = cpu_subtype(); - switch (ms->cpu_subtype) { + switch (cpusubtype) { case CPU_SUBTYPE_386: - switch (cpu_subtype) { + switch (execsubtype) { case CPU_SUBTYPE_386: return 1; default: @@ -108,7 +57,7 @@ grade_cpu_subtype (cpu_subtype) } case CPU_SUBTYPE_486: - switch (cpu_subtype) { + switch (execsubtype) { case CPU_SUBTYPE_386: return 1; @@ -123,7 +72,7 @@ grade_cpu_subtype (cpu_subtype) } case CPU_SUBTYPE_486SX: - switch (cpu_subtype) { + switch (execsubtype) { case CPU_SUBTYPE_386: return 1; @@ -138,7 +87,7 @@ grade_cpu_subtype (cpu_subtype) } case CPU_SUBTYPE_586: - switch (cpu_subtype) { + switch (execsubtype) { case CPU_SUBTYPE_386: return 1; @@ -156,18 +105,28 @@ grade_cpu_subtype (cpu_subtype) } default: - if ( CPU_SUBTYPE_INTEL_MODEL(cpu_subtype) == + if ( CPU_SUBTYPE_INTEL_MODEL(execsubtype) == CPU_SUBTYPE_INTEL_MODEL_ALL) { - if ( CPU_SUBTYPE_INTEL_FAMILY(ms->cpu_subtype) >= - CPU_SUBTYPE_INTEL_FAMILY(cpu_subtype)) + if ( CPU_SUBTYPE_INTEL_FAMILY(cpusubtype) >= + CPU_SUBTYPE_INTEL_FAMILY(execsubtype)) return CPU_SUBTYPE_INTEL_FAMILY_MAX - - CPU_SUBTYPE_INTEL_FAMILY(ms->cpu_subtype) - - CPU_SUBTYPE_INTEL_FAMILY(cpu_subtype); + CPU_SUBTYPE_INTEL_FAMILY(cpusubtype) - + CPU_SUBTYPE_INTEL_FAMILY(execsubtype); } else { - if ( ms->cpu_subtype == cpu_subtype) + if ( cpusubtype == execsubtype) return CPU_SUBTYPE_INTEL_FAMILY_MAX + 1; } return 0; } } + +extern void md_prepare_for_shutdown(int, int, char *); + +void +md_prepare_for_shutdown( + __unused int paniced, + __unused int howto, + __unused char * command) +{ +}