void s3eMapViewRemovePOI(s3eMapView* pMapView, s3eMapViewPOI* poi)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[10] func: s3eMapViewRemovePOI"));

    if (!_extLoad())
        return;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewRemovePOI(pMapView, poi);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
const char* s3eMapViewGetPlatformLicensingString()
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[11] func: s3eMapViewGetPlatformLicensingString"));

    if (!_extLoad())
        return NULL;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    const char* ret = g_Ext.m_s3eMapViewGetPlatformLicensingString();

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
void _s3eMapViewGoTo(s3eMapView* pMapView, const s3eMapViewCoord* center, const s3eMapViewSpan* span, bool animate)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[8] func: _s3eMapViewGoTo"));

    if (!_extLoad())
        return;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m__s3eMapViewGoTo(pMapView, center, span, animate);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
s3eMapViewPOI* _s3eMapViewAddPOI(s3eMapView* pMapView, const s3eMapViewCoord* location, const char* title, const char* subtitle, bool clickable, void* clickData)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[9] func: _s3eMapViewAddPOI"));

    if (!_extLoad())
        return NULL;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eMapViewPOI* ret = g_Ext.m__s3eMapViewAddPOI(pMapView, location, title, subtitle, clickable, clickData);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
void s3eMapViewSetShowUserLocation(s3eMapView* pMapView, bool show)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[7] func: s3eMapViewSetShowUserLocation"));

    if (!_extLoad())
        return;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewSetShowUserLocation(pMapView, show);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
void s3eMapViewSetType(s3eMapView* pMapView, s3eMapViewType type)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[6] func: s3eMapViewSetType"));

    if (!_extLoad())
        return;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewSetType(pMapView, type);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
void s3eMapViewSetScreenRect(s3eMapView* pMapView, int x, int y, int w, int h)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[4] func: s3eMapViewSetScreenRect"));

    if (!_extLoad())
        return;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewSetScreenRect(pMapView, x, y, w, h);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
s3eResult s3eMapViewDestroy(s3eMapView* pMapView)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[3] func: s3eMapViewDestroy"));

    if (!_extLoad())
        return S3E_RESULT_ERROR;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eResult ret = g_Ext.m_s3eMapViewDestroy(pMapView);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
s3eResult s3eMapViewRegister(s3eMapViewCallback cbid, s3eCallback fn, void* userData)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[0] func: s3eMapViewRegister"));

    if (!_extLoad())
        return S3E_RESULT_ERROR;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eResult ret = g_Ext.m_s3eMapViewRegister(cbid, fn, userData);

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
s3eMapView* s3eMapViewCreate()
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[2] func: s3eMapViewCreate"));

    if (!_extLoad())
        return NULL;

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eMapView* ret = g_Ext.m_s3eMapViewCreate();

#ifdef LOADER_CALL_LOCK
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
s3eResult s3eMapViewRegister(s3eMapViewCallback cbid, s3eCallback fn, void* userData)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[0] func: s3eMapViewRegister"));

    if (!_extLoad())
        return S3E_RESULT_ERROR;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eResult ret = g_Ext.m_s3eMapViewRegister(cbid, fn, userData);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
void s3eMapViewRemovePOI(s3eMapView* pMapView, s3eMapViewPOI* poi)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[10] func: s3eMapViewRemovePOI"));

    if (!_extLoad())
        return;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewRemovePOI(pMapView, poi);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
const char* s3eMapViewGetPlatformLicensingString()
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[11] func: s3eMapViewGetPlatformLicensingString"));

    if (!_extLoad())
        return NULL;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    const char* ret = g_Ext.m_s3eMapViewGetPlatformLicensingString();

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
s3eMapViewPOI* _s3eMapViewAddPOI(s3eMapView* pMapView, const s3eMapViewCoord* location, const char* title, const char* subtitle, bool clickable, void* clickData)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[9] func: _s3eMapViewAddPOI"));

    if (!_extLoad())
        return NULL;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eMapViewPOI* ret = g_Ext.m__s3eMapViewAddPOI(pMapView, location, title, subtitle, clickable, clickData);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}
void _s3eMapViewGoTo(s3eMapView* pMapView, const s3eMapViewCoord* center, const s3eMapViewSpan* span, bool animate)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[8] func: _s3eMapViewGoTo"));

    if (!_extLoad())
        return;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m__s3eMapViewGoTo(pMapView, center, span, animate);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
void s3eMapViewSetShowUserLocation(s3eMapView* pMapView, bool show)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[7] func: s3eMapViewSetShowUserLocation"));

    if (!_extLoad())
        return;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewSetShowUserLocation(pMapView, show);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
void s3eMapViewSetScreenRect(s3eMapView* pMapView, int x, int y, int w, int h)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[4] func: s3eMapViewSetScreenRect"));

    if (!_extLoad())
        return;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    g_Ext.m_s3eMapViewSetScreenRect(pMapView, x, y, w, h);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return;
}
s3eResult s3eMapViewDestroy(s3eMapView* pMapView)
{
    IwTrace(MAPVIEW_VERBOSE, ("calling s3eMapView[3] func: s3eMapViewDestroy"));

    if (!_extLoad())
        return S3E_RESULT_ERROR;

#ifdef __mips
    // For MIPs platform we do not have asm code for stack switching 
    // implemented. So we make LoaderCallStart call manually to set GlobalLock
    s3eDeviceLoaderCallStart(S3E_TRUE, NULL);
#endif

    s3eResult ret = g_Ext.m_s3eMapViewDestroy(pMapView);

#ifdef __mips
    s3eDeviceLoaderCallDone(S3E_TRUE, NULL);
#endif

    return ret;
}