linux/arch/x86/boot/mca.c
<<
>>
Prefs
   1/* -*- linux-c -*- ------------------------------------------------------- *
   2 *
   3 *   Copyright (C) 1991, 1992 Linus Torvalds
   4 *   Copyright 2007 rPath, Inc. - All Rights Reserved
   5 *   Copyright 2009 Intel Corporation; author H. Peter Anvin
   6 *
   7 *   This file is part of the Linux kernel, and is made available under
   8 *   the terms of the GNU General Public License version 2.
   9 *
  10 * ----------------------------------------------------------------------- */
  11
  12/*
  13 * Get the MCA system description table
  14 */
  15
  16#include "boot.h"
  17
  18int query_mca(void)
  19{
  20        struct biosregs ireg, oreg;
  21        u16 len;
  22
  23        initregs(&ireg);
  24        ireg.ah = 0xc0;
  25        intcall(0x15, &ireg, &oreg);
  26
  27        if (oreg.eflags & X86_EFLAGS_CF)
  28                return -1;      /* No MCA present */
  29
  30        set_fs(oreg.es);
  31        len = rdfs16(oreg.bx);
  32
  33        if (len > sizeof(boot_params.sys_desc_table))
  34                len = sizeof(boot_params.sys_desc_table);
  35
  36        copy_from_fs(&boot_params.sys_desc_table, oreg.bx, len);
  37        return 0;
  38}
  39
lxr.linux.no kindly hosted by Redpill Linpro AS, provider of Linux consulting and operations services since 1995.