#!/usr/bin/env python import sys import StringIO # Note: According to 3-14 in SYSTEM V APPLICATION BINARY INTERFACE Fourth Edition, struct "return" values are stored in what the first argument points to. from g import defparser if sys.version.startswith("2.3."): import sets set = sets.Set def parseAux(name): # gcc -aux-info result = {} f = open(name, "r") if True: for line in f.readlines(): if line.startswith("/*") and not line.startswith("/* compiled from: "): i = line.find("*/") assert(i != -1) line = line[i + 2 : ].lstrip() beforebrace = line.split("(")[0].strip() name = beforebrace.split(" ")[-1] while name.startswith("*"): name = name[1:] line = line.replace("extern ", "") if line.startswith("static "): # private continue result[name] = line return(result) mapping = { "va_list": "P", # I will regret this. "__va_list_tag *": "P", # and this. It's probably a reference. "void": "v", "BYTE": "i", # FIXME "CHAR": "i", # FIXME "char": "i", # FIXME "uchar": "u4", # FIXME "unsigned char": "u4", # FIXME "byte": "uchar", "WCHAR": "i", # FIXME "UINT_PTR": "i", # FIXME "WPARAM": "i", # FIXME "SIZE_T": "l", # FIXME "LCID": "i", # FIXME "CALID": "i", # FIXME "COLORREF": "i", "WORD": "u2", "INT": "i", "int": "i", "intptr_t": "p", # FIXME "SHORT": "i2", "DWORD": "i", "UINT": "i", "BOOL": "i", "HWND": "p", "HDC": "p", "HINSTANCE": "p", "HANDLE": "p", "HMENU": "p", "HDESK": "p", "HBITMAP": "p", "HICON": "p", "HRGN": "p", "HCURSOR": "p", "HBRUSH": "p", "HMONITOR": "p", "HCONV": "p", "HCONVLIST": "p", "HACCEL": "p", "HKL": "p", # keyboard layout "HFILE": "p", # FIXME "LONG": "l", "PICONINFO": "p", "PCURSORINFO": "p", "LRESULT": "l", # FIXME "LPCSTR": "s", "LPWSTR": "p", "LPCWSTR": "p", "LPSTR": "p", "ULONG_PTR": "P", "PVOID": "p", "PBYTE": "p", "PBOOL": "p", "PDWORD": "p", "PWINDOWINFO": "p", "long int": "l", "WNDPROC": "p", "DLGPROC": "p", "GRAYSTRINGPROC": "p", "TIMERPROC": "p", "HOOKPROC": "p", "PUINT_PTR": "p", "ATOM": "i2", "HMODULE": "p", "ABORTPROC": "p", "ENHMFENUMPROC": "p", "FLOAT": "f", "FONTENUMPROCA": "p", "FONTENUMPROCW": "p", "GOBJENUMPROC": "p", "HCOLORSPACE": "p", "HENHMETAFILE": "p", "HFONT": "p", "HGDIOBJ": "p", "HGLOBAL": "p", "HMETAFILE": "p", "HPALETTE": "p", "HPEN": "p", "ICMENUMPROCA": "p", "ICMENUMPROCW": "p", "LINEDDAPROC": "p", "MFENUMPROC": "p", "PCVOID": "p", "PFLOAT": "p", "PLOGFONTA": "p", "PLOGFONTW": "p", "PHANDLE": "p", "CALID": "i", "CALTYPE": "i", "HLOCAL": "p", "ENUMRESLANGPROC": "p", "ENUMRESNAMEPROC": "p", "ENUMRESTYPEPROC": "p", "LONG_PTR": "l", "ULONG_PTR": "l", "LPCRITICAL_SECTION": "p", "DATEFMT_ENUMPROC": "p", "PULARGE_INTEGER": "p", "ULARGE_INTEGER": "Q", "GEOID": "i", # FIXME "GEOTYPE": "i", # FIXME "LANGID": "i2", "CODEPAGE_ENUMPROC": "p", "GEO_ENUMPROC": "p", "GEOCLASS": "i", # FIXME "CALINFO_ENUMPROC": "p", "LCTYPE": "i", # FIXME "GET_FILEEX_INFO_LEVELS": "i", # enum "FINDEX_INFO_LEVELS": "i", # enum "FINDEX_SEARCH_OPS": "i", # enum "LPOVERLAPPED": "p", "HRSRC": "p", "PULONG": "p", "PULONG_PTR": "p", "HSZ": "p", "PTITLEBARINFO": "p", "PSCROLLBARINFO": "p", "PLASTINPUTINFO": "p", "PCOMBOBOXINFO": "p", "PCONVINFO": "p", "PALTTABINFO": "p", "LPTSTR": "p", # FIXME "DEVMODE *": "p", # must be NULL "PLONG": "l", "PSMALL_RECT": "p", "HHOOK": "p", # generic: "enum": "i", "flags": "i", "callback": "p", "callbacki": "p", # immediate, without pointer "time_t": "i", "double": "d", "uint64": "Q", "uint32": "u4", "uint32_t": "uint32", "int32": "i4", "uint16": "u2", "int16": "i2", "int64": "q", "long long unsigned int": "Q", "long long int": "q", "unsigned int": "i", "uint": "unsigned int", "long unsigned int": "l", "const long unsigned int": "long unsigned int", "goffset": "__off_t", # FIXME "uint8": "byte", "int8": "byte", "float": "f", "short": "int16", "short int": "int16", # ATK "AtkRole": "enum", "AtkLayer": "enum", "AtkRelationType": "enum", "AtkStateType": "enum", "AtkTextAttribute": "enum", "AtkTextBoundary": "enum", "AtkKeyEventType": "enum", "AtkCoordType": "enum", "AtkTextClipType": "enum", "AtkHyperlinkStateFlags": "flags", "AtkEventListener": "callback", "AtkTextRange **": "p", "AtkEventListenerInit": "callback", "AtkState": "uint64", "AtkKeySnoopFunc": "callback", "AtkObject **": "p", "AtkFocusHandler": "p", # GTK "gint": "i", "gint16": "int16", "const gint": "i", "guint": "i", "gpointer": "p", "gboolean": "i", "gchar": "i", # FIXME "i4": "i", "u4": "i", "i2": "i", # actually h "u2": "i", # actually h "guint32": "uint32", "gint32": "i4", "GQuark": "guint32", "GType": "gsize", "gsize": "size_t", "gssize": "size_t", "gdouble": "d", "GtkToolPaletteDragTargets": "flags", "gchar **": "p", "GDestroyNotify": "callback", "GtkTranslateFunc": "callback", "GtkTreePath **": "p", "AppIndicatorCategory": "enum", "AppIndicatorStatus": "enum", "GdkCursorType": "enum", "GdkDragProtocol": "enum", "GdkFilterReturn": "enum", "GdkEventType": "enum", "GdkVisibilityState": "enum", "GdkScrollDirection": "enum", "GdkNotifyType": "enum", "GdkCrossingMode": "enum", "GdkPropertyState": "enum", "GdkSettingAction": "enum", "GdkFontType": "enum", "GdkCapStyle": "enum", "GdkFill": "enum", "GdkFunction": "enum", "GdkJoinStyle": "enum", "GdkLineStyle": "enum", "GdkSubwindowMode": "enum", "GdkImageType": "enum", "GdkExtensionMode": "enum", "GdkInputSource": "enum", "GdkInputMode": "enum", "GdkAxisUse": "enum", "GdkPropMode": "enum", "GdkFillRule": "enum", "GdkOverlapType": "enum", "GdkRgbDither": "enum", "GdkByteOrder": "enum", "GdkStatus": "enum", "GdkGrabStatus": "enum", "GdkVisualType": "enum", "GdkWindowClass": "enum", "GdkWindowType": "enum", "GdkWindowTypeHint": "enum", "GdkGravity": "enum", "GdkWindowEdge": "enum", "GdkPixbufAlphaMode": "enum", "GdkColorspace": "enum", "GdkPixbufError": "enum", "GdkPixbufRotation": "enum", "GdkInterpType": "enum", "GdkOwnerChange": "enum", "GdkDeviceType": "enum", "GdkWindowChildFunc": "callback", "GdkGrabOwnership": "enum", "GtkCellAllocCallback": "callback", "GtkAssistantPageType": "enum", "GtkCellRendererAccelMode": "enum", "GtkPageOrientation": "enum", "GtkPageSet": "enum", "GtkPrintDuplex": "enum", "GtkPrintError": "enum", "GtkPrintOperationAction": "enum", "GtkPrintOperationResult": "enum", "GtkPrintPages": "enum", "GtkPrintQuality": "enum", "GtkPrintStatus": "enum", "GtkRecentChooserError": "enum", "GtkRecentManagerError": "enum", "GtkRecentSortType": "enum", "GtkSensitivityType": "enum", "GtkTextBufferTargetInfo": "enum", "GtkTreeViewGridLines": "enum", "GtkUnit": "enum", "GtkBuilderError": "enum", "GtkNumberUpLayout": "enum", "GtkEntryIconPosition": "enum", "GtkAnchorType": "enum", "GtkArrowType": "enum", "GtkButtonBoxStyle": "enum", "GtkButtonsType": "enum", "GtkCellRendererMode": "enum", "GtkCellType": "enum", "GtkCListDragPos": "enum", "GtkCornerType": "enum", "GtkCTreeExpanderStyle": "enum", "GtkCTreeExpansionType": "enum", "GtkCTreeLineStyle": "enum", "GtkCTreePos": "enum", "GtkCurveType": "enum", "GtkDeleteType": "enum", "GtkDirectionType": "enum", "GtkExpanderStyle": "enum", "GtkFileChooserAction": "enum", "GtkFileChooserConfirmation": "enum", "GtkFileChooserError": "enum", "GtkIconSize": "enum", "GtkIconThemeError": "enum", "GtkIconViewDropPosition": "enum", "GtkImageType": "enum", "GtkIMPreeditStyle": "enum", "GtkIMStatusStyle": "enum", "GtkPackDirection": "enum", "GtkJustification": "enum", "GtkMatchType": "enum", "GtkMenuDirectionType": "enum", "GtkMessageType": "enum", "GtkMetricType": "enum", "GtkMovementStep": "enum", "GtkNotebookTab": "enum", "GtkOrientation": "enum", "GtkPackType": "enum", "GtkPathPriorityType": "enum", "GtkPathType": "enum", "GtkPolicyType": "enum", "GtkPositionType": "enum", "GtkPreviewType": "enum", "GtkProgressBarOrientation": "enum", "GtkProgressBarStyle": "enum", "GtkRcTokenType": "enum", "GtkReliefStyle": "enum", "GtkResizeMode": "enum", "GtkResponseType": "enum", "GtkScrollStep": "enum", "GtkScrollType": "enum", "GtkSelectionMode": "enum", "GtkShadowType": "enum", "GtkSideType": "enum", "GtkSignalRunType": "enum", "GtkSizeGroupMode": "enum", "GtkSortType": "enum", "GtkSpinButtonUpdatePolicy": "enum", "GtkSpinType": "enum", "GtkStateType": "enum", "GtkStateFlags": "flags", "GtkRegionFlags": "flags", "GtkStylePropertyParser": "callback", "GtkCssSectionType": "enum", "GtkScrollablePolicy": "enum", "GtkSizeRequestMode": "enum", "GtkCellCallback": "callback", "GtkJunctionSides": "flags", "GtkFontFilterFunc": "callback", "GtkAlign": "enum", "GtkLicense": "enum", "GtkSubmenuDirection": "enum", "GtkSubmenuPlacement": "enum", "GtkTextDirection": "enum", "GtkTextWindowType": "enum", "GtkToolbarChildType": "enum", "GtkToolbarSpaceStyle": "enum", "GtkToolbarStyle": "enum", "GtkTreeViewColumnSizing": "enum", "GtkTreeViewDropPosition": "enum", "GtkTreeViewMode": "enum", "GtkUpdateType": "enum", "GtkVisibility": "enum", "GtkWidgetHelpType": "enum", "GtkWindowPosition": "enum", "GtkWindowType": "enum", "GtkWrapMode": "enum", "GtkFileSystemError": "enum", "GtkSourceSmartHomeEndType": "enum", "GtkSourceCompletionError": "enum", "IndicateInterests": "enum", "PangoAlignment": "enum", "PangoAttrType": "enum", "PangoCoverageLevel": "enum", "PangoDirection": "enum", "PangoEllipsizeMode": "enum", "PangoGravity": "enum", "PangoGravityHint": "enum", "PangoRenderPart": "enum", "PangoScript": "enum", "PangoStretch": "enum", "PangoStyle": "enum", "PangoTabAlign": "enum", "PangoUnderline": "enum", "PangoVariant": "enum", "PangoWeight": "enum", "PangoWrapMode": "enum", "NotifyUrgency": "enum", "GtkTreeModelForeachFunc": "callback", "GdkDragAction": "flags", "GdkEventMask": "flags", "GdkWindowState": "flags", "GdkGCValuesMask": "flags", "GdkModifierType": "flags", "GdkInputCondition": "flags", "GdkWindowAttributesType": "flags", "GdkWindowHints": "flags", "GdkWMDecoration": "flags", "GdkWMFunction": "flags", "GtkRecentFilterFlags": "flags", "GtkToolPaletteDragTargets": "flags", "GtkAccelFlags": "flags", "GtkArgFlags": "flags", "GtkAttachOptions": "flags", "GtkButtonAction": "flags", "GtkCalendarDisplayOptions": "flags", "GtkCellRendererState": "flags", "GtkDebugFlag": "flags", "GtkDestDefaults": "flags", "GtkDialogFlags": "flags", "GtkFileFilterFlags": "flags", "GtkIconLookupFlags": "flags", "GtkObjectFlags": "flags", "GtkPrivateFlags": "flags", "GtkRcFlags": "flags", "GtkTargetFlags": "flags", "GtkTextSearchFlags": "flags", "GtkTreeModelFlags": "flags", "GtkUIManagerItemType": "flags", "GtkWidgetFlags": "flags", "GtkFileInfoType": "flags", "GtkSourceSearchFlags": "flags", "GtkSourceDrawSpacesFlags": "flags", "GtkSourceCompletionActivation": "flags", "GtkPrintCapabilities": "flags", "PangoFontMask": "flags", "GtkAssistantPageFunc": "callback", "guint16": "uint16", "guint **": "p", "GError **": "p", "GtkTreeCellDataFunc": "callback", "GtkRecentSortFunc": "callback", "gfloat": "float", "GtkTreeModelFilterModifyFunc": "callback", "GtkTreeViewRowSeparatorFunc": "callback", "GtkClipboardURIReceivedFunc": "callback", "GdkAtom": "p", "glong": "l", "gulong": "l", "GIcon **": "p", "GtkTextCharPredicate": "callback", "GdkNativeWindow": "l", # FIXME "GtkClipboardTextReceivedFunc": "callback", "const gchar **": "p", "GtkAccelMapForeach": "callback", "GtkCellRenderer **": "p", "GtkCalendarDetailFunc": "callback", "GtkTreeSelectionForeachFunc": "callback", "GtkTreeViewSearchEqualFunc": "callback", "GdkColor **": "p", "GtkClipboardImageReceivedFunc": "callback", "GdkPoint **": "p", "gunichar": "guint32", "GtkEntryCompletionMatchFunc": "callback", "GtkPageSetupDoneFunc": "callback", "GtkCallback": "callback", "GtkColorSelectionChangePaletteWithScreenFunc": "callback", "GtkTreeModel **": "p", "GtkTextTagTableForeach": "callback", "GtkTreeSelectionFunc": "callback", "GtkTextBufferDeserializeFunc": "callback", "GtkClipboardReceivedFunc": "callback", "GCallback": "callback", "GList **": "p", "GCompareFunc": "callback", "GdkEventFunc": "callback", "GdkFilterFunc": "callback", "GladeXMLConnectFunc": "callback", "GtkAboutDialogActivateLinkFunc": "callback", "GtkBuilderConnectFunc": "callback", "GtkCalendarDetailFunc": "callback", "GtkCellLayoutDataFunc": "callback", "GtkColorSelectionChangePaletteFunc": "callback", "GtkColorSelectionChangePaletteWithScreenFunc": "callback", "GtkCTreeFunc": "callback", "GtkCTreeGNodeFunc": "callback", "GtkEntryCompletionMatchFunc": "callback", "GtkFileFilterFunc": "callback", "GtkIconViewForeachFunc": "callback", "GtkLinkButtonUriFunc": "callback", "GtkMenuPositionFunc": "callback", "GtkNotebookWindowCreationFunc": "callback", "GtkPrinterFunc": "callback", "GtkPrintSettingsFunc": "callback", "GtkRecentFilterFunc": "callback", "GtkSignalFunc": "callback", "GtkSourceGutterDataFunc": "callback", "GtkSourceGutterSizeFunc": "callback", "GtkSourceViewMarkTooltipFunc": "callback", "GtkTranslateFunc": "callback", "GtkTreeCellDataFunc": "callback", "GtkTreeDestroyCountFunc": "callback", "GtkTreeIterCompareFunc": "callback", "GtkTreeModelFilterModifyFunc": "callback", "GtkTreeModelFilterVisibleFunc": "callback", "GtkTreeModelForeachFunc": "callback", "GtkTreeSelectionForeachFunc": "callback", "GtkTreeSelectionFunc": "callback", "GtkTreeViewColumnDropFunc": "callback", "GtkTreeViewMappingFunc": "callback", "GtkTreeViewRowSeparatorFunc": "callback", "GtkTreeViewSearchPositionFunc": "callback", "PangoAttrFilterFunc": "callback", "PangoFontsetForeachFunc": "callback", "GtkTextBufferSerializeFunc": "callback", "char ***": "p", "const unsigned char **": "p", "GtkIconSize **": "p", "GtkClipboardGetFunc": "callback", "GtkClipboardClearFunc": "callback", "GtkRcPropertyParser": "callback", "GtkIconSet **": "p", "GdkAtom **": "p", "PangoAttrList **": "p", "GtkTreeViewColumn **": "p", "GtkClipboardRichTextReceivedFunc": "callback", "GtkWidget **": "p", "GdkScreen **": "p", "GtkKeySnoopFunc": "callback", "GtkClipboardTargetsReceivedFunc": "callback", "GtkMenuDetachFunc": "callback", "gchar ***": "p", "guint64": "uint64", "gint64": "int64", "GtkAccelGroupFindFunc": "callback", "GdkKeymapKey **": "p", "GdkWindow **": "p", "GdkVisualType **": "p", "GdkTimeCoord **": "p", "GdkTimeCoord ***": "p", "GdkBitmap **": "p", "GdkPixmap **": "p", "GtkTooltips **": "p", "GtkType": "GType", "GtkCallbackMarshal": "callback", "GtkFunction": "callback", "GdkImage **": "p", "GdkInputFunction": "callback", "GtkCTreeCompareDragFunc": "callback", "GtkCListCompareFunc": "callback", "GdkWChar": "uint32", "GdkRectangle **": "p", "GdkSpanFunc": "callback", "GdkDrawable **": "p", "GtkSignalMarshaller": "callback", "GtkTreeCellDataHint": "enum", # Maemo "GtkWidgetTapAndHoldFlags": "flags", # Maemo "HildonGtkInputMode": "enum", # Maemo "HildonMode": "enum", # Maemo "HildonSizeType": "enum", # Maemo "GtkInvalidInputType": "enum", # Maemo "HildonIconViewRowHeaderFunc": "callback", # Maemo "HildonUIMode": "enum", # Maemo "HildonTreeViewRowHeaderFunc": "callback", # Maemo "GtkApplicationInhibitFlags": "flags", "GdkModifierIntent": "enum", # Cairo "cairo_pattern_t **": "P", "cairo_format_t": "enum", "cairo_fill_rule_t": "enum", "cairo_bool_t": "i", "cairo_status_t": "i", # FIXME "cairo_surface_t **": "p", "cairo_write_func_t": "callback", "cairo_line_join_t": "enum", "cairo_antialias_t": "enum", "cairo_hint_metrics_t": "enum", "cairo_text_cluster_t **": "p", "cairo_glyph_t **": "p", "cairo_text_cluster_flags_t": "flags", "cairo_font_type_t": "enum", "cairo_hint_style_t": "enum", "cairo_destroy_func_t": "callback", "cairo_user_scaled_font_unicode_to_glyph_func_t": "callback", "cairo_user_scaled_font_text_to_glyphs_func_t": "callback", "cairo_user_scaled_font_init_func_t": "callback", "cairo_filter_t": "enum", "cairo_pattern_type_t": "enum", "cairo_content_t": "flags", "cairo_surface_type_t": "enum", "cairo_subpixel_order_t": "enum", "cairo_extend_t": "enum", "cairo_font_slant_t": "enum", "cairo_font_weight_t": "enum", "cairo_line_cap_t": "enum", "cairo_region_overlap_t": "enum", "cairo_operator_t": "enum", "cairo_user_scaled_font_render_glyph_func_t": "callback", "cairo_device_type_t": "enum", "cairo_read_func_t": "callback", "cairo_pdf_version_t": "enum", "cairo_svg_version_t": "enum", # Pango "PangoAlignment": "enum", "PangoAttrType": "enum", "PangoCoverageLevel": "enum", "PangoDirection": "enum", "PangoEllipsizeMode": "enum", "PangoGravity": "enum", "PangoGravityHint": "enum", "PangoRenderPart": "enum", "PangoScript": "enum", "PangoStretch": "enum", "PangoStyle": "enum", "PangoTabAlign": "enum", "PangoUnderline": "enum", "PangoVariant": "enum", "PangoWeight": "enum", "PangoWrapMode": "enum", "PangoFontMask": "flags", "PangoBidiType": "enum", "PangoLogAttr **": "p", "PangoFontDescription **": "p", "PangoFontFamily ***": "p", "int **": "p", "const char **": "p", "PangoGlyph": "guint32", "guchar **": "p", "gint **": "p", "PangoTabAlign **": "p", "char **": "p", "GSList **": "p", "PangoLanguage **": "p", "PangoFontFace ***": "p", "PangoAttrDataCopyFunc": "callback", # GStreamer "GstFormat": "enum", "GstMessageType": "enum", "GstDebugLevel": "enum", "GstDateTime **": "p", "GstElement **": "p", "GstTagMergeMode": "enum", "GstClock **": "p", "GstPadGetCapsFunction": "callback", "GstTaskPoolFunction": "callback", "GstClockTime": "guint64", "GstBuffer **": "p", "GstMiniObject **": "p", "GstValueUnionFunc": "callback", "GstPadQueryTypeFunction": "callback", "GstClockCallback": "callback", "GstClockID": "p", "GstClockReturn": "enum", "GstPadLinkCheck": "enum", "GstBusSyncReply": "enum", "GDate **": "p", "GstStateChange": "enum", "GstStateChangeReturn": "enum", "GstPadActivateModeFunction": "callback", "GstPadLinkFunction": "callback", "GstPadIterIntLinkFunction": "callback", "GstIteratorFoldFunction": "callback", "GstIteratorResult": "enum", "GstPadCheckGetRangeFunction": "callback", "GstLogFunction": "callback", "GstIndexCertainty": "enum", "GstPluginDependencyFlags": "flags", "GstFlowReturn": "i", "GstBusSyncHandler": "callback", "GstStructureMapFunc": "callback", "GstBufferCopyFlags": "flags", "GstValueSubtractFunc": "callback", "GstDebugGraphDetails": "flags", "GstTagList **": "p", "GstPadDirection": "enum", "GstPluginInitFullFunc": "callback", "GstEventType": "i", # it's complicated. "GstBusFunc": "callback", "GstIndexFilter": "callback", "GstState": "enum", "GstPadQueryFunction": "callback", "GstIndexResolver": "callback", "GstQueryType": "enum", "GstBufferingMode": "enum", "GstPadBlockCallback": "callback", "GstPadChainFunction": "callback", "GstPadEventFunction": "callback", "GstAllocTraceFlags": "callback", "GstObject **": "p", "GstPadDispatcherFunction": "callback", "GstTaskState": "enum", "GstTagMergeFunc": "callback", "GstTagFlag": "enum", "GstPadIntLinkFunction": "callback", "GstTypeFindFunction": "callback", "GstPadLinkReturn": "enum", "GstCaps **": "p", "GstPadSetCapsFunction": "callback", "GstSearchMode": "enum", "GstPadAcceptCapsFunction": "callback", "GstPadGetRangeFunction": "callback", "GstPad **": "p", "GstPadFixateCapsFunction": "callback", "GstPadBufferAllocFunction": "callback", "GstPadChainListFunction": "callback", "GstPluginInitFunc": "callback", "GstPadUnlinkFunction": "callback", "GstValueIntersectFunc": "callback", "const GstURIType": "enum", "GstTaskFunction": "callback", "GstSeekFlags": "flags", "GstSeekType": "enum", "GstBufferListFunc": "callback", "GstStructureForeachFunc": "callback", "GstElementFactoryListType": "callback", "GstPadActivateFunction": "callback", "GstEventTypeFlags": "flags", "GstDebugFuncPtr": "callback", "GstMessage **": "p", "GstTagForeachFunc": "callback", "GstStructureChangeType": "enum", "GstAssocFlags": "flags", "GstParseFlags": "flags", "GstCopyFunction": "callback", "GstCapsIntersectMode": "enum", "GstPluginFeatureFilter": "callback", "GstIndexLookupMethod": "enum", "GstRank": "i", "GstQOSType": "enum", "GstClockTimeDiff": "gint64", "GstIteratorItemFunction": "callback", "GstIteratorDisposeFunction": "callback", "GstProgressType": "enum", "GstPluginFilter": "callback", "GstStreamStatusType": "enum", "GstBufferListDoFunction": "callback", "GstIteratorNextFunction": "callback", "GstIteratorResyncFunction": "callback", "GstIteratorFreeFunction": "callback", "GstPadPresence": "enum", # GIO "GApplicationFlags": "flags", "GSocketFamily": "enum", "GFileMonitorFlags": "flags", "GDBusCapabilityFlags": "flags", "GFileQueryInfoFlags": "flags", "GDBusCallFlags": "flags", "GFileReadMoreCallback": "callback", "GDBusMessageType": "enum", "GFileAttributeStatus": "enum", "GFileInfo **": "p", "GFileCreateFlags": "flags", "GSocketAddress **": "p", "GEmblemOrigin": "enum", "GDBusServerFlags": "flags", "GDataStreamNewlineType": "enum", "GDBusProxyFlags": "flags", "GTlsRehandshakeMode": "enum", "GSettingsGetMapping": "callback", "GCredentialsType": "enum", "GOutputStreamSpliceFlags": "flags", "GSocketProtocol": "enum", "GSocketType": "enum", "GDataStreamByteOrder": "enum", "GMountUnmountFlags": "flags", "GBusType": "enum", "GBusNameOwnerFlags": "enum", "GBusAcquiredCallback": "callback", "GBusNameAcquiredCallback": "callback", "GBusNameLostCallback": "callback", "GDBusMessageFlags": "flags", "GDBusMessageFilterFunction": "callback", "GSocketControlMessage ***": "p", "GTlsPasswordFlags": "flags", "GBusNameWatcherFlags": "callback", "GBusNameAppearedCallback": "callback", "GBusNameVanishedCallback": "callback", "GTlsInteractionResult": "enum", "GFileMonitorEvent": "enum", "GTlsCertificateFlags": "flags", "GConverterResult": "enum", "GConverterFlags": "flags", "GIOErrorEnum": "enum", "GTlsDatabaseVerifyFlags": "flags", "GDBusSendMessageFlags": "flags", "GDBusConnectionFlags": "flags", "GSettingsBindFlags": "flags", "GSettingsBindGetMapping": "callback", "GSettingsBindSetMapping": "callback", "GObject **": "p", "GPasswordSave": "enum", "GDBusInterfaceSkeletonFlags": "flags", "GMountMountFlags": "enum", "GSimpleAsyncThreadFunc": "callback", "GTlsDatabaseLookupFlags": "flags", "GFileAttributeType": "enum", "GFileAttributeInfoFlags": "flags", "GDBusMessageHeaderField": "enum", "GFileType": "enum", "GDriveStartFlags": "flags", "GUnixFDList **": "p", "GDBusMessageByteOrder": "enum", "GDBusSignalFlags": "flags", "GDBusSignalCallback": "callback", "GDBusSubtreeFlags": "flags", "GIOStreamSpliceFlags": "flags", "GAppInfoCreateFlags": "flags", "GDBusObjectManagerClientFlags": "flags", "GDBusProxyTypeFunc": "callback", "GDriveStartStopType": "enum", "GZlibCompressorFormat": "enum", "GFileCopyFlags": "flags", "GMountOperationResult": "enum", "GSocketControlMessage **": "p", "GIOSchedulerJobFunc": "callback", "GReallocFunc": "callback", "GIOModuleScopeFlags": "flags", "GFileProgressCallback": "callback", "GDBusAnnotationInfo **": "p", "GFile **": "p", # GLib "GFreeFunc": "callback", "GTypeFlags": "flags", "GCompareDataFunc": "callback", "GThreadPriority": "enum", # deprecated "GFunc": "callback", "GParamSpec **": "p", "GIOError": "enum", "GIOCondition": "enum", "GData **": "p", "GTranslateFunc": "callback", "GHFunc": "callback", "GUnicodeType": "i", # FIXME "GTraverseFlags": "flags", "GNodeForeachFunc": "callback", "GUnicodeScript": "enum", "GDateMonth": "enum", "GPrintFunc": "callback", "GSourceFunc": "callback", "GSpawnFlags": "flags", "GSpawnChildSetupFunc": "callback", "GPid": "__pid_t", # FIXME "GIOStatus": "enum", "GTraverseFunc": "callback", "GTraverseType": "enum", "GRegexCompileFlags": "flags", "GLogLevelFlags": "flags", "GLogFunc": "callback", "GHookCheckMarshaller": "callback", "GRegexMatchFlags": "flags", "GKeyFileFlags": "flags", "guint8": "uint8", "gint8": "int8", "GDateDay": "guint8", "GPollFunc": "callback", "GTimeType": "enum", "GTestFixtureFunc": "callback", "GSliceConfig": "enum", "GIOFunc": "callback", "const gchar ***": "p", "GIOChannelError": "enum", "GTokenType": "enum", "guchar": "uchar", "const gchar *const *": "p", "GIConv": "iconv_t", #"static gpointer": "p", "GHRFunc": "callback", "GSequenceIterCompareFunc": "callback", "GDateWeekday": "enum", "GUnicodeBreakType": "enum", "GHookMarshaller": "callback", "GIOFlags": "flags", "GHashFunc": "callback", "GEqualFunc": "callback", "GMatchInfo **": "p", "GTestLogFatalFunc": "callback", "GOptionParseFunc": "callback", "GDateYear": "i2", "GVoidFunc": "callback", "GDataForeachFunc": "callback", "GTestTrapFlags": "flags", "GHookCompareFunc": "callback", "GTimeSpan": "gint64", "GCompletionStrncmpFunc": "callback", "GSeekType": "enum", "GTestDataFunc": "callback", "GChecksumType": "enum", "GFileTest": "flags", "GVariantClass": "enum", #"GTokenValue": "", "GNodeTraverseFunc": "callback", "GTestFunc": "callback", "const int": "i", "long double": "g", "GChildWatchFunc": "callback", "GTime": "gint32", "GFileError": "enum", "GThreadFunc": "callback", "GOptionErrorFunc": "callback", "GFormatSizeFlags": "flags", "GVariant *const *": "p", "GTestLogType": "enum", "GCopyFunc": "callback", "GRegexEvalCallback": "callback", "GCacheNewFunc": "callback", "GCacheDestroyFunc": "callback", "GCacheDupFunc": "callback", "const GVariantType *const *": "p", "GMarkupParseFlags": "flags", "GHookFindFunc": "callback", "GMutex **": "p", "GUserDirectory": "enum", "GNormalizeMode": "enum", "GCompletionFunc": "enum", "gushort": "u2", "gshort": "short", "GMainLoop **": "p", "GArray **": "p", "GValueArray **": "p", "GPtrArray **": "p", "GHashTable **": "p", "GValue **": "p", "GStrv": "p", "const GHashTable **": "p", "GVariant **": "p", # WTF "GMenuModel **": "P", # GIO "GFileIOStream **": "P", "const GVariantType **": "P", # GObject "GResourceLookupFlags": "flags", "GVaClosureMarshal": "callback", "GSignalCVaMarshaller": "GVaClosureMarshal", "GBindingTransformFunc": "callback", "GSignalMatchType": "flags", "GParamFlags": "flags", "GClosureNotify": "callback", "GTypeDebugFlags": "flags", "GBindingFlags": "flags", "GClosureMarshal": "callback", "GWeakNotify": "callback", "volatile GObject **": "p", "GTypeInterfaceCheckFunc": "callback", "GConnectFlags": "flags", "GSignalEmissionHook": "callback", "GTypeClassCacheFunc": "callback", "GBoxedCopyFunc": "callback", "GBoxedFreeFunc": "callback", "GSignalFlags": "flags", "GSignalAccumulator": "callback", "GSignalCMarshaller": "GClosureMarshal", "GToggleNotify": "callback", "GValueTransform": "callback", "GBaseInitFunc": "callback", "GBaseFinalizeFunc": "callback", "GClassInitFunc": "callback", "GClassFinalizeFunc": "callback", "gconstpointer": "p", "GInstanceInitFunc": "callback", # libxml2 "xmlNodePtr": "p", "xmlDocPtr": "p", "docbDocPtr": "p", "docbSAXHandlerPtr": "p", "xmlSAXHandlerPtr": "p", "docbParserCtxtPtr": "p", # libc "__uid_t": "i", # FIXME "__gid_t": "i", # FIXME "pid_t": "__pid_t", "__pid_t": "i", # FIXME "clock_t": "l", # FIXME "__mode_t": "i", # FIXME "__locale_t": "i", # FIXME "__useconds_t": "i", # FIXME "char *const *": "p", "size_t": "l", "ssize_t": "l", "__off_t": "Q", # FIXME "iconv_t": "i", # GDKPixbuf "GdkPixbufSaveFunc": "callback", "GAsyncReadyCallback": "callback", "GdkPixbufDestroyNotify": "callback", # DBus "dbus_bool_t": "uint32", "dbus_int32_t": "int32", "dbus_uint32_t": "uint32", "DBusFreeFunction": "callback", "DBusDispatchStatusFunction": "callback", "DBusAddTimeoutFunction": "callback", "DBusRemoveTimeoutFunction": "callback", "DBusTimeoutToggledFunction": "callback", "DBusPendingCall **": "p", "DBusAddressEntry **": "p", "DBusHandleMessageFunction": "callback", "DBusDispatchStatus": "enum", "DBusAddressEntry ***": "p", "DBusAddWatchFunction": "callback", "DBusRemoveWatchFunction": "callback", "DBusWatchToggledFunction": "callback", "DBusWakeupMainFunction": "callback", "DBusAllowWindowsUserFunction": "callback", "DBusAllowUnixUserFunction": "callback", "DBusNewConnectionFunction": "callback", "DBusPendingCallNotifyFunction": "callback", # DBusGLib "DBusBusType": "enum", "DBusGTypeSpecializedMapIterator": "callback", "DBusGTypeSpecializedCollectionIterator": "callback", # libxml2 "xmlParserCtxtPtr": "p", "xmlSchemaWhitespaceValueType": "enum", "const xmlChar **": "p", "xmlSchemaValPtr": "p", "htmlParserCtxtPtr": "p", "xmlXPathContextPtr": "p", "xmlXPathFunction": "callback", "xmlSchemaValidCtxtPtr": "p", "xmlErrorPtr": "p", "xmlDOMWrapCtxtPtr": "p", "xmlTextReaderPtr": "p", "xmlNodeSetPtr": "p", "xmlSAXHandlerPtr": "p", "xmlParserInputBufferPtr": "p", "xmlCharEncoding": "enum", "xmlTextWriterPtr": "p", "xmlParserInputPtr": "p", "xmlXPathObjectPtr": "p", "xmlListPtr": "p", "xmlAutomataStatePtr": "p", "xmlAutomataPtr": "p", "xmlSaveCtxtPtr": "p", "xmlOutputWriteCallback": "callback", "xmlOutputCloseCallback": "callback", "xmlEntitiesTablePtr": "p", "xmlListWalker": "callback", "xmlValidCtxtPtr": "p", "xmlXPathParserContextPtr": "p", "xmlShellCtxtPtr": "p", "xmlOutputBufferPtr": "p", "xmlBufferPtr": "p", "xmlCharEncodingHandlerPtr": "p", "xmlAttrPtr": "p", "xmlNsPtr": "p", "xmlTextReaderErrorFunc": "callback", "xmlElementPtr": "p", "xmlURIPtr": "p", "xmlSchematronParserCtxtPtr": "p", "xmlCatalogPtr": "p", "xmlPatternPtr": "p", "void **": "p", # WTF "htmlDocPtr": "p", "xmlStreamCtxtPtr": "p", "xmlHashTablePtr": "p", "xmlHashCopier": "callback", "xmlElementTablePtr": "p", "xmlNotationTablePtr": "p", "xmlCharEncodingOutputFunc": "callback", "xmlElementContentPtr": "p", "xmlIDTablePtr": "p", "xmlAttributeTablePtr": "p", "xmlExpCtxtPtr": "p", "xmlExpNodePtr": "p", "xmlRelaxNGParserCtxtPtr": "p", "xmlRelaxNGPtr": "p", "htmlStatus": "enum", "xmlDictPtr": "p", "xmlRelaxNGValidCtxtPtr": "p", "xmlLinkPtr": "p", "xmlSchemaValType": "enum", "xmlLocationSetPtr": "p", "xmlRegExecCtxtPtr": "p", "xmlChar **": "p", "xmlListDeallocator": "callback", "xmlListDataCompare": "callback", "xmlOutputBufferCreateFilenameFunc": "callback", "ftpListCallback": "callback", "xmlXPathCompExprPtr": "p", "xmlEnumerationPtr": "p", "xmlSchemaTypePtr": "p", "xmlSchemaFacetPtr": "p", "xmlHashDeallocator": "callback", "xmlParserInputBufferCreateFilenameFunc": "callback", "xmlInputReadCallback": "callback", "xmlInputCloseCallback": "callback", "xmlEntityPtr": "p", "xmlHashScanner": "callback", "xmlXPathVariableLookupFunc": "callback", "xmlSchemaPtr": "p", "xmlSchemaParserCtxtPtr": "p", "xmlBufferAllocationScheme": "enum", "xmlElementContentType": "enum", "const xmlNodePtr": "p", "const xmlParserNodeInfoSeqPtr": "p", "xmlMutexPtr": "p", "xmlCharEncodingInputFunc": "callback", "xmlModulePtr": "p", "xmlSAXLocatorPtr": "p", "xmlGlobalStatePtr": "p", "xmlRelaxNGValidityErrorFunc": "callback", "xmlRelaxNGValidityWarningFunc": "callback", "xlinkNodeDetectFunc": "callback", "xmlHashScannerFull": "callback", "xmlTextReaderLocatorPtr": "p", "xmlGenericErrorFunc": "callback", "xmlSchemaValidityErrorFunc": "callback", "xmlSchemaValidityWarningFunc": "callback", "xmlStructuredErrorFunc": "callback", "xmlRMutexPtr": "p", "xmlAttributeType": "enum", "xmlXIncludeCtxtPtr": "p", "const xmlListPtr": "p", "xmlDtdPtr": "p", "xmlCatalogAllow": "enum", "xmlAttributePtr": "p", "htmlNodePtr": "p", "xmlAttributeDefault": "enum", "xmlNotationPtr": "p", "xmlRegexpPtr": "p", "xmlSchemaSAXPlugPtr": "p", "htmlSAXHandlerPtr": "xmlSAXHandlerPtr", "xmlParserNodeInfoSeqPtr": "p", "xmlSchematronPtr": "p", "xmlIDPtr": "p", "xmlFreeFunc": "callback", # TODO actually call xmlMemSetup "xmlMallocFunc": "callback", "xmlReallocFunc": "callback", "xmlStrdupFunc": "callback", "xmlExternalEntityLoader": "callback", "xlinkHandlerPtr": "p", "xmlChar": "char", "const xmlBufferPtr": "p", "xmlCatalogPrefer": "enum", "const xmlParserNodeInfoPtr": "p", "xmlFeature": "enum", "xmlInputMatchCallback": "callback", "xmlInputOpenCallback": "callback", "xmlSchematronValidCtxtPtr": "p", "xlinkType": "enum", "xmlRefPtr": "p", "xmlParserErrors": "enum", "xmlOutputMatchCallback": "callback", "xmlOutputOpenCallback": "callback", "xmlDeregisterNodeFunc": "callback", "xmlEntityReferenceFunc": "callback", "xmlRefTablePtr": "p", "xmlShellReadlineFunc": "callback", "const htmlNodePtr": "p", "xmlRegisterNodeFunc": "callback", "ftpDataCallback": "callback", "xmlSchemaWildcardPtr": "p", "const xmlParserCtxtPtr": "p", "xmlElementTypeVal": "enum", "xmlXPathFuncLookupFunc": "callback", "xmlRegExecCallbacks": "callback", # SDL "SDL_audiostatus": "enum", "SDL_bool": "enum", "SDL_eventaction": "enum", "Uint32": "uint32", "Sint64": "int64", "Uint64": "uint64", "Uint8": "uint8", "Sint16": "int16", "Uint16": "uint16", "Sint32": "i4", "const Uint8": "uint8", # or pointer? "SDL_TimerCallback": "callback", "SDL_TimerID": "p", # struct* "SDL_NewTimerCallback": "callback", "SDL_Rect **": "p", "SDL_GrabMode": "enum", "SDL_GLattr": "enum", "SDLMod": "flags", "SDL_EventFilter": "callback", "SDL_errorcode": "enum", "Uint8 **": "p", "SDLKey": "enum", # actually ASCII "CDstatus": "enum", "UDPsocket": "p", "SDLNet_SocketSet": "p", "UDPpacket **": "p", "SDLNet_GenericSocket": "p", "TCPsocket": "p", "SDLPango_Alignment": "enum", "SDLPango_Direction": "enum", "Mix_MusicType": "enum", "Mix_Fading": "enum", "Mix_EffectFunc_t": "callback", "Mix_EffectDone_t": "callback", "const Sound_DecoderInfo **": "p", # LSB "__priority_which_t": "enum", "__rlimit_resource_t": "enum", "__rusage_who_t": "enum", "__WAIT_STATUS": "i", # FIXME "__id_t": "id_t", "id_t": "pid_t", # FIXME (opengroup getpriority) "idtype_t": "enum", # POSIX "__ssize_t": "size_t", "nfds_t": "L", "__sighandler_t": "callback", "const union sigval": "P", "const char *const *": "P", # argv "const wchar_t *const *": "P", # argv "__compar_fn_t": "callback", "socklen_t": "u4", "const struct dirent **": "p", "struct dirent **": "P", "struct dirent ***": "P", "__ftw_func_t": "callback", # obsolete "__nftw_func_t": "callback", # FUSE "__off64_t": "uint64", "mode_t": "__mode_t", "__mode_t": "uint32", # FIXME "uid_t": "i", # FIXME "gid_t": "i", # FIXME "off_t": "__off64_t", "dev_t": "uint64", "fuse_fill_dir_t": "callback", "fuse_processor_t": "callback", "fuse_opt_proc_t": "callback", # GDBM "GDBM_FILE": "p", "gdbm_error": "i", # "datum": "struct whatever" # WIN32 "PCRITICAL_SECTION": "p", "POVERLAPPED": "p", "CALINFO_ENUMPROCA": "callback", "CALINFO_ENUMPROCW": "callback", "DATEFMT_ENUMPROCA": "callback", "DATEFMT_ENUMPROCW": "callback", "CODEPAGE_ENUMPROCA": "callback", "CODEPAGE_ENUMPROCW": "callback", "LOCALE_ENUMPROCA": "callback", "LOCALE_ENUMPROCW": "callback", "TIMEFMT_ENUMPROCA": "callback", "TIMEFMT_ENUMPROCW": "callback", "PCONSOLE_CURSOR_INFO": "p", "PCONSOLE_SCREEN_BUFFER_INFO": "p", "FARPROC": "callback", "PSIZE_T": "p", "PINPUT_RECORD": "p", "PLARGE_INTEGER": "p", "PAPCFUNC": "p", "PHANDLER_ROUTINE": "callback", "LARGE_INTEGER": "int64", "PTIMERAPCROUTINE": "callback", "DWORDLONG": "uint64", "PMEMORY_BASIC_INFORMATION": "p", "HDWP": "HANDLE", "PDEVMODEA": "p", "PDEVMODEW": "p", "HWINSTA": "HANDLE", "ACCESS_MASK": "DWORD", "HDDEDATA": "HANDLE", "PCONVCONTEXT": "p", "PFNCALLBACK": "callback", "PSECURITY_QUALITY_OF_SERVICE": "p", "DRAWSTATEPROC": "callback", "ENUMWINDOWSPROC": "callback", "DESKTOPENUMPROCA": "callback", "DESKTOPENUMPROCW": "callback", "PDISPLAY_DEVICEA": "p", "PDISPLAY_DEVICEW": "p", "MONITORENUMPROC": "callback", "PROPENUMPROCA": "callback", "PROPENUMPROCEXA": "callback", "PROPENUMPROCEXW": "callback", "PROPENUMPROCW": "callback", "WNDENUMPROC": "callback", "WINSTAENUMPROCA": "callback", "WINSTAENUMPROCW": "callback", "PMENUBARINFO": "p", "PSECURITY_INFORMATION": "p", "PSECURITY_DESCRIPTOR": "p", "SENDASYNCPROC": "callback", "wint_t": "wchar_t", # FIXME "wctype_t": "wchar_t", # FIXME "wchar_t **": "P", "LATENCY_TIME": "enum", "EXECUTION_STATE": "enum", "const wchar_t **": "p", "errno_t": "i", # FIXME # C99 "_Bool": "i", # WebKit "WebKitNavigationResponse": "enum", "WebKitWebViewTargetInfo": "enum", "WebKitWebViewViewMode": "enum", "WebKitSelectionAffinity": "enum", "WebKitInsertAction": "enum", "JSValueRef": "p", "JSContextRef": "p", "JSStringRef": "p", "JSObjectRef": "p", "JSGlobalContextRef": "p", "WebKitLoadStatus": "enum", "WebKitCacheModel": "enum", "WebKitDownloadStatus": "enum", "WebKitWebNavigationReason": "enum", # X11 #"Font": "", # OpenGL "GLenum": "enum", # FIXME "GLsizei": "i", # FIXME "GLXContext": "p", # FIXME "GLfloat": "f", "GLclampf": "f", # [0.0,1.0] "GLboolean": "uchar", "GLint": "int32", "GLuint": "uint32", "GLbitfield": "uint", "GLclampd": "d", # [0.0,1.0] "GLbyte": "char", "GLdouble": "d", "GLshort": "int16", "GLubyte": "uchar", "GLushort": "uint16", "GLvoid **": "p", # FIXME "GLXFBConfig": "p", "_GLUfuncptr": "callback", # BLAS (questionable) "const enum CBLAS_ORDER": "enum", "const enum CBLAS_UPLO": "enum", "const enum CBLAS_TRANSPOSE": "enum", "const enum CBLAS_DIAG": "enum", "const enum CBLAS_SIDE": "enum", "const float": "f", "const double": "d", # SQLite3 "sqlite3 **": "p", "sqlite3_int64": "int64", "sqlite3_blob **": "p", "sqlite3_stmt **": "p", "const void **": "p", # libpq5 and PostgreSQL in general "Oid": "I", "PQnoticeProcessor": "callback", "ExecStatusType": "enum", "PGTransactionStatusType": "enum", "PGVerbosity": "enum", "PGPing": "enum", "PostgresPollingStatusType": "enum", "ConnStatusType": "enum", "pgthreadlock_t": "callback", "PQnoticeReceiver": "callback", # libevent "event_log_cb": "callback", "event_callback_fn": "callback", "event_fatal_cb": "callback", "struct event_base **": "p", # udev "GUdevDeviceType": "enum", "GUdevDeviceNumber": "guint64", # Telepathy "TpBaseClientDelegatedChannelsCb": "callback", "TpMessagePartSupportFlags": "flags", "TpCallContentDisposition": "enum", "TpHandle": "guint", "TpMediaStreamType": "enum", "TpMessageMixinSendImpl": "callback", "TpConnectionPresenceType": "enum", "TpConnectionWhenReadyCb": "callback", "TpChannelChatState": "enum", "TpStorageRestrictionFlags": "flags", "TpChannelGroupFlags": "flags", "TpSendingState": "enum", "TpCallStateChangeReason": "enum", "TpBaseClientClassObserveChannelsImpl": "callback", "TpContactListState": "enum", "TpContact **": "p", "TpStreamComponent": "enum", "TpStreamEndpointState": "enum", "TpMediaStreamDirection": "enum", "TpContactMetadataStorageType": "enum", "TpContactInfoFlags": "flags", "TpCallState": "enum", "TpCallStateReason **": "p", "tp_cli_account_connect_to_account_property_changed": "callback", "tp_cli_client_observer_callback_for_observe_channels": "callback", "tp_cli_connection_interface_avatars_call_get_known_avatar_tokens": "callback", "tp_cli_dbus_introspectable_callback_for_introspect": "callback", "tp_cli_dbus_peer_callback_for_ping": "callback", "tp_cli_dbus_peer_callback_for_get_machine_id": "callback", "tp_cli_dbus_properties_signal_callback_properties_changed": "callback", "tp_cli_dbus_properties_callback_for_get": "callback", "tp_cli_dbus_properties_callback_for_set": "callback", "tp_cli_dbus_properties_callback_for_get_all": "callback", "tp_cli_properties_interface_signal_callback_properties_changed": "callback", "tp_cli_properties_interface_signal_callback_property_flags_changed": "callback", "tp_cli_properties_interface_callback_for_get_properties": "callback", "tp_cli_properties_interface_callback_for_list_properties": "callback", "tp_cli_properties_interface_callback_for_set_properties": "callback", "tp_cli_connection_signal_callback_self_handle_changed": "callback", "tp_cli_connection_signal_callback_new_channel": "callback", "tp_cli_connection_signal_callback_connection_error": "callback", "tp_cli_connection_signal_callback_status_changed": "callback", "tp_cli_connection_callback_for_connect": "callback", "tp_cli_connection_callback_for_disconnect": "callback", "tp_cli_connection_callback_for_get_interfaces": "callback", "tp_cli_connection_callback_for_get_protocol": "callback", "tp_cli_connection_callback_for_get_self_handle": "callback", "tp_cli_connection_callback_for_get_status": "callback", "tp_cli_connection_callback_for_hold_handles": "callback", "tp_cli_connection_callback_for_inspect_handles": "callback", "tp_cli_connection_callback_for_list_channels": "callback", "tp_cli_connection_callback_for_release_handles": "callback", "tp_cli_connection_callback_for_request_channel": "callback", "tp_cli_connection_callback_for_request_handles": "callback", "tp_cli_connection_callback_for_add_client_interest": "callback", "tp_cli_connection_callback_for_remove_client_interest": "callback", "tp_cli_connection_interface_addressing_callback_for_get_contacts_by_vcard_field": "callback", "tp_cli_connection_interface_addressing_callback_for_get_contacts_by_uri": "callback", "tp_cli_connection_interface_aliasing_signal_callback_aliases_changed": "callback", "tp_cli_connection_interface_aliasing_callback_for_get_alias_flags": "callback", "tp_cli_connection_interface_aliasing_callback_for_request_aliases": "callback", "tp_cli_connection_interface_aliasing_callback_for_get_aliases": "callback", "tp_cli_connection_interface_aliasing_callback_for_set_aliases": "callback", "tp_cli_connection_interface_anonymity_signal_callback_anonymity_modes_changed": "callback", "tp_cli_connection_interface_avatars_signal_callback_avatar_updated": "callback", "tp_cli_connection_interface_avatars_signal_callback_avatar_retrieved": "callback", "tp_cli_connection_interface_avatars_callback_for_get_avatar_requirements": "callback", "tp_cli_connection_interface_avatars_callback_for_get_avatar_tokens": "callback", "tp_cli_connection_interface_avatars_callback_for_get_known_avatar_tokens": "callback", "tp_cli_connection_interface_avatars_callback_for_request_avatar": "callback", "tp_cli_connection_interface_avatars_callback_for_request_avatars": "callback", "tp_cli_connection_interface_avatars_callback_for_set_avatar": "callback", "tp_cli_connection_interface_avatars_callback_for_clear_avatar": "callback", "tp_cli_connection_interface_balance_signal_callback_balance_changed": "callback", "tp_cli_connection_interface_capabilities_signal_callback_capabilities_changed": "callback", "tp_cli_connection_interface_capabilities_callback_for_advertise_capabilities": "callback", "tp_cli_connection_interface_capabilities_callback_for_get_capabilities": "callback", "tp_cli_connection_interface_cellular_signal_callback_imsi_changed": "callback", "tp_cli_connection_interface_client_types_signal_callback_client_types_updated": "callback", "tp_cli_connection_interface_client_types_callback_for_get_client_types": "callback", "tp_cli_connection_interface_client_types_callback_for_request_client_types": "callback", "tp_cli_connection_interface_contact_blocking_signal_callback_blocked_contacts_changed": "callback", "tp_cli_connection_interface_contact_blocking_callback_for_block_contacts": "callback", "tp_cli_connection_interface_contact_blocking_callback_for_unblock_contacts": "callback", "tp_cli_connection_interface_contact_blocking_callback_for_request_blocked_contacts": "callback", "tp_cli_connection_interface_contact_capabilities_signal_callback_contact_capabilities_changed": "callback", "tp_cli_connection_interface_contact_capabilities_callback_for_update_capabilities": "callback", "tp_cli_connection_interface_contact_capabilities_callback_for_get_contact_capabilities": "callback", "tp_cli_connection_interface_contact_groups_signal_callback_groups_changed": "callback", "tp_cli_connection_interface_contact_groups_signal_callback_groups_created": "callback", "tp_cli_connection_interface_contact_groups_signal_callback_group_renamed": "callback", "tp_cli_connection_interface_contact_groups_signal_callback_groups_removed": "callback", "tp_cli_connection_interface_contact_groups_callback_for_set_contact_groups": "callback", "tp_cli_connection_interface_contact_groups_callback_for_set_group_members": "callback", "tp_cli_connection_interface_contact_groups_callback_for_add_to_group": "callback", "tp_cli_connection_interface_contact_groups_callback_for_remove_from_group": "callback", "tp_cli_connection_interface_contact_groups_callback_for_remove_group": "callback", "tp_cli_connection_interface_contact_groups_callback_for_rename_group": "callback", "tp_cli_connection_interface_contact_info_signal_callback_contact_info_changed": "callback", "tp_cli_connection_interface_contact_info_callback_for_get_contact_info": "callback", "tp_cli_connection_interface_contact_info_callback_for_refresh_contact_info": "callback", "tp_cli_connection_interface_contact_info_callback_for_request_contact_info": "callback", "tp_cli_connection_interface_contact_info_callback_for_set_contact_info": "callback", "tp_cli_connection_interface_contact_list_signal_callback_contact_list_state_changed": "callback", "tp_cli_connection_interface_contact_list_signal_callback_contacts_changed_with_id": "callback", "tp_cli_connection_interface_contact_list_signal_callback_contacts_changed": "callback", "tp_cli_connection_interface_contact_list_callback_for_get_contact_list_attributes": "callback", "tp_cli_connection_interface_contact_list_callback_for_request_subscription": "callback", "tp_cli_connection_interface_contact_list_callback_for_authorize_publication": "callback", "tp_cli_connection_interface_contact_list_callback_for_remove_contacts": "callback", "tp_cli_connection_interface_contact_list_callback_for_unsubscribe": "callback", "tp_cli_connection_interface_contact_list_callback_for_unpublish": "callback", "tp_cli_connection_interface_contact_list_callback_for_download": "callback", "tp_cli_connection_interface_contacts_callback_for_get_contact_attributes": "callback", "tp_cli_connection_interface_location_signal_callback_location_updated": "callback", "tp_cli_connection_interface_location_callback_for_get_locations": "callback", "tp_cli_connection_interface_location_callback_for_request_location": "callback", "tp_cli_connection_interface_location_callback_for_set_location": "callback", "tp_cli_connection_interface_mail_notification_signal_callback_mails_received": "callback", "tp_cli_connection_interface_mail_notification_signal_callback_unread_mails_changed": "callback", "tp_cli_connection_interface_mail_notification_callback_for_request_inbox_url": "callback", "tp_cli_connection_interface_mail_notification_callback_for_request_mail_url": "callback", "tp_cli_connection_interface_power_saving_signal_callback_power_saving_changed": "callback", "tp_cli_connection_interface_power_saving_callback_for_set_power_saving": "callback", "tp_cli_connection_interface_presence_signal_callback_presence_update": "callback", "tp_cli_connection_interface_presence_callback_for_add_status": "callback", "tp_cli_connection_interface_presence_callback_for_clear_status": "callback", "tp_cli_connection_interface_presence_callback_for_get_presence": "callback", "tp_cli_connection_interface_presence_callback_for_get_statuses": "callback", "tp_cli_connection_interface_presence_callback_for_remove_status": "callback", "tp_cli_connection_interface_presence_callback_for_request_presence": "callback", "tp_cli_connection_interface_presence_callback_for_set_last_activity_time": "callback", "tp_cli_connection_interface_presence_callback_for_set_status": "callback", "tp_cli_connection_interface_requests_signal_callback_new_channels": "callback", "tp_cli_connection_interface_requests_signal_callback_channel_closed": "callback", "tp_cli_connection_interface_requests_callback_for_create_channel": "callback", "tp_cli_connection_interface_requests_callback_for_ensure_channel": "callback", "tp_cli_connection_interface_service_point_signal_callback_service_points_changed": "callback", "tp_cli_connection_interface_simple_presence_signal_callback_presences_changed": "callback", "tp_cli_connection_interface_simple_presence_callback_for_set_presence": "callback", "tp_cli_connection_interface_simple_presence_callback_for_get_presences": "callback", "tp_cli_connection_interface_contacts_callback_for_get_contact_attributes": "callback", "tp_cli_connection_interface_contacts_callback_for_get_contact_attributes": "callback", "tp_cli_dbus_daemon_signal_callback_name_owner_changed": "callback", "tp_cli_dbus_daemon_signal_callback_name_lost": "callback", "tp_cli_dbus_daemon_signal_callback_name_acquired": "callback", "tp_cli_dbus_daemon_callback_for_hello": "callback", "tp_cli_dbus_daemon_callback_for_request_name": "callback", "tp_cli_dbus_daemon_callback_for_release_name": "callback", "tp_cli_dbus_daemon_callback_for_start_service_by_name": "callback", "tp_cli_dbus_daemon_callback_for_name_has_owner": "callback", "tp_cli_dbus_daemon_callback_for_list_names": "callback", "tp_cli_dbus_daemon_callback_for_list_activatable_names": "callback", "tp_cli_dbus_daemon_callback_for_add_match": "callback", "tp_cli_dbus_daemon_callback_for_remove_match": "callback", "tp_cli_dbus_daemon_callback_for_get_name_owner": "callback", "tp_cli_dbus_daemon_callback_for_list_queued_owners": "callback", "tp_cli_dbus_daemon_callback_for_get_connection_unix_user": "callback", "tp_cli_dbus_daemon_callback_for_get_connection_unix_process_id": "callback", "tp_cli_dbus_daemon_callback_for_get_connection_se_linux_security_context": "callback", "tp_cli_dbus_daemon_callback_for_reload_config": "callback", "tp_cli_dbus_daemon_callback_for_get_id": "callback", "tp_cli_account_signal_callback_removed": "callback", "tp_cli_account_signal_callback_account_property_changed": "callback", "tp_cli_account_callback_for_remove": "callback", "tp_cli_account_callback_for_update_parameters": "callback", "tp_cli_account_callback_for_reconnect": "callback", "tp_cli_account_interface_addressing_callback_for_set_uri_scheme_association": "callback", "tp_cli_account_interface_avatar_signal_callback_avatar_changed": "callback", "tp_cli_channel_signal_callback_closed": "callback", "tp_cli_channel_callback_for_close": "callback", "tp_cli_channel_callback_for_get_channel_type": "callback", "tp_cli_channel_callback_for_get_handle": "callback", "tp_cli_channel_callback_for_get_interfaces": "callback", "tp_cli_channel_interface_call_state_signal_callback_call_state_changed": "callback", "tp_cli_channel_interface_call_state_callback_for_get_call_states": "callback", "tp_cli_channel_interface_captcha_authentication_callback_for_get_captchas": "callback", "tp_cli_channel_interface_captcha_authentication_callback_for_get_captcha_data": "callback", "tp_cli_channel_interface_captcha_authentication_callback_for_answer_captchas": "callback", "tp_cli_channel_interface_captcha_authentication_callback_for_cancel_captcha": "callback", "tp_cli_channel_interface_chat_state_signal_callback_chat_state_changed": "callback", "tp_cli_channel_interface_chat_state_callback_for_set_chat_state": "callback", "tp_cli_channel_interface_conference_signal_callback_channel_merged": "callback", "tp_cli_channel_interface_conference_signal_callback_channel_removed": "callback", "tp_cli_channel_interface_dtmf_signal_callback_tones_deferred": "callback", "tp_cli_channel_interface_dtmf_signal_callback_sending_tones": "callback", "tp_cli_channel_interface_dtmf_signal_callback_stopped_tones": "callback", "tp_cli_channel_interface_dtmf_callback_for_start_tone": "callback", "tp_cli_channel_interface_dtmf_callback_for_stop_tone": "callback", "tp_cli_channel_interface_dtmf_callback_for_multiple_tones": "callback", "tp_cli_channel_interface_destroyable_callback_for_destroy": "callback", "tp_cli_channel_interface_group_signal_callback_handle_owners_changed": "callback", "tp_cli_channel_interface_group_signal_callback_handle_owners_changed_detailed": "callback", "tp_cli_channel_interface_group_signal_callback_self_handle_changed": "callback", "tp_cli_channel_interface_group_signal_callback_self_contact_changed": "callback", "tp_cli_channel_interface_group_signal_callback_group_flags_changed": "callback", "tp_cli_channel_interface_group_signal_callback_members_changed": "callback", "tp_cli_channel_interface_group_signal_callback_members_changed_detailed": "callback", "tp_cli_channel_interface_group_callback_for_add_members": "callback", "tp_cli_channel_interface_group_callback_for_get_all_members": "callback", "tp_cli_channel_interface_group_callback_for_get_group_flags": "callback", "tp_cli_channel_interface_group_callback_for_get_handle_owners": "callback", "tp_cli_channel_interface_group_callback_for_get_local_pending_members": "callback", "tp_cli_channel_interface_group_callback_for_get_local_pending_members_with_info": "callback", "tp_cli_channel_interface_group_callback_for_get_members": "callback", "tp_cli_channel_interface_group_callback_for_get_remote_pending_members": "callback", "tp_cli_channel_interface_group_callback_for_get_self_handle": "callback", "tp_cli_channel_interface_group_callback_for_remove_members": "callback", "tp_cli_channel_interface_group_callback_for_remove_members_with_reason": "callback", "tp_cli_channel_interface_hold_signal_callback_hold_state_changed": "callback", "tp_cli_channel_interface_hold_callback_for_get_hold_state": "callback", "tp_cli_channel_interface_hold_callback_for_request_hold": "callback", "tp_cli_channel_interface_media_signalling_signal_callback_new_session_handler": "callback", "tp_cli_channel_interface_media_signalling_callback_for_get_session_handlers": "callback", "tp_cli_channel_interface_messages_signal_callback_message_sent": "callback", "tp_cli_channel_interface_messages_signal_callback_pending_messages_removed": "callback", "tp_cli_channel_interface_messages_signal_callback_message_received": "callback", "tp_cli_channel_interface_messages_callback_for_send_message": "callback", "tp_cli_channel_interface_messages_callback_for_get_pending_message_content": "callback", "tp_cli_channel_interface_password_signal_callback_password_flags_changed": "callback", "tp_cli_channel_interface_password_callback_for_get_password_flags": "callback", "tp_cli_channel_interface_password_callback_for_provide_password": "callback", "tp_cli_channel_interface_room_config_callback_for_update_configuration": "callback", "tp_cli_channel_interface_sasl_authentication_signal_callback_sasl_status_changed": "callback", "tp_cli_channel_interface_sasl_authentication_signal_callback_new_challenge": "callback", "tp_cli_channel_interface_sasl_authentication_callback_for_start_mechanism": "callback", "tp_cli_channel_interface_sasl_authentication_callback_for_start_mechanism_with_data": "callback", "tp_cli_channel_interface_sasl_authentication_callback_for_respond": "callback", "tp_cli_channel_interface_sasl_authentication_callback_for_accept_sasl": "callback", "tp_cli_channel_interface_sasl_authentication_callback_for_abort_sasl": "callback", "tp_cli_channel_interface_sms_signal_callback_sms_channel_changed": "callback", "tp_cli_channel_interface_sms_callback_for_get_sms_length": "callback", "tp_cli_channel_interface_service_point_signal_callback_service_point_changed": "callback", "tp_cli_channel_interface_subject_callback_for_set_subject": "callback", "tp_cli_channel_interface_tube_signal_callback_tube_channel_state_changed": "callback", "tp_cli_channel_type_call_signal_callback_content_added": "callback", "tp_cli_channel_type_call_signal_callback_content_removed": "callback", "tp_cli_channel_type_call_signal_callback_call_state_changed": "callback", "tp_cli_channel_type_call_signal_callback_call_members_changed": "callback", "tp_cli_channel_type_call_callback_for_set_ringing": "callback", "tp_cli_channel_type_call_callback_for_set_queued": "callback", "tp_cli_channel_type_call_callback_for_accept": "callback", "tp_cli_channel_type_call_callback_for_hangup": "callback", "tp_cli_channel_type_call_callback_for_add_content": "callback", "tp_cli_channel_type_contact_search_signal_callback_search_state_changed": "callback", "tp_cli_channel_type_contact_search_signal_callback_search_result_received": "callback", "tp_cli_channel_type_contact_search_callback_for_search": "callback", "tp_cli_channel_type_contact_search_callback_for_more": "callback", "tp_cli_channel_type_contact_search_callback_for_stop": "callback", "tp_cli_channel_type_dbus_tube_signal_callback_dbus_names_changed": "callback", "tp_cli_channel_type_dbus_tube_callback_for_offer": "callback", "tp_cli_channel_type_dbus_tube_callback_for_accept": "callback", "tp_cli_channel_type_file_transfer_signal_callback_file_transfer_state_changed": "callback", "tp_cli_channel_type_file_transfer_signal_callback_transferred_bytes_changed": "callback", "tp_cli_channel_type_file_transfer_signal_callback_initial_offset_defined": "callback", "tp_cli_channel_type_file_transfer_signal_callback_uri_defined": "callback", "tp_cli_channel_type_file_transfer_callback_for_accept_file": "callback", "tp_cli_channel_type_file_transfer_callback_for_provide_file": "callback", "tp_cli_channel_type_room_list_signal_callback_got_rooms": "callback", "tp_cli_channel_type_room_list_signal_callback_listing_rooms": "callback", "tp_cli_channel_type_room_list_callback_for_get_listing_rooms": "callback", "tp_cli_channel_type_room_list_callback_for_list_rooms": "callback", "tp_cli_channel_type_room_list_callback_for_stop_listing": "callback", "tp_cli_channel_type_stream_tube_signal_callback_new_remote_connection": "callback", "tp_cli_channel_type_stream_tube_signal_callback_new_local_connection": "callback", "tp_cli_channel_type_stream_tube_signal_callback_connection_closed": "callback", "tp_cli_channel_type_stream_tube_callback_for_offer": "callback", "tp_cli_channel_type_stream_tube_callback_for_accept": "callback", "tp_cli_channel_type_streamed_media_signal_callback_stream_added": "callback", "tp_cli_channel_type_streamed_media_signal_callback_stream_direction_changed": "callback", "tp_cli_channel_type_streamed_media_signal_callback_stream_error": "callback", "tp_cli_channel_type_streamed_media_signal_callback_stream_removed": "callback", "tp_cli_channel_type_streamed_media_signal_callback_stream_state_changed": "callback", "tp_cli_channel_type_streamed_media_callback_for_list_streams": "callback", "tp_cli_channel_type_streamed_media_callback_for_remove_streams": "callback", "tp_cli_channel_type_streamed_media_callback_for_request_stream_direction": "callback", "tp_cli_channel_type_streamed_media_callback_for_request_streams": "callback", "tp_cli_channel_type_text_signal_callback_lost_message": "callback", "tp_cli_channel_type_text_signal_callback_received": "callback", "tp_cli_channel_type_text_signal_callback_send_error": "callback", "tp_cli_channel_type_text_signal_callback_sent": "callback", "tp_cli_channel_type_text_callback_for_acknowledge_pending_messages": "callback", "tp_cli_channel_type_text_callback_for_get_message_types": "callback", "tp_cli_channel_type_text_callback_for_list_pending_messages": "callback", "tp_cli_channel_type_text_callback_for_send": "callback", "tp_cli_channel_type_tubes_signal_callback_new_tube": "callback", "tp_cli_channel_type_tubes_signal_callback_tube_state_changed": "callback", "tp_cli_channel_type_tubes_signal_callback_tube_closed": "callback", "tp_cli_channel_type_tubes_signal_callback_d_bus_names_changed": "callback", "tp_cli_channel_type_tubes_signal_callback_stream_tube_new_connection": "callback", "tp_cli_channel_type_tubes_callback_for_get_available_stream_tube_types": "callback", "tp_cli_channel_type_tubes_callback_for_get_available_tube_types": "callback", "tp_cli_channel_type_tubes_callback_for_list_tubes": "callback", "tp_cli_channel_type_tubes_callback_for_offer_d_bus_tube": "callback", "tp_cli_channel_type_tubes_callback_for_offer_stream_tube": "callback", "tp_cli_channel_type_tubes_callback_for_accept_d_bus_tube": "callback", "tp_cli_channel_type_tubes_callback_for_accept_stream_tube": "callback", "tp_cli_channel_type_tubes_callback_for_close_tube": "callback", "tp_cli_channel_type_tubes_callback_for_get_d_bus_tube_address": "callback", "tp_cli_channel_type_tubes_callback_for_get_d_bus_names": "callback", "tp_cli_channel_type_tubes_callback_for_get_stream_tube_socket_address": "callback", "tp_cli_channel_request_signal_callback_failed": "callback", "tp_cli_channel_request_signal_callback_succeeded": "callback", "tp_cli_channel_request_signal_callback_succeeded_with_channel": "callback", "tp_cli_channel_request_callback_for_proceed": "callback", "tp_cli_channel_request_callback_for_cancel": "callback", "tp_cli_account_manager_signal_callback_account_removed": "callback", "tp_cli_account_manager_signal_callback_account_validity_changed": "callback", "tp_cli_account_manager_callback_for_create_account": "callback", "tp_cli_channel_dispatch_operation_signal_callback_channel_lost": "callback", "tp_cli_channel_dispatch_operation_signal_callback_finished": "callback", "tp_cli_channel_dispatch_operation_callback_for_handle_with": "callback", "tp_cli_channel_dispatch_operation_callback_for_claim": "callback", "tp_cli_channel_dispatch_operation_callback_for_handle_with_time": "callback", "tp_cli_call_content_signal_callback_streams_added": "callback", "tp_cli_call_content_signal_callback_streams_removed": "callback", "tp_cli_call_content_callback_for_remove": "callback", "tp_cli_call_content_interface_audio_control_callback_for_report_input_volume": "callback", "tp_cli_call_content_interface_audio_control_callback_for_report_output_volume": "callback", "tp_cli_call_content_interface_dtmf_signal_callback_tones_deferred": "callback", "tp_cli_call_content_interface_dtmf_signal_callback_sending_tones": "callback", "tp_cli_call_content_interface_dtmf_signal_callback_stopped_tones": "callback", "tp_cli_call_content_interface_dtmf_callback_for_start_tone": "callback", "tp_cli_call_content_interface_dtmf_callback_for_stop_tone": "callback", "tp_cli_call_content_interface_dtmf_callback_for_multiple_tones": "callback", "tp_cli_call_content_interface_media_signal_callback_new_media_description_offer": "callback", "tp_cli_call_content_interface_media_signal_callback_media_description_offer_done": "callback", "tp_cli_call_content_interface_media_signal_callback_local_media_description_changed": "callback", "tp_cli_call_content_interface_media_signal_callback_remote_media_descriptions_changed": "callback", "tp_cli_call_content_interface_media_signal_callback_media_descriptions_removed": "callback", "tp_cli_call_content_interface_media_signal_callback_dtmf_change_requested": "callback", "tp_cli_call_content_interface_media_callback_for_update_local_media_description": "callback", "tp_cli_call_content_interface_media_callback_for_acknowledge_dtmf_change": "callback", "tp_cli_call_content_interface_media_callback_for_fail": "callback", "tp_cli_call_content_interface_video_control_signal_callback_key_frame_requested": "callback", "tp_cli_call_content_interface_video_control_signal_callback_video_resolution_changed": "callback", "tp_cli_call_content_interface_video_control_signal_callback_bitrate_changed": "callback", "tp_cli_call_content_interface_video_control_signal_callback_framerate_changed": "callback", "tp_cli_call_content_interface_video_control_signal_callback_mtu_changed": "callback", "tp_cli_call_content_media_description_callback_for_accept": "callback", "tp_cli_call_content_media_description_callback_for_reject": "callback", "tp_cli_call_stream_endpoint_signal_callback_remote_credentials_set": "callback", "tp_cli_call_stream_endpoint_signal_callback_remote_candidates_added": "callback", "tp_cli_call_stream_endpoint_signal_callback_candidate_pair_selected": "callback", "tp_cli_call_stream_endpoint_signal_callback_endpoint_state_changed": "callback", "tp_cli_call_stream_endpoint_signal_callback_controlling_changed": "callback", "tp_cli_call_stream_endpoint_callback_for_set_selected_candidate_pair": "callback", "tp_cli_call_stream_endpoint_callback_for_set_endpoint_state": "callback", "tp_cli_call_stream_endpoint_callback_for_accept_selected_candidate_pair": "callback", "tp_cli_call_stream_endpoint_callback_for_reject_selected_candidate_pair": "callback", "tp_cli_call_stream_endpoint_callback_for_set_controlling": "callback", "tp_cli_call_stream_signal_callback_remote_members_changed": "callback", "tp_cli_call_stream_signal_callback_local_sending_state_changed": "callback", "tp_cli_call_stream_callback_for_set_sending": "callback", "tp_cli_call_stream_callback_for_request_receiving": "callback", "tp_cli_call_stream_interface_media_signal_callback_sending_state_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_receiving_state_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_local_candidates_added": "callback", "tp_cli_call_stream_interface_media_signal_callback_local_credentials_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_relay_info_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_stun_servers_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_server_info_retrieved": "callback", "tp_cli_call_stream_interface_media_signal_callback_endpoints_changed": "callback", "tp_cli_call_stream_interface_media_signal_callback_ice_restart_requested": "callback", "tp_cli_call_stream_interface_media_callback_for_complete_sending_state_change": "callback", "tp_cli_call_stream_interface_media_callback_for_report_sending_failure": "callback", "tp_cli_call_stream_interface_media_callback_for_complete_receiving_state_change": "callback", "tp_cli_call_stream_interface_media_callback_for_report_receiving_failure": "callback", "tp_cli_call_stream_interface_media_callback_for_set_credentials": "callback", "tp_cli_call_stream_interface_media_callback_for_add_candidates": "callback", "tp_cli_call_stream_interface_media_callback_for_finish_initial_candidates": "callback", "tp_cli_call_stream_interface_media_callback_for_fail": "callback", "tp_cli_channel_dispatcher_callback_for_create_channel": "callback", "tp_cli_channel_dispatcher_callback_for_ensure_channel": "callback", "tp_cli_channel_dispatcher_callback_for_create_channel_with_hints": "callback", "tp_cli_channel_dispatcher_callback_for_ensure_channel_with_hints": "callback", "tp_cli_channel_dispatcher_callback_for_delegate_channels": "callback", "tp_cli_channel_dispatcher_callback_for_present_channel": "callback", "tp_cli_channel_dispatcher_interface_operation_list_signal_callback_new_dispatch_operation": "callback", "tp_cli_channel_dispatcher_interface_operation_list_signal_callback_dispatch_operation_finished": "callback", "tp_cli_protocol_callback_for_identify_account": "callback", "tp_cli_protocol_callback_for_normalize_contact": "callback", "tp_cli_protocol_interface_addressing_callback_for_normalize_vcard_address": "callback", "tp_cli_protocol_interface_addressing_callback_for_normalize_contact_uri": "callback", "tp_cli_connection_manager_signal_callback_new_connection": "callback", "tp_cli_connection_manager_callback_for_get_parameters": "callback", "tp_cli_connection_manager_callback_for_list_protocols": "callback", "tp_cli_connection_manager_callback_for_request_connection": "callback", "tp_cli_media_stream_handler_signal_callback_set_remote_codecs": "callback", "tp_cli_media_stream_handler_callback_for_codec_choice": "callback", "tp_cli_media_stream_handler_callback_for_supported_codecs": "callback", "tp_cli_media_stream_handler_callback_for_hold_state": "callback", "tp_svc_media_stream_handler_codec_choice_impl": "callback", "TpConnectionManagerListCb": "callback", "TpSimpleObserverObserveChannelsImpl": "callback", "TpDBusDaemonNameOwnerChangedCb": "callback", "TpChannelManagerTypeChannelClassFunc": "callback", "TpHandleType": "enum", "TpConnectionStatus": "enum", "TpConnectionStatusReason": "enum", "TpChannelManager **": "p", "TpHandleChannelsContext **": "p", "TpCallMemberFlags": "flags", "TpContact *const *": "p", "TpStreamFlowState": "enum", "tp_svc_dbus_introspectable_introspect_impl": "callback", "tp_svc_dbus_properties_get_impl": "callback", "tp_svc_dbus_properties_set_impl": "callback", "tp_svc_dbus_properties_get_all_impl": "callback", "tp_svc_properties_interface_get_properties_impl": "callback", "tp_svc_properties_interface_list_properties_impl": "callback", "tp_svc_properties_interface_set_properties_impl": "callback", "tp_svc_client_approver_add_dispatch_operation_impl": "callback", "tp_svc_client_handler_handle_channels_impl": "callback", "tp_svc_client_interface_requests_add_request_impl": "callback", "tp_svc_client_interface_requests_remove_request_impl": "callback", "tp_svc_client_observer_observe_channels_impl": "callback", "tp_svc_connection_connect_impl": "callback", "tp_svc_connection_disconnect_impl": "callback", "tp_svc_connection_get_interfaces_impl": "callback", "tp_svc_connection_get_protocol_impl": "callback", "tp_svc_connection_get_self_handle_impl": "callback", "tp_svc_connection_get_status_impl": "callback", "tp_svc_connection_hold_handles_impl": "callback", "tp_svc_connection_inspect_handles_impl": "callback", "tp_svc_connection_list_channels_impl": "callback", "tp_svc_connection_release_handles_impl": "callback", "tp_svc_connection_request_channel_impl": "callback", "tp_svc_connection_request_handles_impl": "callback", "tp_svc_connection_add_client_interest_impl": "callback", "tp_svc_connection_remove_client_interest_impl": "callback", "tp_svc_connection_interface_addressing_get_contacts_by_vcard_field_impl": "callback", "tp_svc_connection_interface_addressing_get_contacts_by_uri_impl": "callback", "tp_svc_connection_interface_aliasing_get_alias_flags_impl": "callback", "tp_svc_connection_interface_aliasing_request_aliases_impl": "callback", "tp_svc_connection_interface_aliasing_get_aliases_impl": "callback", "tp_svc_connection_interface_aliasing_set_aliases_impl": "callback", "tp_svc_connection_interface_avatars_get_avatar_requirements_impl": "callback", "tp_svc_connection_interface_avatars_get_avatar_tokens_impl": "callback", "tp_svc_connection_interface_avatars_get_known_avatar_tokens_impl": "callback", "tp_svc_connection_interface_avatars_request_avatar_impl": "callback", "tp_svc_connection_interface_avatars_request_avatars_impl": "callback", "tp_svc_connection_interface_avatars_set_avatar_impl": "callback", "tp_svc_connection_interface_avatars_clear_avatar_impl": "callback", "tp_svc_connection_interface_capabilities_advertise_capabilities_impl": "callback", "tp_svc_connection_interface_capabilities_get_capabilities_impl": "callback", "tp_svc_connection_interface_client_types_get_client_types_impl": "callback", "tp_svc_connection_interface_client_types_request_client_types_impl": "callback", "tp_svc_connection_interface_contact_blocking_block_contacts_impl": "callback", "tp_svc_connection_interface_contact_blocking_unblock_contacts_impl": "callback", "tp_svc_connection_interface_contact_blocking_request_blocked_contacts_impl": "callback", "tp_svc_connection_interface_contact_capabilities_update_capabilities_impl": "callback", "tp_svc_connection_interface_contact_capabilities_get_contact_capabilities_impl": "callback", "tp_svc_connection_interface_contact_groups_set_contact_groups_impl": "callback", "tp_svc_connection_interface_contact_groups_set_group_members_impl": "callback", "tp_svc_connection_interface_contact_groups_add_to_group_impl": "callback", "tp_svc_connection_interface_contact_groups_remove_from_group_impl": "callback", "tp_svc_connection_interface_contact_groups_remove_group_impl": "callback", "tp_svc_connection_interface_contact_groups_rename_group_impl": "callback", "tp_svc_connection_interface_contact_info_get_contact_info_impl": "callback", "tp_svc_connection_interface_contact_info_refresh_contact_info_impl": "callback", "tp_svc_connection_interface_contact_info_request_contact_info_impl": "callback", "tp_svc_connection_interface_contact_info_set_contact_info_impl": "callback", "tp_svc_connection_interface_contact_list_get_contact_list_attributes_impl": "callback", "tp_svc_connection_interface_contact_list_request_subscription_impl": "callback", "tp_svc_connection_interface_contact_list_authorize_publication_impl": "callback", "tp_svc_connection_interface_contact_list_remove_contacts_impl": "callback", "tp_svc_connection_interface_contact_list_unsubscribe_impl": "callback", "tp_svc_connection_interface_contact_list_unpublish_impl": "callback", "tp_svc_connection_interface_contact_list_download_impl": "callback", "tp_svc_connection_interface_contacts_get_contact_attributes_impl": "callback", "tp_svc_connection_interface_location_get_locations_impl": "callback", "tp_svc_connection_interface_location_request_location_impl": "callback", "tp_svc_connection_interface_location_set_location_impl": "callback", "tp_svc_connection_interface_mail_notification_request_inbox_url_impl": "callback", "tp_svc_connection_interface_mail_notification_request_mail_url_impl": "callback", "tp_svc_connection_interface_power_saving_set_power_saving_impl": "callback", "tp_svc_connection_interface_presence_add_status_impl": "callback", "tp_svc_connection_interface_presence_clear_status_impl": "callback", "tp_svc_connection_interface_presence_get_presence_impl": "callback", "tp_svc_connection_interface_presence_get_statuses_impl": "callback", "tp_svc_connection_interface_presence_remove_status_impl": "callback", "tp_svc_connection_interface_presence_request_presence_impl": "callback", "tp_svc_connection_interface_presence_set_last_activity_time_impl": "callback", "tp_svc_connection_interface_presence_set_status_impl": "callback", "tp_svc_connection_interface_requests_create_channel_impl": "callback", "tp_svc_connection_interface_requests_ensure_channel_impl": "callback", "tp_svc_connection_interface_simple_presence_set_presence_impl": "callback", "tp_svc_connection_interface_simple_presence_get_presences_impl": "callback", "tp_svc_connection_manager_get_parameters_impl": "callback", "tp_svc_connection_manager_list_protocols_impl": "callback", "tp_svc_connection_manager_request_connection_impl": "callback", "tp_svc_channel_interface_group_remove_members_impl": "callback", "tp_svc_channel_interface_group_get_group_flags_impl": "callback", "tp_svc_channel_type_dbus_tube_offer_impl": "callback", "tp_svc_channel_type_text_send_impl": "callback", "tp_svc_channel_type_text_acknowledge_pending_messages_impl": "callback", "tp_svc_channel_type_text_list_pending_messages_impl": "callback", "tp_svc_media_stream_handler_stream_state_impl": "callback", "tp_svc_channel_dispatch_operation_claim_impl": "callback", "tp_svc_channel_interface_password_get_password_flags_impl": "callback", "tp_svc_media_stream_handler_native_candidates_prepared_impl": "callback", "tp_svc_channel_type_room_list_list_rooms_impl": "callback", "tp_cli_media_stream_handler_signal_callback_set_stream_sending": "callback", "tp_svc_media_session_handler_error_impl": "callback", "tp_svc_channel_interface_messages_get_pending_message_content_impl": "callback", "tp_svc_channel_type_file_transfer_provide_file_impl": "callback", "tp_svc_channel_type_file_transfer_provide_file_impl": "callback", "tp_svc_media_stream_handler_new_native_candidate_impl": "callback", "tp_svc_channel_interface_hold_get_hold_state_impl": "callback", "tp_cli_media_stream_handler_signal_callback_stop_telephony_event": "callback", "tp_svc_channel_type_room_list_stop_listing_impl": "callback", "tp_svc_channel_interface_password_provide_password_impl": "callback", "tp_svc_channel_interface_group_get_members_impl": "callback", "tp_svc_channel_type_tubes_list_tubes_impl": "callback", "tp_svc_channel_type_tubes_get_available_stream_tube_types_impl": "callback", "tp_svc_channel_dispatcher_ensure_channel_impl": "callback", "tp_svc_channel_request_proceed_impl": "callback", "tp_svc_channel_type_tubes_get_d_bus_tube_address_impl": "callback", "tp_svc_channel_get_interfaces_impl": "callback", "tp_svc_account_manager_create_account_impl": "callback", "tp_cli_media_stream_handler_signal_callback_set_active_candidate_pair": "callback", "tp_svc_channel_interface_group_get_self_handle_impl": "callback", "tp_cli_media_stream_handler_signal_callback_set_stream_held": "callback", "tp_svc_channel_interface_group_get_local_pending_members_impl": "callback", "tp_svc_channel_type_tubes_offer_stream_tube_impl": "callback", "tp_cli_media_stream_handler_signal_callback_set_remote_candidate_list": "callback", "tp_cli_media_session_handler_callback_for_error": "callback", "tp_svc_channel_interface_chat_state_set_chat_state_impl": "callback", "tp_svc_channel_type_dbus_tube_accept_impl": "callback", "tp_svc_channel_interface_group_get_remote_pending_members_impl": "callback", "tp_cli_media_stream_handler_signal_callback_set_stream_playing": "callback", "tp_svc_channel_type_tubes_get_available_tube_types_impl": "callback", "tp_svc_channel_type_text_get_message_types_impl": "callback", "tp_svc_channel_interface_group_add_members_impl": "callback", "tp_svc_channel_dispatcher_create_channel_impl": "callback", "tp_svc_media_stream_handler_error_impl": "callback", "tp_svc_media_stream_handler_new_active_candidate_pair_impl": "callback", "tp_cli_client_handler_callback_for_handle_channels": "callback", "tp_svc_channel_type_room_list_get_listing_rooms_impl": "callback", "tp_cli_media_stream_handler_callback_for_new_active_candidate_pair": "callback", "tp_svc_media_session_handler_ready_impl": "callback", "tp_cli_media_stream_handler_signal_callback_add_remote_candidate": "callback", "tp_svc_account_update_parameters_impl": "callback", "tp_svc_channel_dispatch_operation_handle_with_impl": "callback", "tp_cli_media_stream_handler_callback_for_codecs_updated": "callback", "tp_svc_channel_type_stream_tube_offer_impl": "callback", "tp_svc_channel_type_tubes_get_d_bus_names_impl": "callback", "tp_svc_channel_type_tubes_close_tube_impl": "callback", "tp_svc_debug_get_messages_impl": "callback", "tp_svc_channel_interface_call_state_get_call_states_impl": "callback", "tp_svc_channel_type_tubes_accept_d_bus_tube_impl": "callback", "tp_svc_media_stream_handler_codecs_updated_impl": "callback", "tp_cli_media_stream_handler_signal_callback_start_telephony_event": "callback", "tp_cli_client_interface_requests_callback_for_add_request": "callback", "tp_svc_channel_interface_group_get_local_pending_members_with_info_impl": "callback", "tp_cli_media_session_handler_signal_callback_new_stream_handler": "callback", "tp_svc_channel_type_stream_tube_accept_impl": "callback", "tp_cli_media_stream_handler_callback_for_error": "callback", "tp_svc_channel_type_file_transfer_accept_file_impl": "callback", "tp_svc_channel_close_impl": "callback", "tp_svc_channel_interface_hold_request_hold_impl": "callback", "tp_svc_channel_get_channel_type_impl": "callback", "tp_cli_media_session_handler_callback_for_ready": "callback", "tp_cli_media_stream_handler_signal_callback_remove_remote_candidate": "callback", "tp_svc_account_reconnect_impl": "callback", "tp_svc_channel_type_tubes_get_stream_tube_socket_address_impl": "callback", "tp_svc_media_stream_handler_ready_impl": "callback", "tp_cli_client_interface_requests_callback_for_remove_request": "callback", "tp_cli_client_approver_callback_for_add_dispatch_operation": "callback", "tp_svc_media_stream_handler_set_local_codecs_impl": "callback", "tp_svc_media_stream_handler_hold_state_impl": "callback", "tp_cli_media_stream_handler_callback_for_native_candidates_prepared": "callback", "tp_svc_channel_interface_destroyable_destroy_impl": "callback", "tp_cli_media_stream_handler_callback_for_new_native_candidate": "callback", "tp_svc_channel_interface_group_get_all_members_impl": "callback", "tp_svc_channel_interface_group_remove_members_with_reason_impl": "callback", "tp_svc_channel_interface_dtmf_stop_tone_impl": "callback", "TpGroupMixinAddMemberFunc": "callback", "TpGroupMixinRemMemberFunc": "callback", "tp_cli_media_stream_handler_callback_for_stream_state": "callback", "tp_svc_channel_interface_messages_send_message_impl": "callback", "tp_cli_media_stream_handler_callback_for_set_local_codecs": "callback", "tp_svc_channel_interface_media_signalling_get_session_handlers_impl": "callback", "tp_cli_media_stream_handler_signal_callback_close": "callback", "tp_cli_media_stream_handler_callback_for_ready": "callback", "tp_svc_channel_interface_dtmf_start_tone_impl": "callback", "tp_svc_channel_interface_group_get_handle_owners_impl": "callback", "tp_svc_channel_type_streamed_media_remove_streams_impl": "callback", "tp_svc_channel_get_handle_impl": "callback", "tp_svc_channel_type_streamed_media_request_stream_direction_impl": "callback", "tp_svc_channel_request_cancel_impl": "callback", "tp_cli_media_stream_handler_callback_for_unhold_failure": "callback", "tp_svc_channel_type_streamed_media_list_streams_impl": "callback", "tp_svc_account_remove_impl": "callback", "tp_svc_channel_type_tubes_accept_stream_tube_impl": "callback", "tp_svc_media_stream_handler_supported_codecs_impl": "callback", "tp_svc_media_stream_handler_unhold_failure_impl": "callback", "tp_svc_channel_type_streamed_media_request_streams_impl": "callback", "tp_svc_channel_type_tubes_offer_d_bus_tube_impl": "callback", "TpContactsMixinFillContactAttributesFunc": "callback", "TpGroupMixinRemMemberWithReasonFunc": "callback", "TpPropertiesSetFunc": "callback", "TpPropertyFlags": "flags", "TpChannelTextMessageFlags": "flags", "TpChannelFunc": "callback", "TpConnectionContactsByHandleCb": "callback", "TpProxyInterfaceAddedCb": "callback", "TpProxyInvokeFunc": "callback", "TpSimpleHandlerHandleChannelsImpl": "callback", "TpConnectionManagerWhenReadyCb": "callback", "TpExportableChannelFunc": "callback", "TpDBusDaemonListNamesCb": "callback", "TpIntFunc": "callback", "TpAccountChannelRequestDelegatedChannelCb": "callback", "TpSimpleApproverAddDispatchOperationImpl": "callback", "TpContactFeature": "enum", "TpChannelIface **": "p", # skip "TpChannelFactoryRequestStatus": "enum", # skip "TpDBusPropertiesMixinGetter": "callback", "TpDBusPropertiesMixinSetter": "callback", "TpRCPTXRRTTMode": "enum", "TpRTCPXRStatisticsFlags": "flags", "TpChannelTextMessageType": "enum", "TpError": "enum", "TpBaseClientClassAddDispatchOperationImpl": "callback", "TpSocketAddressType": "enum", "TpChannelGroupChangeReason": "enum", "TpMessageSendingFlags": "flags", "TpLocalHoldState": "enum", "TpLocalHoldStateReason": "enum", "TpDTMFEvent": "enum", "TpSubscriptionState": "enum", "TpConnectionRequestHandlesCb": "callback", "TpHandleSetMemberFunc": "callback", "TpConnectionNameListCb": "callback", "TpConnectionUpgradeContactsCb": "callback", "TpDBusNameType": "flags", "TpStreamTransportType": "enum", "TpConnectionHoldHandlesCb": "callback", "TpBaseClientClassHandleChannelsImpl": "callback", "TpChannelWhenReadyCb": "callback", "TpFileTransferState": "enum", "TpChannelManagerChannelClassFunc": "callback", "TpPresenceMixinStatusAvailableFunc": "callback", "TpPresenceMixinGetContactStatusesFunc": "callback", "TpPresenceMixinSetOwnStatusFunc": "callback", "TpConnectionContactsByIdCb": "callback", "TpCMInfoSource": "enum", "TpDeliveryReportingSupportFlags": "flags", # GData "GDataQueryProgressCallback": "callback", "GDataYouTubeStandardFeedType": "enum", "GDataMediaMedium": "enum", "GDataYouTubeUploader": "enum", "GDataBatchOperationCallback": "callback", "GDataPicasaWebVisibility": "enum", "GDataYouTubeSortOrder": "enum", "GDataGDWhen **": "p", "GDataYouTubePermission": "enum", "GDataYouTubeFormat": "enum", "GDataMediaExpression": "enum", "GDataYouTubeAge": "enum", "GDataYouTubeSafeSearch": "enum", # OpenSSL "LHASH **": "P", "STACK **": "P", "CRYPTO_EX_new": "callbacki", "ASN1_OBJECT **": "p", "struct stack_st_X509_ATTRIBUTE **": "p", "X509_ATTRIBUTE **": "p", "X509_REVOKED **": "p", "X509_EXTENSION **": "p", "X509_NAME_ENTRY **": "p", "X509_NAME **": "p", "X509_POLICY_TREE **": "p", "X509_ALGOR **": "p", "X509_PUBKEY **": "p", "struct stack_st_X509_EXTENSION **": "p", "X509 **": "p", "struct lhash_st_ERR_STATE **": "p", "asn1_ps_func": "callbacki", "BIO **": "p", "EVP_PKEY_CTX **": "p", "EVP_PBE_KEYGEN": "callbacki", "ENGINE **": "p", "EVP_PKEY_gen_cb": "callbacki", "EVP_PKEY **": "p", "unsigned char **": "p", "d2i_of_void": "callbacki", "i2d_of_void": "callbacki", "pem_password_cb": "callbacki", "DH **": "p", "DSA **": "p", "EC_GROUP **": "p", "EC_KEY **": "p", "NETSCAPE_CERT_SEQUENCE **": "p", "PKCS7 **": "p", "X509_SIG **": "p", "PKCS8_PRIV_KEY_INFO **": "p", "RSA **": "p", "X509_CERT_PAIR **": "p", "X509_CRL **": "p", "X509_REQ **": "p", "DES_cblock": "p", # actually chararray[8] "const_DES_cblock": "p", # actually chararray[8] "BIGNUM **": "p", "GEN_SESSION_CB": "callback", "tls_session_secret_cb_fn": "callback", "tls_session_ticket_ext_cb_fn": "callback", "struct stack_st_PKCS12_SAFEBAG **": "p", "struct stack_st_PKCS7 **": "p", "struct stack_st_X509 **": "p", "unsigned char ***": "p", "TS_serial_cb": "callback", "TS_extension_cb": "callback", "TS_time_cb": "callback", "DSO_FUNC_TYPE": "p", "DSO_NAME_CONVERTER_FUNC": "callback", "ASN1_OCTET_STRING **": "p", "ASN1_INTEGER **": "p", "ASN1_GENERALIZEDTIME **": "p", "OCSP_RESPONSE **": "p", # GSL "const gsl_complex_float": "ff", "const gsl_complex": "dd", # Readline "rl_command_func_t": "callback", "enum undo_code": "enum", "rl_vcpfunc_t": "callback", "rl_compentry_func_t": "callback", "Keymap": "p", # ugh. # Readline History "histdata_t": "p", "HIST_ENTRY **": "p", } def getType(t): t = t.strip() m = mapping.get(t) if m: while m and len(m) > 1: m = mapping.get(m) if m: return(m) else: if t.startswith("LP") or t.count("*") == 1: return("p") print >>sys.stderr, "warning: unknown: %r" % (t,) return "?" def getRetType(t): r = getType(t) if r == "p": # be forgiving in what you accept. r = "P" if r == "P" and (t == "char *" or t == "const char *"): r = "S" return(r) def getTypeExceptVoid(t): v = getType(t) if v == "v": return("") else: return(v) auxes = parseAux("prototypes") defFileKind = None if len(sys.argv) > 4: defFileKind = sys.argv[4] overrideFileName = None if len(sys.argv) > 5: overrideFileName = sys.argv[5] #defFile = open(defFileName, "r") if defFileName else None prefix = sys.argv[3] shorten = defparser.shorten symbols = [s.strip() for s in open(sys.argv[1], "r").readlines() if s.startswith(prefix)] shlib = sys.argv[2] cc = "C" if shlib.upper().find(".DLL") > -1 and shlib.upper().find("MSVCR") == -1: cc = "P" mapping["wchar_t"] = "h" else: mapping["wchar_t"] = "i4" print("export let filename := \"%s\" in" % (shlib, )) print("let (,) := (requireModule \"Pair\").(,) in") #print("let RootObject := (requireModule \"OO\").Object in ") if defFileKind and defFileKind.startswith("g:"): n = defFileKind[len("g:"):] module_objects, object_to_module = defparser.load_module_objects(n) c_functions_objects = defparser.get_objects_of_methods(module_objects, set(symbols), auxes) global_symbols = set(defparser.get_unknown_methods(c_functions_objects)) else: global_symbols = set(symbols) for name in symbols: aux = auxes.get(name) if aux is None: print >>sys.stderr, ("%s unknown (not found in file \"prototypes\")" % name) #sys.exit(1) else: if aux.find("...") != -1: continue parts = aux.split("(") retname = parts[0].strip() i = retname.rfind(" ") assert(i != -1) if retname.rfind("*") != -1 and retname.rfind("*") > i: i = retname.rfind("*") name = retname[i + 1 : ].strip() ret = retname[ : i + 1].strip() params = parts[1].rstrip() if params.endswith(");"): params = params[:-2].strip() if name in global_symbols: ex = "export " else: ex = "" ptypes = "".join(map(getTypeExceptVoid, params.split(", "))) if name.find("_set_") and ptypes == "pp": # GTK setters can handle nil as the second argument. ptypes = "pP" result = ("%slet %s! := ((requireModule \"FFI\").requireSharedLibrary filename '%s%s%s \"%s\") in " % (ex, shorten(prefix, name), cc, getRetType(ret), ptypes, name)) if result.find("?") != -1: print >>sys.stderr, ("%s error in %s" % (name, result)) sys.exit(1) print(result) if overrideFileName: f = open(overrideFileName, "r") s = f.read() f.close() print s if defFileKind and defFileKind.startswith("g:"): defparser.emit_module_wrapper(prefix, n, module_objects, object_to_module, c_functions_objects)