/** @file board_information_kapi.c

   Access functions to read header on the eeprom.

   @par CREATION
   @author Krauth Julien
   @date   11.08.06

   @par VERSION
   @verbatim
   $LastChangedRevision: 128 $
   $LastChangedDate: 2005-11-18 14:51:33 +0100 (Fri, 18 Nov 2005) $
   @endverbatim

   @par COMPILER
   @verbatim
   Compiler     : gcc
   Version      :
   kernel       :
   @endverbatim

   @par UPDATES
   @verbatim
   Date                 :
   Author               :
   Description  :
   @endverbatim

   @par LICENCE
   @verbatim
   Copyright (C) 2004,2005  ADDI-DATA GmbH for the source code of this module.

        ADDI-DATA GmbH
        Dieselstrasse 3
        D-77833 Ottersweier
        Tel: +19(0)7223/9493-0
        Fax: +49(0)7223/9493-92
        http://www.addi-data-com
        info@addi-data.com

   This program is free software; you can redistribute it and/or modify it under
   the terms of the GNU General Public License as published by the Free Software
   Foundation; either version 2 of the License, or (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
   or FITNESS FOR A PARTICULAR PURPOSE.
   See the GNU General Public License for more details.

   You should have received a copy of the GNU General Public License along with
   this program; if not, write to the Free Software Foundation,
   Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

   You shoud also find the complete GPL in the COPYING file
   accompanying this source code.
   @endverbatim
 */

#include "xpci3xxx-private.h"

/**@def EXPORT_NO_SYMBOLS
 * Functions in this file are not exported.
 */

#if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,27)
	#define __user
#endif

//------------------------------------------------------------------------------
#if defined(__x86_64__)
int do_CMD_xpci3xxx_ReadEepromHeader_SerialNumber (struct pci_dev *pdev, unsigned int cmd, unsigned long arg)
{
        uint32_t dw_SerialNumber = 0;
        int ret = 0;

        {
                if ((ret = i_xpci3xxx_ReadEepromHeader_SerialNumber(pdev, &dw_SerialNumber)) != 0)
                        return ret;
        }

        if (copy_to_user((uint16_t __user*) arg, &dw_SerialNumber, sizeof(dw_SerialNumber)))
                return -EFAULT;

        return 0;
}

//------------------------------------------------------------------------------

int do_CMD_xpci3xxx_GetFirmwareVersion (struct pci_dev *pdev, unsigned int cmd, unsigned long arg)
{
	uint32_t dw_FirmwareVersion = 0;
	int ret = 0;

	{
		if ((ret = i_xpci3xxx_GetFirmwareVersion(pdev, &dw_FirmwareVersion)) != 0)
			return ret;
	}

	if (copy_to_user((uint32_t __user*) arg, &dw_FirmwareVersion, sizeof(dw_FirmwareVersion)))
		return -EFAULT;

	return 0;
}
#endif
