1 /**************************************************************************
5 Copyright (c) 2013 Samsung Electronics Co., Ltd All Rights Reserved
7 Contact: Boram Park <boram1288.park@samsung.com>
8 Sangjin LEE <lsj119@samsung.com>
10 Permission is hereby granted, free of charge, to any person obtaining a
11 copy of this software and associated documentation files (the
12 "Software"), to deal in the Software without restriction, including
13 without limitation the rights to use, copy, modify, merge, publish,
14 distribute, sub license, and/or sell copies of the Software, and to
15 permit persons to whom the Software is furnished to do so, subject to
16 the following conditions:
18 The above copyright notice and this permission notice (including the
19 next paragraph) shall be included in all copies or substantial portions
22 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
23 OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.
25 IN NO EVENT SHALL PRECISION INSIGHT AND/OR ITS SUPPLIERS BE LIABLE FOR
26 ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
27 TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
28 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
30 **************************************************************************/
39 #include <sys/types.h>
40 #include <sys/fcntl.h>
51 #include <X11/Xatom.h>
53 #include <windowstr.h>
55 #include <X11/extensions/XShm.h>
56 #include <X11/extensions/dpms.h>
57 #include <X11/extensions/sync.h>
58 #include <X11/extensions/xtestext1.h>
59 #include <X11/extensions/XTest.h>
60 #include <X11/Xlibint.h>
62 #include <X11/extensions/dpmsproto.h>
63 #include <X11/extensions/shmproto.h>
64 #include <X11/extensions/syncproto.h>
65 #include <X11/extensions/xtestext1proto.h>
66 #include <X11/extensions/xtestproto.h>
68 #include "xdbg_types.h"
69 #include "xdbg_evlog_xext.h"
70 #include "xdbg_evlog.h"
73 _EvlogRequestXextDpms(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
75 xReq *req = evinfo->req.ptr;
79 case X_DPMSSetTimeouts:
81 xDPMSSetTimeoutsReq *stuff = (xDPMSSetTimeoutsReq *)req;
82 REPLY (": Standby(%d) Suspend(%d) off(%d)",
90 case X_DPMSForceLevel:
92 xDPMSForceLevelReq *stuff = (xDPMSForceLevelReq *)req;
108 _EvlogRequestXextShm (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
110 xReq *req = evinfo->req.ptr;
116 xShmPutImageReq *stuff = (xShmPutImageReq *)req;
117 REPLY (": XID(0x%lx) gc(0x%lx) size(%dx%d) src(%d,%d %dx%d) dst(%d,%d)",
129 if (detail_level >= EVLOG_PRINT_DETAIL)
134 switch (stuff->format)
136 case XYBitmap: format = "XYBitmap"; break;
137 case XYPixmap: format = "XYPixmap"; break;
138 case ZPixmap: format = "ZPixmap"; break;
139 default: format = dformat; snprintf (dformat, 10, "%d", stuff->format); break;
143 REPLY ("%67s depth(%d) format(%s) send_event(%s) shmseg(0x%lx) offset(%ld)",
147 stuff->sendEvent ? "YES" : "NO",
157 xShmGetImageReq *stuff = (xShmGetImageReq *)req;
158 REPLY (": XID(0x%lx) size(%dx%d) coord(%d,%d)",
165 if (detail_level >= EVLOG_PRINT_DETAIL)
170 switch (stuff->format)
172 case XYBitmap: format = "XYBitmap"; break;
173 case XYPixmap: format = "XYPixmap"; break;
174 case ZPixmap: format = "ZPixmap"; break;
175 default: format = dformat; snprintf (dformat, 10, "%d", stuff->format); break;
179 REPLY ("%67s format(%s) plain_mask(0x%lx) shmseg(0x%lx) offset(%ld)",
190 case X_ShmCreatePixmap:
192 xShmCreatePixmapReq *stuff = (xShmCreatePixmapReq *)req;
193 REPLY (": Pixmap(0x%lx) Drawable(0x%lx) size(%dx%d)",
199 if (detail_level >= EVLOG_PRINT_DETAIL)
202 REPLY ("%67s depth(%d) shmseg(0x%lx) offset(%ld)",
220 _EvlogRequestXextSync(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
222 xReq *req = evinfo->req.ptr;
226 case X_SyncCreateCounter:
228 xSyncCreateCounterReq *stuff = (xSyncCreateCounterReq *)req;
229 REPLY (": XID(0x%lx) initValue(%ld/%ld)",
231 stuff->initial_value_hi,
232 stuff->initial_value_lo);
237 case X_SyncSetCounter:
239 xSyncSetCounterReq *stuff = (xSyncSetCounterReq *)req;
240 REPLY (": XID(0x%lx) Value(%ld/%ld)",
248 case X_SyncChangeCounter:
250 xSyncChangeCounterReq *stuff = (xSyncChangeCounterReq *)req;
251 REPLY (": XID(0x%lx) Value(%ld/%ld)",
259 case X_SyncQueryCounter:
261 xSyncQueryCounterReq *stuff = (xSyncQueryCounterReq *)req;
262 REPLY (": XID(0x%lx)",
268 case X_SyncDestroyCounter:
270 xSyncDestroyCounterReq *stuff = (xSyncDestroyCounterReq *)req;
271 REPLY (": XID(0x%lx)",
279 xSyncAwaitReq *stuff = (xSyncAwaitReq*)req;
280 xSyncWaitCondition *pProtocolWaitConds;
282 pProtocolWaitConds = (xSyncWaitCondition *) &stuff[1];
283 REPLY (": XID(0x%lx) VType:%d TType:%d Value(%d/%d)",
284 pProtocolWaitConds->counter,
285 (unsigned int)pProtocolWaitConds->value_type,
286 (unsigned int)pProtocolWaitConds->test_type,
287 (unsigned int)pProtocolWaitConds->wait_value_hi,
288 (unsigned int)pProtocolWaitConds->wait_value_lo);
299 _EvlogRequestXextXtestExt1(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
301 xReq *req = evinfo->req.ptr;
305 case X_TestFakeInput:
307 xTestFakeInputReq *stuff = (xTestFakeInputReq *)req;
308 REPLY (": XID(0x%lx)",
316 xTestGetInputReq *stuff = (xTestGetInputReq *)req;
317 REPLY (": XID(0x%lx)",
332 _EvlogRequestXextXtest(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
334 xReq *req = evinfo->req.ptr;
338 case X_XTestGetVersion:
340 xXTestGetVersionReq *stuff = (xXTestGetVersionReq *)req;
341 REPLY (": MajorVersion(%d) MinorVersion(%d)",
343 stuff->minorVersion);
348 case X_XTestCompareCursor:
350 xXTestCompareCursorReq *stuff = (xXTestCompareCursorReq *)req;
351 REPLY (": XID(0x%lx) Cursor(0x%lx)",
358 case X_XTestFakeInput:
360 xXTestFakeInputReq *stuff = (xXTestFakeInputReq *)req;
361 REPLY (": XID(0x%lx) coord(%d,%d)",
366 if (detail_level >= EVLOG_PRINT_DETAIL)
368 REPLY (" type(%d) detail(%d) time(%lums) device_id(%d)",
383 _EvlogRequestXextShape(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
385 xReq *req = evinfo->req.ptr;
389 case X_ShapeRectangles:
391 xShapeRectanglesReq *stuff = (xShapeRectanglesReq *)req;
392 REPLY (": XID(0x%lx) coord(%d,%d)",
397 if (detail_level >= EVLOG_PRINT_DETAIL)
402 const char *destKind, *ordering;
403 char ddestKind[10], dordering[10];
405 switch (stuff->destKind)
407 case ShapeBounding: destKind = "ShapeBounding"; break;
408 case ShapeClip: destKind = "ShapeClip"; break;
409 case ShapeInput: destKind = "ShapeInput"; break;
410 default: destKind = ddestKind; snprintf (ddestKind, 10, "%d", stuff->destKind); break;
413 switch (stuff->ordering)
415 case Unsorted: ordering = "Unsorted"; break;
416 case YSorted: ordering = "YSorted"; break;
417 case YXSorted: ordering = "YXSorted"; break;
418 case YXBanded: ordering = "YXBanded"; break;
419 default: ordering = dordering; snprintf (dordering, 10, "%d", stuff->ordering); break;
422 nrect = ((stuff->length * 4) - sizeof(xShapeRectanglesReq)) / sizeof(xRectangle);
423 prect = (xRectangle *) &stuff[1];
425 REPLY (" op(%d) destKind(%s) ordering(%s) nrect(%d)",
432 REPLY ("%67s Region", " ");
435 for (i = 0 ; i < nrect ; i++)
437 REPLY("[%d,%d %dx%d]",
455 xShapeMaskReq *stuff = (xShapeMaskReq *)req;
456 REPLY (": XID(0x%lx) coord(%d,%d) src(0x%lx)",
462 if (detail_level >= EVLOG_PRINT_DETAIL)
464 const char *destKind;
467 switch (stuff->destKind)
469 case ShapeBounding: destKind = "ShapeBounding"; break;
470 case ShapeClip: destKind = "ShapeClip"; break;
471 case ShapeInput: destKind = "ShapeInput"; break;
472 default: destKind = ddestKind; snprintf (ddestKind, 10, "%d", stuff->destKind); break;
475 REPLY (" op(%d) destKind(%s)",
485 xShapeCombineReq *stuff = (xShapeCombineReq *)req;
486 REPLY (": XID(0x%lx) coord(%d,%d) src(0x%lx)",
492 if (detail_level >= EVLOG_PRINT_DETAIL)
494 const char *destKind, *srcKind;
495 char ddestKind[10], dsrcKind[10];
497 switch (stuff->destKind)
499 case ShapeBounding: destKind = "ShapeBounding"; break;
500 case ShapeClip: destKind = "ShapeClip"; break;
501 case ShapeInput: destKind = "ShapeInput"; break;
502 default: destKind = ddestKind; snprintf (ddestKind, 10, "%d", stuff->destKind); break;
505 switch (stuff->srcKind)
507 case ShapeBounding: srcKind = "ShapeBounding"; break;
508 case ShapeClip: srcKind = "ShapeClip"; break;
509 case ShapeInput: srcKind = "ShapeInput"; break;
510 default: srcKind = dsrcKind; snprintf (dsrcKind, 10, "%d", stuff->srcKind); break;
513 REPLY (" op(%d) destKind(%s) srcKind(%s)",
524 xShapeOffsetReq *stuff = (xShapeOffsetReq *)req;
525 REPLY (": XID(0x%lx) coord(%d,%d)",
530 if (detail_level >= EVLOG_PRINT_DETAIL)
532 const char *destKind;
535 switch (stuff->destKind)
537 case ShapeBounding: destKind = "ShapeBounding"; break;
538 case ShapeClip: destKind = "ShapeClip"; break;
539 case ShapeInput: destKind = "ShapeInput"; break;
540 default: destKind = ddestKind; snprintf (ddestKind, 10, "%d", stuff->destKind); break;
543 REPLY (" destKind(%s)",
550 case X_ShapeQueryExtents:
552 xShapeQueryExtentsReq *stuff = (xShapeQueryExtentsReq *)req;
553 REPLY (": XID(0x%lx)",
559 case X_ShapeSelectInput:
561 xShapeSelectInputReq *stuff = (xShapeSelectInputReq *)req;
562 REPLY (": XID(0x%lx)",
565 if (detail_level >= EVLOG_PRINT_DETAIL)
567 REPLY (" enable(%s)",
568 stuff->enable ? "YES" : "NO");
574 case X_ShapeInputSelected:
576 xShapeInputSelectedReq *stuff = (xShapeInputSelectedReq *)req;
577 REPLY (": XID(0x%lx)",
583 case X_ShapeGetRectangles:
585 xShapeGetRectanglesReq *stuff = (xShapeGetRectanglesReq *)req;
586 REPLY (": XID(0x%lx)",
589 if (detail_level >= EVLOG_PRINT_DETAIL)
596 case ShapeBounding: kind = "ShapeBounding"; break;
597 case ShapeClip: kind = "ShapeClip"; break;
598 case ShapeInput: kind = "ShapeInput"; break;
599 default: kind = dkind; snprintf (dkind, 10, "%d", stuff->kind); break;
617 _EvlogEventXextDpms (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
620 xEvent *evt = evinfo->evt.ptr;
622 switch ((evt->u.u.type & 0x7F) - first_base)
634 _EvlogEventXextShm (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
636 xEvent *evt = evinfo->evt.ptr;
638 switch ((evt->u.u.type & 0x7F) - first_base)
642 xShmCompletionEvent *stuff = (xShmCompletionEvent *) evt;
643 REPLY (": XID(0x%lx)",
646 if (detail_level >= EVLOG_PRINT_DETAIL)
648 REPLY (" sequence_num(%d) major_event(%d) minor_event(%d) shmseg(0x%lx) offset(%ld)",
649 stuff->sequenceNumber,
667 _EvlogEventXextSync (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
669 xEvent *evt = evinfo->evt.ptr;
671 switch ((evt->u.u.type & 0x7F) - first_base)
673 case XSyncCounterNotify:
675 xSyncCounterNotifyEvent *stuff = (xSyncCounterNotifyEvent *) evt;
676 REPLY (": XID(0x%lx) WaitValue(0x%lx/0x%lx) CounterValue(0x%lx/0x%lx)",
678 stuff->wait_value_hi,
679 stuff->wait_value_lo,
680 stuff->counter_value_hi,
681 stuff->counter_value_lo);
683 if (detail_level >= EVLOG_PRINT_DETAIL)
686 REPLY ("%67s sequence_num(%d) time(%lums) count(%d) destroyed(%s)",
688 stuff->sequenceNumber,
691 stuff->destroyed ? "YES" : "NO");
697 case XSyncAlarmNotify:
699 xSyncAlarmNotifyEvent *stuff = (xSyncAlarmNotifyEvent *) evt;
700 REPLY (": XID(0x%lx) CounterValue(0x%lx/0x%lx) AlarmValue(0x%lx/0x%lx)",
702 stuff->counter_value_hi,
703 stuff->counter_value_lo,
704 stuff->alarm_value_hi,
705 stuff->alarm_value_lo);
707 if (detail_level >= EVLOG_PRINT_DETAIL)
710 REPLY ("%67s sequence_num(%d) time(%lums) state(%d)",
712 stuff->sequenceNumber,
729 _EvlogEventXextXtestExt1 (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
731 xEvent *evt = evinfo->evt.ptr;
733 switch ((evt->u.u.type & 0x7F) - first_base)
744 _EvlogEventXextXtest (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
746 xEvent *evt = evinfo->evt.ptr;
748 switch ((evt->u.u.type & 0x7F) - first_base)
759 _EvlogEventXextShape (EvlogInfo *evinfo, int first_base, int detail_level, char *reply, int *len)
761 xEvent *evt = evinfo->evt.ptr;
763 switch ((evt->u.u.type & 0x7F) - first_base)
767 xShapeNotifyEvent *stuff = (xShapeNotifyEvent *) evt;
768 REPLY (": XID(0x%lx) coord(%d,%d %dx%d)",
775 if (detail_level >= EVLOG_PRINT_DETAIL)
782 case ShapeBounding: kind = "ShapeBounding"; break;
783 case ShapeClip: kind = "ShapeClip"; break;
784 case ShapeInput: kind = "ShapeInput"; break;
785 default: kind = dkind; snprintf (dkind, 10, "%d", stuff->kind); break;
790 REPLY ("%67s kind(%s) sequence_num(%d) time(%lums) shaped(%s)",
793 stuff->sequenceNumber,
795 stuff->shaped ? "EXIST" : "NON_EXIST");
809 _EvlogReplyXextDpms (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
811 xGenericReply *rep = evinfo->rep.ptr;
813 switch (evinfo->rep.reqData)
815 case X_DPMSSetTimeouts:
817 if (evinfo->rep.isStart)
819 xDPMSGetTimeoutsReply *stuff = (xDPMSGetTimeoutsReply *)rep;
820 REPLY (": Standby(%usec) Suspend(%usec) off(%usec) sequence_num(%d)",
824 stuff->sequenceNumber);
842 _EvlogReplyXextShm (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
844 xGenericReply *rep = evinfo->rep.ptr;
846 switch (evinfo->rep.reqData)
850 if (evinfo->rep.isStart)
852 xShmGetImageReply *stuff = (xShmGetImageReply *)rep;
853 REPLY (": Visual(0x%lx) size(%ld) sequence_num(%d)",
856 stuff->sequenceNumber);
874 _EvlogReplyXextSync (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
876 xGenericReply *rep = evinfo->rep.ptr;
878 switch (evinfo->rep.reqData)
880 case X_SyncQueryCounter:
882 if (evinfo->rep.isStart)
884 xSyncQueryCounterReply *stuff = (xSyncQueryCounterReply *)rep;
885 REPLY (": Value(%ld/%ld) sequence_num(%d)",
888 stuff->sequenceNumber);
906 _EvlogReplyXextXtestExt1 (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
908 xGenericReply *rep = evinfo->rep.ptr;
910 switch (evinfo->rep.reqData)
912 case X_TestQueryInputSize:
914 if (evinfo->rep.isStart)
916 xTestQueryInputSizeReply *stuff = (xTestQueryInputSizeReply *)rep;
917 REPLY (": sizeReturn(0x%lx) sequence_num(%d)",
919 stuff->sequenceNumber);
937 _EvlogReplyXextXtest (EvlogInfo *evinfo, int detail_level, char *reply, int *len)
939 xGenericReply *rep = evinfo->rep.ptr;
941 switch (evinfo->rep.reqData)
943 case X_XTestGetVersion:
945 if (evinfo->rep.isStart)
947 xXTestGetVersionReply *stuff = (xXTestGetVersionReply *)rep;
948 REPLY (": MinorVersion(%d) sequence_num(%d)",
950 stuff->sequenceNumber);
968 _EvlogReplyXextShape(EvlogInfo *evinfo, int detail_level, char *reply, int *len)
970 xGenericReply *rep = evinfo->rep.ptr;
972 switch (evinfo->rep.reqData)
974 case X_ShapeQueryVersion:
976 if (evinfo->rep.isStart)
978 xShapeQueryVersionReply *stuff = (xShapeQueryVersionReply *)rep;
979 REPLY (": MajorVersion(%d) MinorVersion(%d)",
981 stuff->minorVersion);
991 case X_ShapeQueryExtents:
993 if (evinfo->rep.isStart)
995 xShapeQueryExtentsReply *stuff = (xShapeQueryExtentsReply *)rep;
997 REPLY (": bounding_shaped(%s)",
998 stuff->boundingShaped ? "YES" : "NO");
1000 if (stuff->boundingShaped)
1001 REPLY (" bounding(%d,%d %dx%d)",
1004 stuff->widthClipShape,
1005 stuff->heightClipShape);
1007 REPLY (" bounding(None)");
1010 REPLY (" clip_shaped(%s)",
1011 stuff->clipShaped ? "YES" : "NO");
1013 if (stuff->boundingShaped)
1014 REPLY (" clip(%d,%d %dx%d)",
1015 stuff->xBoundingShape,
1016 stuff->yBoundingShape,
1017 stuff->widthBoundingShape,
1018 stuff->heightBoundingShape);
1020 REPLY (" clip(None)");
1031 case X_ShapeInputSelected:
1033 if (evinfo->rep.isStart)
1035 xShapeInputSelectedReply *stuff = (xShapeInputSelectedReply *)rep;
1037 REPLY (" enable(%s)",
1038 stuff->enabled ? "YES" : "NO");
1048 case X_ShapeGetRectangles:
1050 if (evinfo->rep.isStart)
1052 xShapeGetRectanglesReply *stuff = (xShapeGetRectanglesReply *)rep;
1054 const char *ordering;
1057 switch (stuff->ordering)
1059 case Unsorted: ordering = "Unsorted"; break;
1060 case YSorted: ordering = "YSorted"; break;
1061 case YXSorted: ordering = "YXSorted"; break;
1062 case YXBanded: ordering = "YXBanded"; break;
1063 default: ordering = dordering; snprintf (dordering, 10, "%d", stuff->ordering); break;
1065 REPLY (": ordering(%s) nrects(%ld)",
1071 xRectangle *stuff = (xRectangle *)rep;
1076 for (i = 0 ; i < evinfo->rep.size / sizeof(xRectangle) ; i ++)
1078 REPLY ("[%d,%d %dx%d]",
1084 if(i != evinfo->rep.size / sizeof(xRectangle) - 1)
1103 xDbgEvlogXextDpmsGetBase (ExtensionInfo *extinfo)
1106 RETURN_IF_FAIL (extinfo != NULL);
1108 extinfo->req_func = _EvlogRequestXextDpms;
1109 extinfo->evt_func = _EvlogEventXextDpms;
1110 extinfo->rep_func = _EvlogReplyXextDpms;
1112 ExtensionEntry *xext = CheckExtension (DPMSExtensionName);
1113 RETURN_IF_FAIL (xext != NULL);
1114 RETURN_IF_FAIL (extinfo != NULL);
1116 extinfo->opcode = xext->base;
1117 extinfo->evt_base = xext->eventBase;
1118 extinfo->err_base = xext->errorBase;
1119 extinfo->req_func = _EvlogRequestXextDpms;
1120 extinfo->evt_func = _EvlogEventXextDpms;
1121 extinfo->rep_func = _EvlogReplyXextDpms;
1127 xDbgEvlogXextShmGetBase (ExtensionInfo *extinfo)
1130 RETURN_IF_FAIL (extinfo != NULL);
1132 extinfo->req_func = _EvlogRequestXextShm;
1133 extinfo->evt_func = _EvlogEventXextShm;
1134 extinfo->rep_func = _EvlogReplyXextShm;
1136 ExtensionEntry *xext = CheckExtension (SHMNAME);
1137 RETURN_IF_FAIL (xext != NULL);
1138 RETURN_IF_FAIL (extinfo != NULL);
1140 extinfo->opcode = xext->base;
1141 extinfo->evt_base = xext->eventBase;
1142 extinfo->err_base = xext->errorBase;
1143 extinfo->req_func = _EvlogRequestXextShm;
1144 extinfo->evt_func = _EvlogEventXextShm;
1145 extinfo->rep_func = _EvlogReplyXextShm;
1151 xDbgEvlogXextSyncGetBase (ExtensionInfo *extinfo)
1154 RETURN_IF_FAIL (extinfo != NULL);
1156 extinfo->req_func = _EvlogRequestXextSync;
1157 extinfo->evt_func = _EvlogEventXextSync;
1158 extinfo->rep_func = _EvlogReplyXextSync;
1160 ExtensionEntry *xext = CheckExtension (SYNC_NAME);
1161 RETURN_IF_FAIL (xext != NULL);
1162 RETURN_IF_FAIL (extinfo != NULL);
1164 extinfo->opcode = xext->base;
1165 extinfo->evt_base = xext->eventBase;
1166 extinfo->err_base = xext->errorBase;
1167 extinfo->req_func = _EvlogRequestXextSync;
1168 extinfo->evt_func = _EvlogEventXextSync;
1169 extinfo->rep_func = _EvlogReplyXextSync;
1176 xDbgEvlogXextXtestExt1GetBase (ExtensionInfo *extinfo)
1179 RETURN_IF_FAIL (extinfo != NULL);
1181 extinfo->req_func = _EvlogRequestXextXtestExt1;
1182 extinfo->evt_func = _EvlogEventXextXtestExt1;
1183 extinfo->rep_func = _EvlogReplyXextXtestExt1;
1185 ExtensionEntry *xext = CheckExtension (XTestEXTENSION_NAME);
1186 RETURN_IF_FAIL (xext != NULL);
1187 RETURN_IF_FAIL (extinfo != NULL);
1189 extinfo->opcode = xext->base;
1190 extinfo->evt_base = xext->eventBase;
1191 extinfo->err_base = xext->errorBase;
1192 extinfo->req_func = _EvlogRequestXextXtestExt1;
1193 extinfo->evt_func = _EvlogEventXextXtestExt1;
1194 extinfo->rep_func = _EvlogReplyXextXtestExt1;
1201 xDbgEvlogXextXtestGetBase (ExtensionInfo *extinfo)
1204 RETURN_IF_FAIL (extinfo != NULL);
1206 extinfo->req_func = _EvlogRequestXextXtest;
1207 extinfo->evt_func = _EvlogEventXextXtest;
1208 extinfo->rep_func = _EvlogReplyXextXtest;
1210 ExtensionEntry *xext = CheckExtension (XTestExtensionName);
1211 RETURN_IF_FAIL (xext != NULL);
1212 RETURN_IF_FAIL (extinfo != NULL);
1214 extinfo->opcode = xext->base;
1215 extinfo->evt_base = xext->eventBase;
1216 extinfo->err_base = xext->errorBase;
1217 extinfo->req_func = _EvlogRequestXextXtest;
1218 extinfo->evt_func = _EvlogEventXextXtest;
1219 extinfo->rep_func = _EvlogReplyXextXtest;
1224 xDbgEvlogXextShapeGetBase (ExtensionInfo *extinfo)
1227 RETURN_IF_FAIL (extinfo != NULL);
1229 extinfo->req_func = _EvlogRequestXextShape;
1230 extinfo->evt_func = _EvlogEventXextShape;
1231 extinfo->rep_func = _EvlogReplyXextShape;
1233 ExtensionEntry *xext = CheckExtension (SHAPENAME);
1234 RETURN_IF_FAIL (xext != NULL);
1235 RETURN_IF_FAIL (extinfo != NULL);
1237 extinfo->opcode = xext->base;
1238 extinfo->evt_base = xext->eventBase;
1239 extinfo->err_base = xext->errorBase;
1240 extinfo->req_func = _EvlogRequestXextShape;
1241 extinfo->evt_func = _EvlogEventXextShape;
1242 extinfo->rep_func = _EvlogReplyXextShape;