/*
 * Copyright (c) 2003 Linuxant inc.
 * Copyright (c) 2001-2003 Conexant Systems, Inc.
 *
 * NOTE: The use and distribution of this software is governed by the terms in
 * the file LICENSE, which is included in the package. You must read this and
 * agree to these terms before using or distributing this software.
 *
 */
#include "oscompat.h"
#include "ossysenv.h"

#include "ostime_ex.h"
#include "osmemory_ex.h"
#include "osstring_ex.h"
#include "osnvm.h"
#include "osmodule.h"
#include "osstdio.h"
#ifdef SCR
#include "cdbgscr_ex.h"
#endif
#include "linuxres.h"
#include "oscompat.h"

/** linuxres.c **/
EXPORT_SYMBOL_NOVERS(LinuxGetHwPciRes);
EXPORT_SYMBOL_NOVERS(LinuxInitPowerManagement);
EXPORT_SYMBOL_NOVERS(LinuxTermPowerManagement);
EXPORT_SYMBOL_NOVERS(LinuxHookInterrupt);
EXPORT_SYMBOL_NOVERS(LinuxUnhookInterrupt);
EXPORT_SYMBOL_NOVERS(LinuxMapPhys);
EXPORT_SYMBOL_NOVERS(LinuxReadw);
EXPORT_SYMBOL_NOVERS(LinuxReadl);
EXPORT_SYMBOL_NOVERS(LinuxWritew);
EXPORT_SYMBOL_NOVERS(LinuxWritel);
EXPORT_SYMBOL_NOVERS(LinuxIoReadb);
EXPORT_SYMBOL_NOVERS(LinuxIoReadw);
EXPORT_SYMBOL_NOVERS(LinuxIoReadl);
EXPORT_SYMBOL_NOVERS(LinuxIoWriteb);
EXPORT_SYMBOL_NOVERS(LinuxIoWritew);
EXPORT_SYMBOL_NOVERS(LinuxIoWritel);
EXPORT_SYMBOL_NOVERS(LinuxPciReadConfigdw);
EXPORT_SYMBOL_NOVERS(LinuxPciReadConfigw);
EXPORT_SYMBOL_NOVERS(LinuxPciReadConfigb);
EXPORT_SYMBOL_NOVERS(LinuxPciWriteConfigdw);
EXPORT_SYMBOL_NOVERS(LinuxPciWriteConfigw);
EXPORT_SYMBOL_NOVERS(LinuxPciWriteConfigb);
EXPORT_SYMBOL_NOVERS(crit_section_start);
EXPORT_SYMBOL_NOVERS(crit_section_end);
EXPORT_SYMBOL_NOVERS(LinuxCalcCpuRate);

#ifdef SCR
/** cdbgscr. **/
EXPORT_SYMBOL_NOVERS(C_ScrFormat);
EXPORT_SYMBOL_NOVERS(LinuxScrSetEntryPointCallback);
#endif

/** OsTime **/
EXPORT_SYMBOL_NOVERS(OsModemThreadSchedule);
EXPORT_SYMBOL_NOVERS(OSCreatePeriodicTimeOut);
EXPORT_SYMBOL_NOVERS(OSDestroyPeriodicTimeOut);
EXPORT_SYMBOL_NOVERS(OSSetPeriodicTimeOut);
EXPORT_SYMBOL_NOVERS(OSGetSystemTime);
EXPORT_SYMBOL_NOVERS(OSCreateTimer);
EXPORT_SYMBOL_NOVERS(OSSetTimer);
EXPORT_SYMBOL_NOVERS(OSCancelTimer);
EXPORT_SYMBOL_NOVERS(OSChangeTimerTimeOut);
EXPORT_SYMBOL_NOVERS(OSDestroyTimer);
EXPORT_SYMBOL_NOVERS(OSFloatSuffix);
EXPORT_SYMBOL_NOVERS(OSFloatPrefix);
EXPORT_SYMBOL_NOVERS(OSSemaphoreWait);
EXPORT_SYMBOL_NOVERS(OSSemaphoreSignal);
EXPORT_SYMBOL_NOVERS(OSSemaphoreCreate);
EXPORT_SYMBOL_NOVERS(OSSemaphoreDestroy);
EXPORT_SYMBOL_NOVERS(OSCriticalSectionDestroy);
EXPORT_SYMBOL_NOVERS(OSCriticalSectionAcquire);
EXPORT_SYMBOL_NOVERS(__OSCriticalSectionCreate);
EXPORT_SYMBOL_NOVERS(OSCriticalSectionRelease);
EXPORT_SYMBOL_NOVERS(OSRestoreTimeSensitivity);
//EXPORT_SYMBOL_NOVERS(OSDisableInterrupt);
//EXPORT_SYMBOL_NOVERS(OSRestoreInterrupts);
EXPORT_SYMBOL_NOVERS(OSSetTimeSensitivity);
EXPORT_SYMBOL_NOVERS(OsAtomicAdd);
EXPORT_SYMBOL_NOVERS(OsAtomicCompareAndSwap);
EXPORT_SYMBOL_NOVERS(OsSleep);
EXPORT_SYMBOL_NOVERS(OsGlobalProcessorFreq);
EXPORT_SYMBOL_NOVERS(OsGetMuSecStartStamp);
EXPORT_SYMBOL_NOVERS(OsDeltaTimeMuSec);
EXPORT_SYMBOL_NOVERS(OsBusyLoopMuSec);
EXPORT_SYMBOL_NOVERS(OsBusyLoopMilliSec);

