18cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd/**
28cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @file cpu_type.c
38cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * CPU determination
48cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
58cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Copyright 2002 OProfile authors
68cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @remark Read the file COPYING
78cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd *
88cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author John Levon
98cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Philippe Elie
108cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd * @author Will Cohen
118cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd */
128cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
138cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd#include "oprofile.h"
148cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
158cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike DoddEXPORT_NO_SYMBOLS;
168cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
178cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd__init op_cpu get_cpu_type(void)
188cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd{
198cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	__u8 family = local_cpu_data->family;
208cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd
218cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/* FIXME: There should be a bit more checking here. */
228cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	switch (family) {
238cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/* Itanium */
248cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	case 0x07:
258cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		return CPU_IA64_1;
268cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		break;
278cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/* Itanium 2 */
288cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	case 0x1f:
298cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		return CPU_IA64_2;
308cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd		break;
318cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	}
328cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	/* Go for the basic generic IA64 */
338cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd	return CPU_IA64;
348cfa702f803c5ef6a2b062a489a1b2cf66b45b5eMike Dodd}
35