libX11.so.init.c 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293
  1. /*
  2. * Copyright 2018-2020 Yury Gribov
  3. *
  4. * The MIT License (MIT)
  5. *
  6. * Use of this source code is governed by MIT license that can be
  7. * found in the LICENSE.txt file.
  8. */
  9. #include <dlfcn.h>
  10. #include <stdlib.h>
  11. #include <stdio.h>
  12. #include <assert.h>
  13. // Sanity check for ARM to avoid puzzling runtime crashes
  14. #ifdef __arm__
  15. # if defined __thumb__ && ! defined __THUMB_INTERWORK__
  16. # error "ARM trampolines need -mthumb-interwork to work in Thumb mode"
  17. # endif
  18. #endif
  19. #ifdef __cplusplus
  20. extern "C" {
  21. #endif
  22. #define CHECK(cond, fmt, ...) do { \
  23. if(!(cond)) { \
  24. fprintf(stderr, "implib-gen: libX11.so: " fmt "\n", ##__VA_ARGS__); \
  25. assert(0 && "Assertion in generated code"); \
  26. exit(1); \
  27. } \
  28. } while(0)
  29. #define CALL_USER_CALLBACK 0
  30. #define NO_DLOPEN False
  31. #define LAZY_LOAD 1
  32. static void *lib_handle;
  33. static int is_lib_loading;
  34. static void *load_library() {
  35. if(lib_handle)
  36. return lib_handle;
  37. is_lib_loading = 1;
  38. // TODO: dlopen and users callback must be protected w/ critical section (to avoid dlopening lib twice)
  39. #if NO_DLOPEN
  40. CHECK(0, "internal error"); // We shouldn't get here
  41. #elif CALL_USER_CALLBACK
  42. extern void *(const char *lib_name);
  43. lib_handle = ("libX11.so");
  44. CHECK(lib_handle, "callback '' failed to load library");
  45. #else
  46. lib_handle = dlopen("libX11.so", RTLD_LAZY | RTLD_GLOBAL);
  47. CHECK(lib_handle, "failed to load library: %s", dlerror());
  48. #endif
  49. is_lib_loading = 0;
  50. return lib_handle;
  51. }
  52. #if ! NO_DLOPEN && ! LAZY_LOAD
  53. static void __attribute__((constructor)) load_lib() {
  54. load_library();
  55. }
  56. #endif
  57. static void __attribute__((destructor)) unload_lib() {
  58. if(lib_handle)
  59. dlclose(lib_handle);
  60. }
  61. // TODO: convert to single 0-separated string
  62. static const char *const sym_names[] = {
  63. "KeySymToUcs4",
  64. "XActivateScreenSaver",
  65. "XAddConnectionWatch",
  66. "XAddExtension",
  67. "XAddHost",
  68. "XAddHosts",
  69. "XAddPixel",
  70. "XAddToExtensionList",
  71. "XAddToSaveSet",
  72. "XAllPlanes",
  73. "XAllocClassHint",
  74. "XAllocColor",
  75. "XAllocColorCells",
  76. "XAllocColorPlanes",
  77. "XAllocIconSize",
  78. "XAllocNamedColor",
  79. "XAllocSizeHints",
  80. "XAllocStandardColormap",
  81. "XAllocWMHints",
  82. "XAllowEvents",
  83. "XAutoRepeatOff",
  84. "XAutoRepeatOn",
  85. "XBaseFontNameListOfFontSet",
  86. "XBell",
  87. "XBitmapBitOrder",
  88. "XBitmapPad",
  89. "XBitmapUnit",
  90. "XBlackPixel",
  91. "XBlackPixelOfScreen",
  92. "XCellsOfScreen",
  93. "XChangeActivePointerGrab",
  94. "XChangeGC",
  95. "XChangeKeyboardControl",
  96. "XChangeKeyboardMapping",
  97. "XChangePointerControl",
  98. "XChangeProperty",
  99. "XChangeSaveSet",
  100. "XChangeWindowAttributes",
  101. "XCheckIfEvent",
  102. "XCheckMaskEvent",
  103. "XCheckTypedEvent",
  104. "XCheckTypedWindowEvent",
  105. "XCheckWindowEvent",
  106. "XCirculateSubwindows",
  107. "XCirculateSubwindowsDown",
  108. "XCirculateSubwindowsUp",
  109. "XClearArea",
  110. "XClearWindow",
  111. "XClipBox",
  112. "XCloseDisplay",
  113. "XCloseIM",
  114. "XCloseOM",
  115. "XConfigureWindow",
  116. "XConnectionNumber",
  117. "XContextDependentDrawing",
  118. "XContextualDrawing",
  119. "XConvertCase",
  120. "XConvertSelection",
  121. "XCopyArea",
  122. "XCopyColormapAndFree",
  123. "XCopyGC",
  124. "XCopyPlane",
  125. "XCreateBitmapFromData",
  126. "XCreateColormap",
  127. "XCreateFontCursor",
  128. "XCreateFontSet",
  129. "XCreateGC",
  130. "XCreateGlyphCursor",
  131. "XCreateIC",
  132. "XCreateImage",
  133. "XCreateOC",
  134. "XCreatePixmap",
  135. "XCreatePixmapCursor",
  136. "XCreatePixmapFromBitmapData",
  137. "XCreateRegion",
  138. "XCreateSimpleWindow",
  139. "XCreateWindow",
  140. "XDefaultColormap",
  141. "XDefaultColormapOfScreen",
  142. "XDefaultDepth",
  143. "XDefaultDepthOfScreen",
  144. "XDefaultGC",
  145. "XDefaultGCOfScreen",
  146. "XDefaultRootWindow",
  147. "XDefaultScreen",
  148. "XDefaultScreenOfDisplay",
  149. "XDefaultString",
  150. "XDefaultVisual",
  151. "XDefaultVisualOfScreen",
  152. "XDefineCursor",
  153. "XDeleteContext",
  154. "XDeleteModifiermapEntry",
  155. "XDeleteProperty",
  156. "XDestroyIC",
  157. "XDestroyImage",
  158. "XDestroyOC",
  159. "XDestroyRegion",
  160. "XDestroySubwindows",
  161. "XDestroyWindow",
  162. "XDirectionalDependentDrawing",
  163. "XDisableAccessControl",
  164. "XDisplayCells",
  165. "XDisplayHeight",
  166. "XDisplayHeightMM",
  167. "XDisplayKeycodes",
  168. "XDisplayMotionBufferSize",
  169. "XDisplayName",
  170. "XDisplayOfIM",
  171. "XDisplayOfOM",
  172. "XDisplayOfScreen",
  173. "XDisplayPlanes",
  174. "XDisplayString",
  175. "XDisplayWidth",
  176. "XDisplayWidthMM",
  177. "XDoesBackingStore",
  178. "XDoesSaveUnders",
  179. "XDrawArc",
  180. "XDrawArcs",
  181. "XDrawImageString",
  182. "XDrawImageString16",
  183. "XDrawLine",
  184. "XDrawLines",
  185. "XDrawPoint",
  186. "XDrawPoints",
  187. "XDrawRectangle",
  188. "XDrawRectangles",
  189. "XDrawSegments",
  190. "XDrawString",
  191. "XDrawString16",
  192. "XDrawText",
  193. "XDrawText16",
  194. "XEHeadOfExtensionList",
  195. "XESetBeforeFlush",
  196. "XESetCloseDisplay",
  197. "XESetCopyEventCookie",
  198. "XESetCopyGC",
  199. "XESetCreateFont",
  200. "XESetCreateGC",
  201. "XESetError",
  202. "XESetErrorString",
  203. "XESetEventToWire",
  204. "XESetFlushGC",
  205. "XESetFreeFont",
  206. "XESetFreeGC",
  207. "XESetPrintErrorValues",
  208. "XESetWireToError",
  209. "XESetWireToEvent",
  210. "XESetWireToEventCookie",
  211. "XEmptyRegion",
  212. "XEnableAccessControl",
  213. "XEqualRegion",
  214. "XEventMaskOfScreen",
  215. "XEventsQueued",
  216. "XExtendedMaxRequestSize",
  217. "XExtentsOfFontSet",
  218. "XFetchBuffer",
  219. "XFetchBytes",
  220. "XFetchName",
  221. "XFillArc",
  222. "XFillArcs",
  223. "XFillPolygon",
  224. "XFillRectangle",
  225. "XFillRectangles",
  226. "XFilterEvent",
  227. "XFindContext",
  228. "XFindOnExtensionList",
  229. "XFlush",
  230. "XFlushGC",
  231. "XFontsOfFontSet",
  232. "XForceScreenSaver",
  233. "XFree",
  234. "XFreeColormap",
  235. "XFreeColors",
  236. "XFreeCursor",
  237. "XFreeEventData",
  238. "XFreeExtensionList",
  239. "XFreeFont",
  240. "XFreeFontInfo",
  241. "XFreeFontNames",
  242. "XFreeFontPath",
  243. "XFreeFontSet",
  244. "XFreeGC",
  245. "XFreeModifiermap",
  246. "XFreePixmap",
  247. "XFreeStringList",
  248. "XGContextFromGC",
  249. "XGeometry",
  250. "XGetAtomName",
  251. "XGetAtomNames",
  252. "XGetClassHint",
  253. "XGetCommand",
  254. "XGetDefault",
  255. "XGetErrorDatabaseText",
  256. "XGetErrorText",
  257. "XGetEventData",
  258. "XGetFontPath",
  259. "XGetFontProperty",
  260. "XGetGCValues",
  261. "XGetGeometry",
  262. "XGetICValues",
  263. "XGetIMValues",
  264. "XGetIconName",
  265. "XGetIconSizes",
  266. "XGetImage",
  267. "XGetInputFocus",
  268. "XGetKeyboardControl",
  269. "XGetKeyboardMapping",
  270. "XGetModifierMapping",
  271. "XGetMotionEvents",
  272. "XGetNormalHints",
  273. "XGetOCValues",
  274. "XGetOMValues",
  275. "XGetPixel",
  276. "XGetPointerControl",
  277. "XGetPointerMapping",
  278. "XGetRGBColormaps",
  279. "XGetScreenSaver",
  280. "XGetSelectionOwner",
  281. "XGetSizeHints",
  282. "XGetStandardColormap",
  283. "XGetSubImage",
  284. "XGetTextProperty",
  285. "XGetTransientForHint",
  286. "XGetVisualInfo",
  287. "XGetWMClientMachine",
  288. "XGetWMColormapWindows",
  289. "XGetWMHints",
  290. "XGetWMIconName",
  291. "XGetWMName",
  292. "XGetWMNormalHints",
  293. "XGetWMProtocols",
  294. "XGetWMSizeHints",
  295. "XGetWindowAttributes",
  296. "XGetWindowProperty",
  297. "XGetZoomHints",
  298. "XGrabButton",
  299. "XGrabKey",
  300. "XGrabKeyboard",
  301. "XGrabPointer",
  302. "XGrabServer",
  303. "XHeightMMOfScreen",
  304. "XHeightOfScreen",
  305. "XIMOfIC",
  306. "XIconifyWindow",
  307. "XIfEvent",
  308. "XImageByteOrder",
  309. "XInitExtension",
  310. "XInitImage",
  311. "XInitThreads",
  312. "XInsertModifiermapEntry",
  313. "XInstallColormap",
  314. "XInternAtom",
  315. "XInternAtoms",
  316. "XInternalConnectionNumbers",
  317. "XIntersectRegion",
  318. "XKeycodeToKeysym",
  319. "XKeysymToKeycode",
  320. "XKeysymToString",
  321. "XKillClient",
  322. "XLastKnownRequestProcessed",
  323. "XListDepths",
  324. "XListExtensions",
  325. "XListFonts",
  326. "XListFontsWithInfo",
  327. "XListHosts",
  328. "XListInstalledColormaps",
  329. "XListPixmapFormats",
  330. "XListProperties",
  331. "XLoadFont",
  332. "XLoadQueryFont",
  333. "XLocaleOfFontSet",
  334. "XLocaleOfIM",
  335. "XLocaleOfOM",
  336. "XLockDisplay",
  337. "XLookupColor",
  338. "XLookupKeysym",
  339. "XLookupString",
  340. "XLowerWindow",
  341. "XMapRaised",
  342. "XMapSubwindows",
  343. "XMapWindow",
  344. "XMaskEvent",
  345. "XMatchVisualInfo",
  346. "XMaxCmapsOfScreen",
  347. "XMaxRequestSize",
  348. "XMinCmapsOfScreen",
  349. "XMoveResizeWindow",
  350. "XMoveWindow",
  351. "XNewModifiermap",
  352. "XNextEvent",
  353. "XNextRequest",
  354. "XNoOp",
  355. "XOMOfOC",
  356. "XOffsetRegion",
  357. "XOpenDisplay",
  358. "XOpenIM",
  359. "XOpenOM",
  360. "XParseColor",
  361. "XParseGeometry",
  362. "XPeekEvent",
  363. "XPeekIfEvent",
  364. "XPending",
  365. "XPlanesOfScreen",
  366. "XPointInRegion",
  367. "XPolygonRegion",
  368. "XProcessInternalConnection",
  369. "XProtocolRevision",
  370. "XProtocolVersion",
  371. "XPutBackEvent",
  372. "XPutImage",
  373. "XPutPixel",
  374. "XQLength",
  375. "XQueryBestCursor",
  376. "XQueryBestSize",
  377. "XQueryBestStipple",
  378. "XQueryBestTile",
  379. "XQueryColor",
  380. "XQueryColors",
  381. "XQueryExtension",
  382. "XQueryFont",
  383. "XQueryKeymap",
  384. "XQueryPointer",
  385. "XQueryTextExtents",
  386. "XQueryTextExtents16",
  387. "XQueryTree",
  388. "XRaiseWindow",
  389. "XReadBitmapFile",
  390. "XReadBitmapFileData",
  391. "XRebindKeysym",
  392. "XRecolorCursor",
  393. "XReconfigureWMWindow",
  394. "XRectInRegion",
  395. "XRefreshKeyboardMapping",
  396. "XRegisterIMInstantiateCallback",
  397. "XRemoveConnectionWatch",
  398. "XRemoveFromSaveSet",
  399. "XRemoveHost",
  400. "XRemoveHosts",
  401. "XReparentWindow",
  402. "XResetScreenSaver",
  403. "XResizeWindow",
  404. "XResourceManagerString",
  405. "XRestackWindows",
  406. "XRootWindow",
  407. "XRootWindowOfScreen",
  408. "XRotateBuffers",
  409. "XRotateWindowProperties",
  410. "XSaveContext",
  411. "XScreenCount",
  412. "XScreenNumberOfScreen",
  413. "XScreenOfDisplay",
  414. "XScreenResourceString",
  415. "XSelectInput",
  416. "XSendEvent",
  417. "XServerVendor",
  418. "XSetAccessControl",
  419. "XSetAfterFunction",
  420. "XSetArcMode",
  421. "XSetAuthorization",
  422. "XSetBackground",
  423. "XSetClassHint",
  424. "XSetClipMask",
  425. "XSetClipOrigin",
  426. "XSetClipRectangles",
  427. "XSetCloseDownMode",
  428. "XSetCommand",
  429. "XSetDashes",
  430. "XSetErrorHandler",
  431. "XSetFillRule",
  432. "XSetFillStyle",
  433. "XSetFont",
  434. "XSetFontPath",
  435. "XSetForeground",
  436. "XSetFunction",
  437. "XSetGraphicsExposures",
  438. "XSetICFocus",
  439. "XSetICValues",
  440. "XSetIMValues",
  441. "XSetIOErrorHandler",
  442. "XSetIconName",
  443. "XSetIconSizes",
  444. "XSetInputFocus",
  445. "XSetLineAttributes",
  446. "XSetLocaleModifiers",
  447. "XSetModifierMapping",
  448. "XSetNormalHints",
  449. "XSetOCValues",
  450. "XSetOMValues",
  451. "XSetPlaneMask",
  452. "XSetPointerMapping",
  453. "XSetRGBColormaps",
  454. "XSetRegion",
  455. "XSetScreenSaver",
  456. "XSetSelectionOwner",
  457. "XSetSizeHints",
  458. "XSetStandardColormap",
  459. "XSetStandardProperties",
  460. "XSetState",
  461. "XSetStipple",
  462. "XSetSubwindowMode",
  463. "XSetTSOrigin",
  464. "XSetTextProperty",
  465. "XSetTile",
  466. "XSetTransientForHint",
  467. "XSetWMClientMachine",
  468. "XSetWMColormapWindows",
  469. "XSetWMHints",
  470. "XSetWMIconName",
  471. "XSetWMName",
  472. "XSetWMNormalHints",
  473. "XSetWMProperties",
  474. "XSetWMProtocols",
  475. "XSetWMSizeHints",
  476. "XSetWindowBackground",
  477. "XSetWindowBackgroundPixmap",
  478. "XSetWindowBorder",
  479. "XSetWindowBorderPixmap",
  480. "XSetWindowBorderWidth",
  481. "XSetWindowColormap",
  482. "XSetZoomHints",
  483. "XShrinkRegion",
  484. "XStoreBuffer",
  485. "XStoreBytes",
  486. "XStoreColor",
  487. "XStoreColors",
  488. "XStoreName",
  489. "XStoreNamedColor",
  490. "XStringListToTextProperty",
  491. "XStringToKeysym",
  492. "XSubImage",
  493. "XSubtractRegion",
  494. "XSupportsLocale",
  495. "XSync",
  496. "XSynchronize",
  497. "XTextExtents",
  498. "XTextExtents16",
  499. "XTextPropertyToStringList",
  500. "XTextWidth",
  501. "XTextWidth16",
  502. "XTranslateCoordinates",
  503. "XUndefineCursor",
  504. "XUngrabButton",
  505. "XUngrabKey",
  506. "XUngrabKeyboard",
  507. "XUngrabPointer",
  508. "XUngrabServer",
  509. "XUninstallColormap",
  510. "XUnionRectWithRegion",
  511. "XUnionRegion",
  512. "XUnloadFont",
  513. "XUnlockDisplay",
  514. "XUnmapSubwindows",
  515. "XUnmapWindow",
  516. "XUnregisterIMInstantiateCallback",
  517. "XUnsetICFocus",
  518. "XVaCreateNestedList",
  519. "XVendorRelease",
  520. "XVisualIDFromVisual",
  521. "XWMGeometry",
  522. "XWarpPointer",
  523. "XWhitePixel",
  524. "XWhitePixelOfScreen",
  525. "XWidthMMOfScreen",
  526. "XWidthOfScreen",
  527. "XWindowEvent",
  528. "XWithdrawWindow",
  529. "XWriteBitmapFile",
  530. "XXorRegion",
  531. "XcmsAddColorSpace",
  532. "XcmsAddFunctionSet",
  533. "XcmsAllocColor",
  534. "XcmsAllocNamedColor",
  535. "XcmsCCCOfColormap",
  536. "XcmsCIELabClipL",
  537. "XcmsCIELabClipLab",
  538. "XcmsCIELabClipab",
  539. "XcmsCIELabQueryMaxC",
  540. "XcmsCIELabQueryMaxL",
  541. "XcmsCIELabQueryMaxLC",
  542. "XcmsCIELabQueryMinL",
  543. "XcmsCIELabToCIEXYZ",
  544. "XcmsCIELabWhiteShiftColors",
  545. "XcmsCIELuvClipL",
  546. "XcmsCIELuvClipLuv",
  547. "XcmsCIELuvClipuv",
  548. "XcmsCIELuvQueryMaxC",
  549. "XcmsCIELuvQueryMaxL",
  550. "XcmsCIELuvQueryMaxLC",
  551. "XcmsCIELuvQueryMinL",
  552. "XcmsCIELuvToCIEuvY",
  553. "XcmsCIELuvWhiteShiftColors",
  554. "XcmsCIEXYZToCIELab",
  555. "XcmsCIEXYZToCIEuvY",
  556. "XcmsCIEXYZToCIExyY",
  557. "XcmsCIEXYZToRGBi",
  558. "XcmsCIEuvYToCIELuv",
  559. "XcmsCIEuvYToCIEXYZ",
  560. "XcmsCIEuvYToTekHVC",
  561. "XcmsCIExyYToCIEXYZ",
  562. "XcmsClientWhitePointOfCCC",
  563. "XcmsConvertColors",
  564. "XcmsCreateCCC",
  565. "XcmsDefaultCCC",
  566. "XcmsDisplayOfCCC",
  567. "XcmsFormatOfPrefix",
  568. "XcmsFreeCCC",
  569. "XcmsLookupColor",
  570. "XcmsPrefixOfFormat",
  571. "XcmsQueryBlack",
  572. "XcmsQueryBlue",
  573. "XcmsQueryColor",
  574. "XcmsQueryColors",
  575. "XcmsQueryGreen",
  576. "XcmsQueryRed",
  577. "XcmsQueryWhite",
  578. "XcmsRGBToRGBi",
  579. "XcmsRGBiToCIEXYZ",
  580. "XcmsRGBiToRGB",
  581. "XcmsScreenNumberOfCCC",
  582. "XcmsScreenWhitePointOfCCC",
  583. "XcmsSetCCCOfColormap",
  584. "XcmsSetCompressionProc",
  585. "XcmsSetWhiteAdjustProc",
  586. "XcmsSetWhitePoint",
  587. "XcmsStoreColor",
  588. "XcmsStoreColors",
  589. "XcmsTekHVCClipC",
  590. "XcmsTekHVCClipV",
  591. "XcmsTekHVCClipVC",
  592. "XcmsTekHVCQueryMaxC",
  593. "XcmsTekHVCQueryMaxV",
  594. "XcmsTekHVCQueryMaxVC",
  595. "XcmsTekHVCQueryMaxVSamples",
  596. "XcmsTekHVCQueryMinV",
  597. "XcmsTekHVCToCIEuvY",
  598. "XcmsTekHVCWhiteShiftColors",
  599. "XcmsVisualOfCCC",
  600. "XkbAddDeviceLedInfo",
  601. "XkbAddGeomColor",
  602. "XkbAddGeomDoodad",
  603. "XkbAddGeomKey",
  604. "XkbAddGeomKeyAlias",
  605. "XkbAddGeomOutline",
  606. "XkbAddGeomOverlay",
  607. "XkbAddGeomOverlayKey",
  608. "XkbAddGeomOverlayRow",
  609. "XkbAddGeomProperty",
  610. "XkbAddGeomRow",
  611. "XkbAddGeomSection",
  612. "XkbAddGeomShape",
  613. "XkbAddKeyType",
  614. "XkbAllocClientMap",
  615. "XkbAllocCompatMap",
  616. "XkbAllocControls",
  617. "XkbAllocDeviceInfo",
  618. "XkbAllocGeomColors",
  619. "XkbAllocGeomDoodads",
  620. "XkbAllocGeomKeyAliases",
  621. "XkbAllocGeomKeys",
  622. "XkbAllocGeomOutlines",
  623. "XkbAllocGeomOverlayKeys",
  624. "XkbAllocGeomOverlayRows",
  625. "XkbAllocGeomOverlays",
  626. "XkbAllocGeomPoints",
  627. "XkbAllocGeomProps",
  628. "XkbAllocGeomRows",
  629. "XkbAllocGeomSectionDoodads",
  630. "XkbAllocGeomSections",
  631. "XkbAllocGeomShapes",
  632. "XkbAllocGeometry",
  633. "XkbAllocIndicatorMaps",
  634. "XkbAllocKeyboard",
  635. "XkbAllocNames",
  636. "XkbAllocServerMap",
  637. "XkbApplyCompatMapToKey",
  638. "XkbApplyVirtualModChanges",
  639. "XkbBell",
  640. "XkbBellEvent",
  641. "XkbChangeDeviceInfo",
  642. "XkbChangeEnabledControls",
  643. "XkbChangeKeycodeRange",
  644. "XkbChangeMap",
  645. "XkbChangeNames",
  646. "XkbChangeTypesOfKey",
  647. "XkbComputeEffectiveMap",
  648. "XkbComputeRowBounds",
  649. "XkbComputeSectionBounds",
  650. "XkbComputeShapeBounds",
  651. "XkbComputeShapeTop",
  652. "XkbCopyKeyType",
  653. "XkbCopyKeyTypes",
  654. "XkbDeviceBell",
  655. "XkbDeviceBellEvent",
  656. "XkbFindOverlayForKey",
  657. "XkbForceBell",
  658. "XkbForceDeviceBell",
  659. "XkbFreeClientMap",
  660. "XkbFreeCompatMap",
  661. "XkbFreeComponentList",
  662. "XkbFreeControls",
  663. "XkbFreeDeviceInfo",
  664. "XkbFreeGeomColors",
  665. "XkbFreeGeomDoodads",
  666. "XkbFreeGeomKeyAliases",
  667. "XkbFreeGeomKeys",
  668. "XkbFreeGeomOutlines",
  669. "XkbFreeGeomOverlayKeys",
  670. "XkbFreeGeomOverlayRows",
  671. "XkbFreeGeomOverlays",
  672. "XkbFreeGeomPoints",
  673. "XkbFreeGeomProperties",
  674. "XkbFreeGeomRows",
  675. "XkbFreeGeomSections",
  676. "XkbFreeGeomShapes",
  677. "XkbFreeGeometry",
  678. "XkbFreeIndicatorMaps",
  679. "XkbFreeKeyboard",
  680. "XkbFreeNames",
  681. "XkbFreeServerMap",
  682. "XkbGetAutoRepeatRate",
  683. "XkbGetAutoResetControls",
  684. "XkbGetCompatMap",
  685. "XkbGetControls",
  686. "XkbGetDetectableAutoRepeat",
  687. "XkbGetDeviceButtonActions",
  688. "XkbGetDeviceInfo",
  689. "XkbGetDeviceInfoChanges",
  690. "XkbGetDeviceLedInfo",
  691. "XkbGetGeometry",
  692. "XkbGetIndicatorMap",
  693. "XkbGetIndicatorState",
  694. "XkbGetKeyActions",
  695. "XkbGetKeyBehaviors",
  696. "XkbGetKeyExplicitComponents",
  697. "XkbGetKeyModifierMap",
  698. "XkbGetKeySyms",
  699. "XkbGetKeyTypes",
  700. "XkbGetKeyVirtualModMap",
  701. "XkbGetKeyboard",
  702. "XkbGetKeyboardByName",
  703. "XkbGetMap",
  704. "XkbGetMapChanges",
  705. "XkbGetNamedDeviceIndicator",
  706. "XkbGetNamedGeometry",
  707. "XkbGetNamedIndicator",
  708. "XkbGetNames",
  709. "XkbGetPerClientControls",
  710. "XkbGetState",
  711. "XkbGetUpdatedMap",
  712. "XkbGetVirtualMods",
  713. "XkbGetXlibControls",
  714. "XkbIgnoreExtension",
  715. "XkbInitCanonicalKeyTypes",
  716. "XkbKeyTypesForCoreSymbols",
  717. "XkbKeycodeToKeysym",
  718. "XkbKeysymToModifiers",
  719. "XkbLatchGroup",
  720. "XkbLatchModifiers",
  721. "XkbLibraryVersion",
  722. "XkbListComponents",
  723. "XkbLockGroup",
  724. "XkbLockModifiers",
  725. "XkbLookupKeyBinding",
  726. "XkbLookupKeySym",
  727. "XkbNoteControlsChanges",
  728. "XkbNoteDeviceChanges",
  729. "XkbNoteMapChanges",
  730. "XkbNoteNameChanges",
  731. "XkbOpenDisplay",
  732. "XkbQueryExtension",
  733. "XkbRefreshKeyboardMapping",
  734. "XkbResizeDeviceButtonActions",
  735. "XkbResizeKeyActions",
  736. "XkbResizeKeySyms",
  737. "XkbResizeKeyType",
  738. "XkbSelectEventDetails",
  739. "XkbSelectEvents",
  740. "XkbSetAtomFuncs",
  741. "XkbSetAutoRepeatRate",
  742. "XkbSetAutoResetControls",
  743. "XkbSetCompatMap",
  744. "XkbSetControls",
  745. "XkbSetDebuggingFlags",
  746. "XkbSetDetectableAutoRepeat",
  747. "XkbSetDeviceButtonActions",
  748. "XkbSetDeviceInfo",
  749. "XkbSetDeviceLedInfo",
  750. "XkbSetGeometry",
  751. "XkbSetIgnoreLockMods",
  752. "XkbSetIndicatorMap",
  753. "XkbSetMap",
  754. "XkbSetNamedDeviceIndicator",
  755. "XkbSetNamedIndicator",
  756. "XkbSetNames",
  757. "XkbSetPerClientControls",
  758. "XkbSetServerInternalMods",
  759. "XkbSetXlibControls",
  760. "XkbToControl",
  761. "XkbTranslateKey",
  762. "XkbTranslateKeyCode",
  763. "XkbTranslateKeySym",
  764. "XkbUpdateActionVirtualMods",
  765. "XkbUpdateKeyTypeVirtualMods",
  766. "XkbUpdateMapFromCore",
  767. "XkbUseExtension",
  768. "XkbVirtualModsToReal",
  769. "XkbXlibControlsImplemented",
  770. "XmbDrawImageString",
  771. "XmbDrawString",
  772. "XmbDrawText",
  773. "XmbLookupString",
  774. "XmbResetIC",
  775. "XmbSetWMProperties",
  776. "XmbTextEscapement",
  777. "XmbTextExtents",
  778. "XmbTextListToTextProperty",
  779. "XmbTextPerCharExtents",
  780. "XmbTextPropertyToTextList",
  781. "Xpermalloc",
  782. "XrmCombineDatabase",
  783. "XrmCombineFileDatabase",
  784. "XrmDestroyDatabase",
  785. "XrmEnumerateDatabase",
  786. "XrmGetDatabase",
  787. "XrmGetFileDatabase",
  788. "XrmGetResource",
  789. "XrmGetStringDatabase",
  790. "XrmInitialize",
  791. "XrmLocaleOfDatabase",
  792. "XrmMergeDatabases",
  793. "XrmParseCommand",
  794. "XrmPermStringToQuark",
  795. "XrmPutFileDatabase",
  796. "XrmPutLineResource",
  797. "XrmPutResource",
  798. "XrmPutStringResource",
  799. "XrmQGetResource",
  800. "XrmQGetSearchList",
  801. "XrmQGetSearchResource",
  802. "XrmQPutResource",
  803. "XrmQPutStringResource",
  804. "XrmQuarkToString",
  805. "XrmSetDatabase",
  806. "XrmStringToBindingQuarkList",
  807. "XrmStringToQuark",
  808. "XrmStringToQuarkList",
  809. "XrmUniqueQuark",
  810. "Xutf8DrawImageString",
  811. "Xutf8DrawString",
  812. "Xutf8DrawText",
  813. "Xutf8LookupString",
  814. "Xutf8ResetIC",
  815. "Xutf8SetWMProperties",
  816. "Xutf8TextEscapement",
  817. "Xutf8TextExtents",
  818. "Xutf8TextListToTextProperty",
  819. "Xutf8TextPerCharExtents",
  820. "Xutf8TextPropertyToTextList",
  821. "XwcDrawImageString",
  822. "XwcDrawString",
  823. "XwcDrawText",
  824. "XwcFreeStringList",
  825. "XwcLookupString",
  826. "XwcResetIC",
  827. "XwcTextEscapement",
  828. "XwcTextExtents",
  829. "XwcTextListToTextProperty",
  830. "XwcTextPerCharExtents",
  831. "XwcTextPropertyToTextList",
  832. "_Utf8GetConvByName",
  833. "_XAllocID",
  834. "_XAllocIDs",
  835. "_XAllocScratch",
  836. "_XAllocTemp",
  837. "_XAsyncErrorHandler",
  838. "_XCloseLC",
  839. "_XColor_to_XcmsRGB",
  840. "_XConnectXCB",
  841. "_XCopyEventCookie",
  842. "_XCopyToArg",
  843. "_XData32",
  844. "_XDefaultError",
  845. "_XDefaultIOError",
  846. "_XDefaultOpenIM",
  847. "_XDefaultOpenOM",
  848. "_XDefaultWireError",
  849. "_XDeq",
  850. "_XDeqAsyncHandler",
  851. "_XEatData",
  852. "_XEatDataWords",
  853. "_XEnq",
  854. "_XError",
  855. "_XEventToWire",
  856. "_XEventsQueued",
  857. "_XF86BigfontFreeFontMetrics",
  858. "_XF86LoadQueryLocaleFont",
  859. "_XFetchEventCookie",
  860. "_XFlush",
  861. "_XFlushGCCache",
  862. "_XFreeAtomTable",
  863. "_XFreeDisplayStructure",
  864. "_XFreeEventCookies",
  865. "_XFreeExtData",
  866. "_XFreeTemp",
  867. "_XFreeX11XCBStructure",
  868. "_XGetAsyncData",
  869. "_XGetAsyncReply",
  870. "_XGetBitsPerPixel",
  871. "_XGetHostname",
  872. "_XGetLCValues",
  873. "_XGetRequest",
  874. "_XGetScanlinePad",
  875. "_XGetWindowAttributes",
  876. "_XIMCompileResourceList",
  877. "_XIOError",
  878. "_XInitIM",
  879. "_XInitImageFuncPtrs",
  880. "_XInitKeysymDB",
  881. "_XInitOM",
  882. "_XIsEventCookie",
  883. "_XKeyInitialize",
  884. "_XKeycodeToKeysym",
  885. "_XKeysymToKeycode",
  886. "_XKeysymToModifiers",
  887. "_XLookupKeysym",
  888. "_XLookupString",
  889. "_XNoticeCreateBitmap",
  890. "_XNoticePutBitmap",
  891. "_XOpenLC",
  892. "_XParseBaseFontNameList",
  893. "_XPollfdCacheAdd",
  894. "_XPollfdCacheDel",
  895. "_XPollfdCacheInit",
  896. "_XProcessInternalConnection",
  897. "_XProcessWindowAttributes",
  898. "_XPutBackEvent",
  899. "_XRead",
  900. "_XRead32",
  901. "_XReadEvents",
  902. "_XReadPad",
  903. "_XRefreshKeyboardMapping",
  904. "_XRegisterFilterByMask",
  905. "_XRegisterFilterByType",
  906. "_XRegisterInternalConnection",
  907. "_XReply",
  908. "_XReverse_Bytes",
  909. "_XScreenOfWindow",
  910. "_XSend",
  911. "_XSetClipRectangles",
  912. "_XSetImage",
  913. "_XSetLastRequestRead",
  914. "_XStoreEventCookie",
  915. "_XTextHeight",
  916. "_XTextHeight16",
  917. "_XTranslateKey",
  918. "_XTranslateKeySym",
  919. "_XTryShapeBitmapCursor",
  920. "_XUnknownCopyEventCookie",
  921. "_XUnknownNativeEvent",
  922. "_XUnknownWireEvent",
  923. "_XUnknownWireEventCookie",
  924. "_XUnregisterFilter",
  925. "_XUnregisterInternalConnection",
  926. "_XUnresolveColor",
  927. "_XUpdateAtomCache",
  928. "_XUpdateGCCache",
  929. "_XVIDtoVisual",
  930. "_XWireToEvent",
  931. "_XcmsAddCmapRec",
  932. "_XcmsArcTangent",
  933. "_XcmsCIELabQueryMaxLCRGB",
  934. "_XcmsCIELuvQueryMaxLCRGB",
  935. "_XcmsCIEXYZ_ValidSpec",
  936. "_XcmsCIEuvY_ValidSpec",
  937. "_XcmsConvertColorsWithWhitePt",
  938. "_XcmsCopyCmapRecAndFree",
  939. "_XcmsCopyISOLatin1Lowered",
  940. "_XcmsCopyPointerArray",
  941. "_XcmsCosine",
  942. "_XcmsCubeRoot",
  943. "_XcmsDDConvertColors",
  944. "_XcmsDIConvertColors",
  945. "_XcmsDeleteCmapRec",
  946. "_XcmsEqualWhitePts",
  947. "_XcmsFreeIntensityMaps",
  948. "_XcmsFreePointerArray",
  949. "_XcmsGetElement",
  950. "_XcmsGetIntensityMap",
  951. "_XcmsGetProperty",
  952. "_XcmsInitDefaultCCCs",
  953. "_XcmsInitScrnInfo",
  954. "_XcmsLRGB_InitScrnDefault",
  955. "_XcmsPushPointerArray",
  956. "_XcmsRGB_to_XColor",
  957. "_XcmsRegFormatOfPrefix",
  958. "_XcmsResolveColor",
  959. "_XcmsResolveColorString",
  960. "_XcmsSetGetColor",
  961. "_XcmsSetGetColors",
  962. "_XcmsSine",
  963. "_XcmsSquareRoot",
  964. "_XcmsTekHVCQueryMaxVCRGB",
  965. "_XcmsTekHVC_CheckModify",
  966. "_XcmsUnresolveColor",
  967. "_XimCbDispatch",
  968. "_XimCheckCreateICValues",
  969. "_XimCheckDataSize",
  970. "_XimCheckICMode",
  971. "_XimCheckIMMode",
  972. "_XimCheckIfLocalProcessing",
  973. "_XimCheckIfThaiProcessing",
  974. "_XimCheckLocalInputStyle",
  975. "_XimCommitCallback",
  976. "_XimConnect",
  977. "_XimDecodeICATTRIBUTE",
  978. "_XimDecodeIMATTRIBUTE",
  979. "_XimDecodeLocalICAttr",
  980. "_XimDecodeLocalIMAttr",
  981. "_XimDestroyIMStructureList",
  982. "_XimDispatchInit",
  983. "_XimEncodeICATTRIBUTE",
  984. "_XimEncodeIMATTRIBUTE",
  985. "_XimEncodeLocalICAttr",
  986. "_XimEncodeLocalIMAttr",
  987. "_XimError",
  988. "_XimErrorCallback",
  989. "_XimExtension",
  990. "_XimFilterWaitEvent",
  991. "_XimFlush",
  992. "_XimForwardEvent",
  993. "_XimForwardEventCallback",
  994. "_XimFreeCommitInfo",
  995. "_XimFreeProtoIntrCallback",
  996. "_XimFreeTransIntrCallback",
  997. "_XimGetAttributeID",
  998. "_XimGetCharCode",
  999. "_XimGetCurrentICValues",
  1000. "_XimGetCurrentIMValues",
  1001. "_XimGetICValueData",
  1002. "_XimGetIMValueData",
  1003. "_XimGetLocaleCode",
  1004. "_XimGetMyEndian",
  1005. "_XimGetResourceListRec",
  1006. "_XimGetResourceListRecByQuark",
  1007. "_XimGetWindowEventmask",
  1008. "_XimICOfXICID",
  1009. "_XimInitialResourceInfo",
  1010. "_XimLcctstombs",
  1011. "_XimLcctstoutf8",
  1012. "_XimLcctstowcs",
  1013. "_XimLocalCreateIC",
  1014. "_XimLocalFilter",
  1015. "_XimLocalGetICValues",
  1016. "_XimLocalGetIMValues",
  1017. "_XimLocalIMFree",
  1018. "_XimLocalMbLookupString",
  1019. "_XimLocalOpenIM",
  1020. "_XimLocalSetICValues",
  1021. "_XimLocalSetIMValues",
  1022. "_XimLocalUtf8LookupString",
  1023. "_XimLocalWcLookupString",
  1024. "_XimLookupMBText",
  1025. "_XimLookupUTF8Text",
  1026. "_XimLookupWCText",
  1027. "_XimMakeICAttrIDList",
  1028. "_XimMakeIMAttrIDList",
  1029. "_XimOpenIM",
  1030. "_XimParseStringFile",
  1031. "_XimProcError",
  1032. "_XimProcSyncReply",
  1033. "_XimProtoCreateIC",
  1034. "_XimProtoEventToWire",
  1035. "_XimProtoIMFree",
  1036. "_XimProtoMbLookupString",
  1037. "_XimProtoOpenIM",
  1038. "_XimProtoUtf8LookupString",
  1039. "_XimProtoWcLookupString",
  1040. "_XimProtoWireToEvent",
  1041. "_XimRead",
  1042. "_XimRegProtoIntrCallback",
  1043. "_XimRegisterDispatcher",
  1044. "_XimRegisterFilter",
  1045. "_XimRegisterIMInstantiateCallback",
  1046. "_XimRegisterServerFilter",
  1047. "_XimRegisterTriggerKeysCallback",
  1048. "_XimReregisterFilter",
  1049. "_XimResetIMInstantiateCallback",
  1050. "_XimRespSyncReply",
  1051. "_XimServerDestroy",
  1052. "_XimSetCurrentICValues",
  1053. "_XimSetCurrentIMValues",
  1054. "_XimSetEventMaskCallback",
  1055. "_XimSetHeader",
  1056. "_XimSetICDefaults",
  1057. "_XimSetICMode",
  1058. "_XimSetICResourceList",
  1059. "_XimSetICValueData",
  1060. "_XimSetIMMode",
  1061. "_XimSetIMResourceList",
  1062. "_XimSetIMValueData",
  1063. "_XimSetInnerICResourceList",
  1064. "_XimSetInnerIMResourceList",
  1065. "_XimSetLocalIMDefaults",
  1066. "_XimShutdown",
  1067. "_XimSync",
  1068. "_XimSyncCallback",
  1069. "_XimThaiCloseIM",
  1070. "_XimThaiCreateIC",
  1071. "_XimThaiFilter",
  1072. "_XimThaiIMFree",
  1073. "_XimThaiOpenIM",
  1074. "_XimTransCallDispatcher",
  1075. "_XimTransConf",
  1076. "_XimTransFilterWaitEvent",
  1077. "_XimTransFlush",
  1078. "_XimTransInternalConnection",
  1079. "_XimTransRead",
  1080. "_XimTransRegisterDispatcher",
  1081. "_XimTransWrite",
  1082. "_XimTriggerNotify",
  1083. "_XimUnRegisterIMInstantiateCallback",
  1084. "_XimUnregisterFilter",
  1085. "_XimUnregisterServerFilter",
  1086. "_XimWrite",
  1087. "_XimXConf",
  1088. "_XimXTransBytesReadable",
  1089. "_XimXTransClose",
  1090. "_XimXTransCloseForCloning",
  1091. "_XimXTransConnect",
  1092. "_XimXTransDisconnect",
  1093. "_XimXTransFreeConnInfo",
  1094. "_XimXTransGetConnectionNumber",
  1095. "_XimXTransGetHostname",
  1096. "_XimXTransGetPeerAddr",
  1097. "_XimXTransIsLocal",
  1098. "_XimXTransOpenCOTSClient",
  1099. "_XimXTransRead",
  1100. "_XimXTransReadv",
  1101. "_XimXTransSetOption",
  1102. "_XimXTransWrite",
  1103. "_XimXTransWritev",
  1104. "_Ximctstombs",
  1105. "_Ximctstoutf8",
  1106. "_Ximctstowcs",
  1107. "_XkbCopyFromReadBuffer",
  1108. "_XkbFreeReadBuffer",
  1109. "_XkbGetCharset",
  1110. "_XkbGetConverters",
  1111. "_XkbGetReadBufferCountedString",
  1112. "_XkbGetReadBufferPtr",
  1113. "_XkbInitReadBuffer",
  1114. "_XkbNoteCoreMapChanges",
  1115. "_XkbPeekAtReadBuffer",
  1116. "_XkbReadBufferCopy32",
  1117. "_XkbReadBufferCopyKeySyms",
  1118. "_XkbReadCopyData32",
  1119. "_XkbReadCopyKeySyms",
  1120. "_XkbReadGetCompatMapReply",
  1121. "_XkbReadGetGeometryReply",
  1122. "_XkbReadGetIndicatorMapReply",
  1123. "_XkbReadGetMapReply",
  1124. "_XkbReadGetNamesReply",
  1125. "_XkbReloadDpy",
  1126. "_XkbSkipReadBufferData",
  1127. "_XkbWriteCopyData32",
  1128. "_XkbWriteCopyKeySyms",
  1129. "_XlcAddCT",
  1130. "_XlcAddCharSet",
  1131. "_XlcAddGB18030LocaleConverters",
  1132. "_XlcAddLoader",
  1133. "_XlcAddUtf8Converters",
  1134. "_XlcAddUtf8LocaleConverters",
  1135. "_XlcCloseConverter",
  1136. "_XlcCompareISOLatin1",
  1137. "_XlcCompileResourceList",
  1138. "_XlcConvert",
  1139. "_XlcCopyFromArg",
  1140. "_XlcCopyToArg",
  1141. "_XlcCountVaList",
  1142. "_XlcCreateDefaultCharSet",
  1143. "_XlcCreateLC",
  1144. "_XlcCreateLocaleDataBase",
  1145. "_XlcCurrentLC",
  1146. "_XlcDbg_printValue",
  1147. "_XlcDeInitLoader",
  1148. "_XlcDefaultLoader",
  1149. "_XlcDefaultMapModifiers",
  1150. "_XlcDestroyLC",
  1151. "_XlcDestroyLocaleDataBase",
  1152. "_XlcFileName",
  1153. "_XlcGenericLoader",
  1154. "_XlcGetCSValues",
  1155. "_XlcGetCharSet",
  1156. "_XlcGetCharSetWithSide",
  1157. "_XlcGetLocaleDataBase",
  1158. "_XlcGetResource",
  1159. "_XlcGetValues",
  1160. "_XlcInitCTInfo",
  1161. "_XlcInitLoader",
  1162. "_XlcLocaleDirName",
  1163. "_XlcLocaleLibDirName",
  1164. "_XlcMapOSLocaleName",
  1165. "_XlcNCompareISOLatin1",
  1166. "_XlcOpenConverter",
  1167. "_XlcParseCharSet",
  1168. "_XlcParse_scopemaps",
  1169. "_XlcRemoveLoader",
  1170. "_XlcResetConverter",
  1171. "_XlcResolveI18NPath",
  1172. "_XlcResolveLocaleName",
  1173. "_XlcSetConverter",
  1174. "_XlcSetValues",
  1175. "_XlcUtf8Loader",
  1176. "_XlcVaToArgList",
  1177. "_XlcValidModSyntax",
  1178. "_Xlcmbstoutf8",
  1179. "_Xlcmbstowcs",
  1180. "_Xlcmbtowc",
  1181. "_Xlcwcstombs",
  1182. "_Xlcwctomb",
  1183. "_XmbDefaultDrawImageString",
  1184. "_XmbDefaultDrawString",
  1185. "_XmbDefaultTextEscapement",
  1186. "_XmbDefaultTextExtents",
  1187. "_XmbDefaultTextPerCharExtents",
  1188. "_XmbGenericDrawImageString",
  1189. "_XmbGenericDrawString",
  1190. "_XmbGenericTextEscapement",
  1191. "_XmbGenericTextExtents",
  1192. "_XmbGenericTextPerCharExtents",
  1193. "_XmbTextListToTextProperty",
  1194. "_XmbTextPropertyToTextList",
  1195. "_Xmblen",
  1196. "_Xmbstoutf8",
  1197. "_Xmbstowcs",
  1198. "_Xmbtowc",
  1199. "_XomConvert",
  1200. "_XomGenericDrawString",
  1201. "_XomGenericOpenOM",
  1202. "_XomGenericTextExtents",
  1203. "_XomGetFontDataFromFontSet",
  1204. "_XomInitConverter",
  1205. "_XrmDefaultInitParseInfo",
  1206. "_XrmInitParseInfo",
  1207. "_XrmInternalStringToQuark",
  1208. "_Xutf8DefaultDrawImageString",
  1209. "_Xutf8DefaultDrawString",
  1210. "_Xutf8DefaultTextEscapement",
  1211. "_Xutf8DefaultTextExtents",
  1212. "_Xutf8DefaultTextPerCharExtents",
  1213. "_Xutf8GenericDrawImageString",
  1214. "_Xutf8GenericDrawString",
  1215. "_Xutf8GenericTextEscapement",
  1216. "_Xutf8GenericTextExtents",
  1217. "_Xutf8GenericTextPerCharExtents",
  1218. "_Xutf8TextListToTextProperty",
  1219. "_Xutf8TextPropertyToTextList",
  1220. "_XwcDefaultDrawImageString",
  1221. "_XwcDefaultDrawString",
  1222. "_XwcDefaultTextEscapement",
  1223. "_XwcDefaultTextExtents",
  1224. "_XwcDefaultTextPerCharExtents",
  1225. "_XwcFreeStringList",
  1226. "_XwcGenericDrawImageString",
  1227. "_XwcGenericDrawString",
  1228. "_XwcGenericTextEscapement",
  1229. "_XwcGenericTextExtents",
  1230. "_XwcGenericTextPerCharExtents",
  1231. "_XwcTextListToTextProperty",
  1232. "_XwcTextPropertyToTextList",
  1233. "_Xwcscmp",
  1234. "_Xwcscpy",
  1235. "_Xwcslen",
  1236. "_Xwcsncmp",
  1237. "_Xwcsncpy",
  1238. "_Xwcstombs",
  1239. "_Xwctomb",
  1240. "read_EncodingInfo",
  1241. "xlocaledir",
  1242. 0
  1243. };
  1244. extern void *_libX11_so_tramp_table[];
  1245. // Can be sped up by manually parsing library symtab...
  1246. void _libX11_so_tramp_resolve(int i) {
  1247. assert((unsigned)i + 1 < sizeof(sym_names) / sizeof(sym_names[0]));
  1248. CHECK(!is_lib_loading, "library function '%s' called during library load", sym_names[i]);
  1249. void *h = 0;
  1250. #if NO_DLOPEN
  1251. // FIXME: instead of RTLD_NEXT we should search for loaded lib_handle
  1252. // as in https://github.com/jethrogb/ssltrace/blob/bf17c150a7/ssltrace.cpp#L74-L112
  1253. h = RTLD_NEXT;
  1254. #elif LAZY_LOAD
  1255. h = load_library();
  1256. #else
  1257. h = lib_handle;
  1258. CHECK(h, "failed to resolve symbol '%s', library failed to load", sym_names[i]);
  1259. #endif
  1260. // Dlsym is thread-safe so don't need to protect it.
  1261. _libX11_so_tramp_table[i] = dlsym(h, sym_names[i]);
  1262. CHECK(_libX11_so_tramp_table[i], "failed to resolve symbol '%s'", sym_names[i]);
  1263. }
  1264. // Helper for user to resolve all symbols
  1265. void _libX11_so_tramp_resolve_all(void) {
  1266. size_t i;
  1267. for(i = 0; i + 1 < sizeof(sym_names) / sizeof(sym_names[0]); ++i)
  1268. _libX11_so_tramp_resolve(i);
  1269. }
  1270. #ifdef __cplusplus
  1271. } // extern "C"
  1272. #endif