/** OSMemory **/
EXPORT_SYMBOL_NOVERS(OsPageReserve);
EXPORT_SYMBOL_NOVERS(OsPageFree);
EXPORT_SYMBOL_NOVERS(OsHeapAllocate);
EXPORT_SYMBOL_NOVERS(OsHeapFree);
EXPORT_SYMBOL_NOVERS(OsGetPageSize);
EXPORT_SYMBOL_NOVERS(OsMemDMAAllocate);
EXPORT_SYMBOL_NOVERS(OsMemDMAFree);

/** OsString **/
EXPORT_SYMBOL_NOVERS(OsStrCpy);
EXPORT_SYMBOL_NOVERS(OsStrnCpy);
EXPORT_SYMBOL_NOVERS(OsStrCat);
EXPORT_SYMBOL_NOVERS(OsStrnCat);
EXPORT_SYMBOL_NOVERS(OsStrCmp);
EXPORT_SYMBOL_NOVERS(OsStrnCmp);
EXPORT_SYMBOL_NOVERS(OsToupper);
EXPORT_SYMBOL_NOVERS(OsTolower);
EXPORT_SYMBOL_NOVERS(OsIsDigit);
EXPORT_SYMBOL_NOVERS(OsSprintf);
EXPORT_SYMBOL_NOVERS(OSSprintfFixedArgs);
EXPORT_SYMBOL_NOVERS(OsStrLen);
EXPORT_SYMBOL_NOVERS(Osatoi);
EXPORT_SYMBOL_NOVERS(OsMemSet);
EXPORT_SYMBOL_NOVERS(OsMemCpy);
EXPORT_SYMBOL_NOVERS(OsMemCmp);
EXPORT_SYMBOL_NOVERS(OsMemMove);

/** OsDebug **/
EXPORT_SYMBOL_NOVERS(OsErrorVPrintf);
EXPORT_SYMBOL_NOVERS(OsErrorPrintf);
EXPORT_SYMBOL_NOVERS(OsDebugVPrintf);
EXPORT_SYMBOL_NOVERS(OsDebugPrintf);
EXPORT_SYMBOL_NOVERS(OsDebugBreakpoint);
EXPORT_SYMBOL_NOVERS(OsDebugDumpData);

/** OsModule **/
EXPORT_SYMBOL_NOVERS(OsModuleSymGet);
EXPORT_SYMBOL_NOVERS(OsModuleSymPut);

/** OsStdio **/
EXPORT_SYMBOL_NOVERS(OsFClose);
EXPORT_SYMBOL_NOVERS(OsFOpen);
EXPORT_SYMBOL_NOVERS(OsFRead);
EXPORT_SYMBOL_NOVERS(OsFWrite);
EXPORT_SYMBOL_NOVERS(OsFSeek);

/** OsNvm **/
EXPORT_SYMBOL_NOVERS(NVM_Open);
EXPORT_SYMBOL_NOVERS(NVM_Close);
EXPORT_SYMBOL_NOVERS(NVM_Read);
EXPORT_SYMBOL_NOVERS(NVM_Write);

MODULE_AUTHOR("Conexant Systems Inc.");
MODULE_DESCRIPTION("HSF softmodem driver");
MODULE_LICENSE("Copyright (C) 1996-2001 Conexant Systems Inc. All Rights Reserved.");


static int __init
hsfosspec_init(void)
{
	OSInitTime();

	return 0;
}

module_init(hsfosspec_init);
