#
# Copyright 2002-2007 Sun Microsystems, Inc.  All Rights Reserved.
# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
#
# This code is free software; you can redistribute it and/or modify it
# under the terms of the GNU General Public License version 2 only, as
# published by the Free Software Foundation.  Sun designates this
# particular file as subject to the "Classpath" exception as provided
# by Sun in the LICENSE file that accompanied this code.
#
# This code 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
# version 2 for more details (a copy is included in the LICENSE file that
# accompanied this code).
#
# You should have received a copy of the GNU General Public License version
# 2 along with this work; if not, write to the Free Software Foundation,
# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
#
# Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
# CA 95054 USA or visit www.sun.com if you need additional information or
# have any questions.
#

# Define public interface.

SUNWprivate_1.1 {
        global:
        JNI_OnLoad;
        Java_sun_awt_X11_XlibWrapper_copyIntArray;
        Java_sun_awt_X11_XlibWrapper_copyLongArray;
        Java_sun_awt_X11_XlibWrapper_getAddress;
        Java_sun_awt_X11_XlibWrapper_XConvertSelection;
        Java_sun_awt_X11_XlibWrapper_XSetSelectionOwner;
        Java_sun_awt_X11_XlibWrapper_XGetSelectionOwner;
        Java_sun_awt_X11_XlibWrapper_XGetAtomName;
        Java_sun_awt_X11_XlibWrapper_XMaxRequestSize;
        Java_sun_awt_X11_XlibWrapper_XReparentWindow;
        Java_sun_awt_X11_XlibWrapper_XAllocSizeHints;
        Java_sun_awt_X11_XlibWrapper_XAllocWMHints;
        Java_sun_awt_X11_XlibWrapper_XSetMinMaxHints;
        Java_sun_awt_X11_XlibWrapper_XGetVisualInfo;
        Java_sun_awt_X11_XlibWrapper_XOpenDisplay;
        Java_sun_awt_X11_XlibWrapper_XCloseDisplay;
        Java_sun_awt_X11_XlibWrapper_XDisplayString;
        Java_sun_awt_X11_XlibWrapper_XSetCloseDownMode;
        Java_sun_awt_X11_XlibWrapper_XCreateWindow;
        Java_sun_awt_X11_XlibWrapper_XMapWindow;
        Java_sun_awt_X11_XlibWrapper_XMapRaised;
        Java_sun_awt_X11_XlibWrapper_XUnmapWindow;
        Java_sun_awt_X11_XlibWrapper_XSelectInput;
        Java_sun_awt_X11_XlibWrapper_XNextEvent;
        Java_sun_awt_X11_XlibWrapper_XMaskEvent;
        Java_sun_awt_X11_XlibWrapper_XWindowEvent;
        Java_sun_awt_X11_XlibWrapper_XFilterEvent;
        Java_sun_awt_X11_XlibWrapper_XSupportsLocale;
        Java_sun_awt_X11_XlibWrapper_XSetLocaleModifiers;
        Java_sun_awt_X11_XlibWrapper_XPeekEvent;
        Java_sun_awt_X11_XlibWrapper_DefaultScreen;
	Java_sun_awt_X11_XlibWrapper_ScreenOfDisplay;
	Java_sun_awt_X11_XlibWrapper_DoesBackingStore;
        Java_sun_awt_X11_XlibWrapper_RootWindow;
        Java_sun_awt_X11_XlibWrapper_DisplayHeight;
        Java_sun_awt_X11_XlibWrapper_DisplayWidthMM;
        Java_sun_awt_X11_XlibWrapper_DisplayWidth;
        Java_sun_awt_X11_XlibWrapper_DisplayHeightMM;
        Java_sun_awt_X11_XlibWrapper_ScreenCount;
        Java_sun_awt_X11_XlibWrapper_XMoveResizeWindow;
        Java_sun_awt_X11_XlibWrapper_XResizeWindow;
        Java_sun_awt_X11_XlibWrapper_XMoveWindow;
        Java_sun_awt_X11_XlibWrapper_XGetWindowAttributes;
        Java_sun_awt_X11_XlibWrapper_XGetGeometry;
        Java_sun_awt_X11_XlibWrapper_XGrabPointer;
        Java_sun_awt_X11_XlibWrapper_XUngrabPointer;
        Java_sun_awt_X11_XlibWrapper_XGrabKeyboard;
        Java_sun_awt_X11_XlibWrapper_XUngrabKeyboard;
        Java_sun_awt_X11_XlibWrapper_XSetWindowBackground;
        Java_sun_awt_X11_XlibWrapper_XFlush;
        Java_sun_awt_X11_XlibWrapper_XSync;
        Java_sun_awt_X11_XlibWrapper_XEventsQueued;
        Java_sun_awt_X11_XlibWrapper_XRaiseWindow;
        Java_sun_awt_X11_XlibWrapper_XLowerWindow;
        Java_sun_awt_X11_XlibWrapper_XRestackWindows;
        Java_sun_awt_X11_XlibWrapper_XSetInputFocus;
        Java_sun_awt_X11_XlibWrapper_XSetInputFocus2;
        Java_sun_awt_X11_XlibWrapper_XGetInputFocus;
        Java_sun_awt_X11_XlibWrapper_XDestroyWindow;
        Java_sun_awt_X11_XlibWrapper_XTranslateCoordinates;
        Java_sun_awt_X11_XlibWrapper_XCreateFontCursor;
        Java_sun_awt_X11_XlibWrapper_XSetTransientFor;
        Java_sun_awt_X11_XlibWrapper_XSetWMHints;
        Java_sun_awt_X11_XlibWrapper_XGetWMHints;
        Java_sun_awt_X11_XlibWrapper_XShapeQueryExtension;
        Java_sun_awt_X11_XlibWrapper_SetRectangularShape;
        Java_sun_awt_X11_XToolkit_initIDs;
        Java_sun_awt_X11_XWindow_getNativeColor;
        Java_sun_awt_X11_XWindow_getWMInsets;
        Java_sun_awt_X11_XWindow_getTopWindow;
        Java_sun_awt_X11_XWindow_getWindowBounds;
        Java_sun_awt_X11_XWindow_setSizeHints;
        Java_sun_awt_X11_XWindow_getAWTKeyCodeForKeySym;
        Java_sun_awt_X11_XWindow_getKeySymForAWTKeyCode;
        Java_sun_awt_X11_XToolkit_nativeLoadSystemColors;
        Java_sun_awt_X11_XToolkit_awt_1toolkit_1init;
        Java_sun_awt_X11_XToolkit_awt_1output_1flush;
        Java_sun_awt_X11_XToolkit_wakeup_1poll;
        Java_java_awt_Cursor_finalizeImpl;
        Java_sun_awt_X11_XlibWrapper_InternAtom;
        Java_sun_awt_X11_XlibWrapper_GetProperty;
        Java_sun_awt_X11_XlibWrapper_SetProperty;
        Java_sun_awt_X11_XlibWrapper_XGetDefault;
        Java_sun_awt_X11_XlibWrapper_XGetPointerMapping;
        Java_sun_awt_X11_XlibWrapper_XScreenNumberOfScreen;
        Java_sun_awt_X11_XlibWrapper_getScreenOfWindow;
        Java_sun_awt_X11_XlibWrapper_XIconifyWindow;
        Java_sun_awt_X11_XlibWrapper_XBell;
        Java_sun_awt_X11_XlibWrapper_XChangePropertyImpl;
        Java_sun_awt_X11_XlibWrapper_XChangePropertyS;
        Java_sun_awt_X11_XlibWrapper_XGetWindowProperty;
        Java_sun_awt_X11_XlibWrapper_getStringBytes;
        Java_sun_awt_X11_XlibWrapper_XFree;
        Java_sun_awt_X11_XlibWrapper_ServerVendor;
        Java_sun_awt_X11_XlibWrapper_VendorRelease;
        Java_sun_awt_X11_XlibWrapper_SetToolkitErrorHandler;
        Java_sun_awt_X11_XlibWrapper_XSetErrorHandler;
        Java_sun_awt_X11_XlibWrapper_CallErrorHandler;
        Java_sun_awt_X11_XlibWrapper_XInternAtoms;
        Java_sun_awt_X11_XlibWrapper_XChangeWindowAttributes;
        Java_sun_awt_X11_XlibWrapper_XDeleteProperty;
        Java_sun_awt_X11_XlibWrapper_XSetWMNormalHints;
        Java_sun_awt_X11_XlibWrapper_XGetWMNormalHints;
        Java_sun_awt_X11_XlibWrapper_XSendEvent;
        Java_sun_awt_X11_XlibWrapper_XQueryTree;
        Java_sun_awt_X11_XlibWrapper_memcpy;
        Java_sun_awt_X11_XlibWrapper_XdbeQueryExtension;
        Java_sun_awt_X11_XlibWrapper_XQueryExtension;
        Java_sun_awt_X11_XlibWrapper_IsKeypadKey;
        Java_sun_awt_X11_XlibWrapper_XdbeAllocateBackBufferName;
        Java_sun_awt_X11_XlibWrapper_XdbeDeallocateBackBufferName;
        Java_sun_awt_X11_XlibWrapper_XdbeSwapBuffers;
        Java_sun_awt_X11_XlibWrapper_XdbeBeginIdiom;
        Java_sun_awt_X11_XlibWrapper_XdbeEndIdiom;
        Java_sun_awt_X11_XDesktopPeer_init;
        Java_sun_awt_X11_XDesktopPeer_gnome_1url_1show;
        Java_sun_awt_X11_XRobotPeer_getRGBPixelsImpl;
        Java_sun_awt_X11_XRobotPeer_keyPressImpl;
        Java_sun_awt_X11_XRobotPeer_keyReleaseImpl;
        Java_sun_awt_X11_XRobotPeer_mouseMoveImpl;
        Java_sun_awt_X11_XRobotPeer_mousePressImpl;
        Java_sun_awt_X11_XRobotPeer_mouseReleaseImpl;
        Java_sun_awt_X11_XRobotPeer_mouseWheelImpl;
        Java_sun_awt_X11_XRobotPeer_setup;
        Java_java_awt_Component_initIDs;
        Java_java_awt_Container_initIDs;
        Java_java_awt_Button_initIDs;
        Java_java_awt_Scrollbar_initIDs;
        Java_java_awt_Window_initIDs;
        Java_java_awt_Frame_initIDs;
	Java_sun_awt_SunToolkit_closeSplashScreen;
        Java_sun_awt_UNIXToolkit_check_1gtk;
        Java_sun_awt_UNIXToolkit_load_1gtk;
        Java_sun_awt_UNIXToolkit_unload_1gtk;
        Java_sun_awt_UNIXToolkit_load_1stock_1icon;
        Java_sun_awt_UNIXToolkit_load_1gtk_1icon;
        Java_sun_awt_UNIXToolkit_nativeSync;
        Java_java_awt_AWTEvent_initIDs;
        Java_java_awt_event_InputEvent_initIDs;
        Java_java_awt_event_KeyEvent_initIDs;
        Java_java_awt_MenuComponent_initIDs;
        Java_java_awt_Cursor_initIDs;
        Java_java_awt_MenuItem_initIDs;
        Java_java_awt_Menu_initIDs;
        Java_java_awt_TextArea_initIDs;
        Java_java_awt_Checkbox_initIDs;
        Java_java_awt_ScrollPane_initIDs;
        Java_java_awt_TextField_initIDs;
        Java_java_awt_TrayIcon_initIDs;
        Java_sun_font_FontManager_getFontConfig;
        Java_sun_font_FontManager_getFontConfigAASettings;
	Java_sun_font_FontManager_getFontPath;
	Java_sun_font_FontManager_setNativeFontPath;
	Java_sun_font_FontManager_populateFontFileNameMap;
        Java_sun_awt_X11GraphicsEnvironment_initDisplay;
        Java_sun_awt_X11GraphicsEnvironment_initGLX;
        Java_sun_awt_X11GraphicsEnvironment_checkShmExt;
        Java_sun_awt_X11GraphicsEnvironment_getNumScreens;
        Java_sun_awt_X11GraphicsEnvironment_getDefaultScreenNum;
        Java_sun_awt_X11GraphicsEnvironment_pRunningXinerama;
        Java_sun_awt_X11GraphicsEnvironment_getXineramaCenterPoint;
        Java_sun_awt_X11GraphicsEnvironment_getDisplayString;
#        Java_sun_awt_X11GraphicsEnvironment_getNativeFonts;
        Java_sun_awt_X11GraphicsDevice_initIDs;
        Java_sun_awt_X11GraphicsDevice_getConfigVisualId;
        Java_sun_awt_X11GraphicsDevice_getConfigDepth;
        Java_sun_awt_X11GraphicsDevice_getNumConfigs;
        Java_sun_awt_X11GraphicsDevice_getConfigColormap;
        Java_sun_awt_X11GraphicsDevice_isDBESupported;
        Java_sun_awt_X11GraphicsDevice_getDisplay;
        Java_sun_awt_X11GraphicsDevice_getDoubleBufferVisuals;
        Java_sun_awt_X11GraphicsDevice_initXrandrExtension;
        Java_sun_awt_X11GraphicsDevice_enterFullScreenExclusive;
        Java_sun_awt_X11GraphicsDevice_exitFullScreenExclusive;
        Java_sun_awt_X11GraphicsDevice_getCurrentDisplayMode;
        Java_sun_awt_X11GraphicsDevice_enumDisplayModes;
        Java_sun_awt_X11GraphicsDevice_configDisplayMode;
        Java_sun_awt_X11GraphicsDevice_resetNativeData;
        Java_sun_awt_X11GraphicsConfig_initIDs;
        Java_sun_awt_X11GraphicsConfig_getXResolution;
        Java_sun_awt_X11GraphicsConfig_getYResolution;
        Java_sun_awt_X11GraphicsConfig_init;
        Java_sun_awt_X11GraphicsConfig_dispose;
        Java_sun_awt_X11GraphicsConfig_makeColorModel;
        Java_sun_awt_X11GraphicsConfig_pGetBounds;
        Java_sun_awt_X11GraphicsConfig_createBackBuffer;
	Java_sun_awt_X11GraphicsConfig_destroyBackBuffer;
	Java_sun_awt_X11GraphicsConfig_swapBuffers;
        Java_java_awt_Insets_initIDs;
        Java_java_awt_KeyboardFocusManager_initIDs;
        Java_java_awt_Font_initIDs;
        # libfontmanager entry points
        AWTIsHeadless;
	AWTCountFonts;
        AWTLoadFont;
        AWTFreeFont;
        AWTFontAscent;
        AWTFontDescent;
        AWTFontMinByte1;
        AWTFontMaxByte1;
        AWTFontMinCharOrByte2;
        AWTFontMaxCharOrByte2;
        AWTFontDefaultChar;
        AWTFontPerChar;
        AWTFontMaxBounds;
        AWTFontTextExtents16;
        AWTFreeChar;
        AWTFontGenerateImage;
        AWTCharAdvance;
        AWTCharLBearing;
        AWTCharRBearing;
        AWTCharAscent;
        AWTCharDescent;
        AWTDrawGlyphList;

        Java_sun_awt_X11_XToolkit_waitForEvents;
        Java_java_awt_Event_initIDs;
        Java_sun_awt_motif_X11FontMetrics_initIDs;
        Java_sun_awt_motif_X11FontMetrics_init;
        Java_sun_awt_X11_XWindow_x11inputMethodLookupString;
        Java_sun_awt_X11_XWindow_haveCurrentX11InputMethodInstance;
        Java_java_awt_AWTEvent_nativeSetSource;
        Java_java_awt_Dialog_initIDs;
        Java_sun_awt_PlatformFont_initIDs;
        Java_sun_awt_FontDescriptor_initIDs;
        Java_sun_awt_X11_XFontPeer_initIDs;
        Java_sun_awt_motif_X11FontMetrics_getMFCharsWidth;
        Java_sun_awt_X11InputMethod_initIDs;
        Java_sun_awt_X11InputMethod_resetXIC;
        Java_sun_awt_X11InputMethod_disposeXIC;
        Java_sun_awt_X11InputMethod_setCompositionEnabledNative;
        Java_sun_awt_X11InputMethod_isCompositionEnabledNative;
        Java_sun_awt_X11InputMethod_turnoffStatusWindow;
        Java_sun_awt_X11_XInputMethod_openXIMNative;
        Java_sun_awt_X11_XInputMethod_createXICNative;
        Java_sun_awt_X11_XInputMethod_setXICFocusNative;
        Java_sun_awt_X11_XInputMethod_adjustStatusWindow;
        Java_sun_awt_X11_XlibWrapper_XQueryPointer;
        Java_sun_awt_X11_XlibWrapper_XFreeCursor;
        Java_sun_awt_X11_XToolkit_getDefaultXColormap;
        Java_sun_awt_X11_XToolkit_getDefaultScreenData;
        Java_sun_awt_X11_XToolkit_getEnv;
        Java_sun_awt_X11_XToolkit_setNoisyXErrorHandler;
        Java_sun_awt_X11_XlibWrapper_XCreateBitmapFromData;
        Java_sun_awt_X11_XlibWrapper_XFreePixmap;
        Java_sun_awt_X11_XlibWrapper_XAllocColor;
        Java_sun_awt_X11_XlibWrapper_XCreatePixmapCursor;
        Java_sun_awt_X11_XlibWrapper_XQueryBestCursor;
        Java_sun_awt_X11_XlibWrapper_XCreatePixmap;
        Java_sun_awt_X11_XlibWrapper_XCreateImage;
        Java_sun_awt_X11_XlibWrapper_XCreateGC;
        Java_sun_awt_X11_XlibWrapper_XDestroyImage;
        Java_sun_awt_X11_XlibWrapper_XPutImage;
        Java_sun_awt_X11_XlibWrapper_XFreeGC;
        Java_sun_awt_X11_XlibWrapper_XSetWindowBackgroundPixmap;
        Java_sun_awt_X11_XlibWrapper_XClearWindow;
        Java_sun_awt_X11_XlibWrapper_XGetIconSizes;
        Java_sun_awt_X11_XlibWrapper_XKeycodeToKeysym;
        Java_sun_awt_X11_XlibWrapper_XKeysymToKeycode;
        Java_sun_awt_X11_XlibWrapper_XGetModifierMapping;
        Java_sun_awt_X11_XlibWrapper_XFreeModifiermap;        
        Java_sun_awt_X11_XlibWrapper_XChangeActivePointerGrab;
        Java_sun_awt_X11_XlibWrapper_XNextSecondaryLoopEvent;
        Java_sun_awt_X11_XlibWrapper_ExitSecondaryLoop;
        Java_sun_awt_X11_XlibWrapper_XTextPropertyToStringList;
        Java_sun_awt_X11_XlibWrapper_XGrabServer;
        Java_sun_awt_X11_XlibWrapper_XUngrabServer;
        Java_sun_awt_X11_XlibWrapper_XPutBackEvent;        
        Java_sun_awt_X11_XlibWrapper_XConvertCase;
        Java_sun_awt_X11_XlibWrapper_XSynchronize;
        Java_java_awt_FileDialog_initIDs;
        Java_sun_awt_X11_XWindow_initIDs;

        Java_sun_java2d_opengl_OGLMaskFill_maskFill;
        Java_sun_java2d_opengl_OGLRenderer_drawPoly;
        Java_sun_java2d_opengl_OGLRenderQueue_flushBuffer;
        Java_sun_java2d_opengl_OGLSurfaceData_initTexture;
        Java_sun_java2d_opengl_OGLSurfaceData_initFBObject;
        Java_sun_java2d_opengl_OGLSurfaceData_initFlipBackbuffer;
        Java_sun_java2d_opengl_OGLSurfaceData_getTextureTarget;
        Java_sun_java2d_opengl_OGLTextRenderer_drawGlyphList;
        Java_sun_java2d_opengl_GLXGraphicsConfig_getGLXConfigInfo;
        Java_sun_java2d_opengl_GLXGraphicsConfig_initConfig;
        Java_sun_java2d_opengl_GLXGraphicsConfig_getOGLCapabilities;
        Java_sun_java2d_opengl_GLXSurfaceData_initOps;
        Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer;

        Java_sun_java2d_x11_X11PMBlitBgLoops_nativeBlitBg;
        Java_sun_java2d_x11_X11PMBlitLoops_nativeBlit;
        Java_sun_java2d_x11_X11PMBlitLoops_updateBitmask;
	Java_sun_java2d_x11_X11Renderer_XFillSpans;
	Java_sun_java2d_x11_X11Renderer_XDrawArc;
	Java_sun_java2d_x11_X11Renderer_XDrawLine;
	Java_sun_java2d_x11_X11Renderer_XDrawOval;
	Java_sun_java2d_x11_X11Renderer_XDrawPoly;
	Java_sun_java2d_x11_X11Renderer_XDrawRect;
	Java_sun_java2d_x11_X11Renderer_XDrawRoundRect;
        Java_sun_java2d_x11_X11Renderer_XDoPath;
	Java_sun_java2d_x11_X11Renderer_XFillArc;
	Java_sun_java2d_x11_X11Renderer_XFillOval;
	Java_sun_java2d_x11_X11Renderer_XFillPoly;
	Java_sun_java2d_x11_X11Renderer_XFillRect;
	Java_sun_java2d_x11_X11Renderer_XFillRoundRect;
        Java_sun_java2d_x11_X11Renderer_devCopyArea;
        Java_sun_java2d_x11_X11SurfaceData_setInvalid;
        Java_sun_java2d_x11_X11SurfaceData_initIDs;
	Java_sun_java2d_x11_X11SurfaceData_isDrawableValid;
        Java_sun_java2d_x11_X11SurfaceData_isDgaAvailable;
        Java_sun_java2d_x11_X11SurfaceData_initOps;
        Java_sun_java2d_x11_X11SurfaceData_initSurface;
        Java_sun_java2d_x11_X11SurfaceData_flushNativeSurface;
        Java_sun_java2d_x11_X11SurfaceData_XCreateGC;
        Java_sun_java2d_x11_X11SurfaceData_XResetClip;
        Java_sun_java2d_x11_X11SurfaceData_XSetClip;
        Java_sun_java2d_x11_X11SurfaceData_XSetCopyMode;
        Java_sun_java2d_x11_X11SurfaceData_XSetXorMode;
        Java_sun_java2d_x11_X11SurfaceData_XSetForeground;
        Java_sun_java2d_x11_X11SurfaceData_XSetGraphicsExposures;

        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1arrow;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1box_1gap;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1check;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1expander;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1extension;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1flat_1box;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1focus;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1handle;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1hline;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1option;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1shadow;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1slider;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1vline;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1paint_1background;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeStartPainting;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeFinishPainting;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1switch_1theme;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_native_1get_1gtk_1setting;
        Java_com_sun_java_swing_plaf_gtk_GTKEngine_nativeSetRangeValue;
        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetXThickness;
        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetYThickness;
        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetColorForState;
        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetClassValue;
        Java_com_sun_java_swing_plaf_gtk_GTKStyle_nativeGetPangoFontName;

	Java_sun_print_CUPSPrinter_initIDs;
	Java_sun_print_CUPSPrinter_getCupsServer;
	Java_sun_print_CUPSPrinter_getCupsPort;
	Java_sun_print_CUPSPrinter_canConnect;	
	Java_sun_print_CUPSPrinter_getMedia;
	Java_sun_print_CUPSPrinter_getPageSizes;

        awt_GetDrawingSurface;
        awt_FreeDrawingSurface;
        awt_Unlock;
        awt_Lock;
        awt_GetComponent;

        # Java Plugin
        # This is in awt_LoadLibrary.c and falls through to libmawt.
        # Evidently plugin needs this for backward compatability.
        getAwtLockFunctions;
        getAwtData;
        getAwtDisplay;
        #XAWT entry point for CDE
        Java_sun_awt_motif_XsessionWMcommand;
        Java_sun_awt_motif_XsessionWMcommand_New;

        local:
                *;
};
