diff options
author | Jens Owen | 2002-04-09 16:54:56 -0500 |
---|---|---|
committer | Jens Owen | 2002-04-09 16:54:56 -0500 |
commit | 3903e5ac94c07cf31f0bc24eff5011ef8cc7afba (patch) | |
tree | 93515f920b8f69e9502a0a74396f10bfdd0c5a58 /libdrm/xf86drm.c | |
parent | a820c741374743065540546c92b1d5e1a2089225 (diff) | |
download | libdrm-3903e5ac94c07cf31f0bc24eff5011ef8cc7afba.tar.gz libdrm-3903e5ac94c07cf31f0bc24eff5011ef8cc7afba.tar.xz libdrm-3903e5ac94c07cf31f0bc24eff5011ef8cc7afba.zip |
Merged drmcommand-0-0-1
Diffstat (limited to 'libdrm/xf86drm.c')
-rw-r--r-- | libdrm/xf86drm.c | 74 |
1 files changed, 73 insertions, 1 deletions
diff --git a/libdrm/xf86drm.c b/libdrm/xf86drm.c index 1d26b6e6..9cc83a27 100644 --- a/libdrm/xf86drm.c +++ b/libdrm/xf86drm.c | |||
@@ -434,7 +434,7 @@ static void drmCopyVersion(drmVersionPtr d, const drm_version_t *s) | |||
434 | d->desc = drmStrdup(s->desc); | 434 | d->desc = drmStrdup(s->desc); |
435 | } | 435 | } |
436 | 436 | ||
437 | /* drmVersion obtains the version information via an ioctl. Similar | 437 | /* drmGet Version obtains the driver version information via an ioctl. Similar |
438 | * information is available via /proc/dri. */ | 438 | * information is available via /proc/dri. */ |
439 | 439 | ||
440 | drmVersionPtr drmGetVersion(int fd) | 440 | drmVersionPtr drmGetVersion(int fd) |
@@ -483,6 +483,26 @@ drmVersionPtr drmGetVersion(int fd) | |||
483 | return retval; | 483 | return retval; |
484 | } | 484 | } |
485 | 485 | ||
486 | /* drmGetLibVersion set version information for the drm user space library. | ||
487 | * this version number is driver indepedent */ | ||
488 | |||
489 | drmVersionPtr drmGetLibVersion(int fd) | ||
490 | { | ||
491 | drm_version_t *version = drmMalloc(sizeof(*version)); | ||
492 | |||
493 | /* Version history: | ||
494 | * revision 1.0.x = original DRM interface with no drmGetLibVersion | ||
495 | * entry point and many drm<Device> extensions | ||
496 | * revision 1.1.x = added drmCommand entry points for device extensions | ||
497 | * added drmGetLibVersion to identify libdrm.a version | ||
498 | */ | ||
499 | version->version_major = 1; | ||
500 | version->version_minor = 1; | ||
501 | version->version_patchlevel = 0; | ||
502 | |||
503 | return (drmVersionPtr)version; | ||
504 | } | ||
505 | |||
486 | void drmFreeBusid(const char *busid) | 506 | void drmFreeBusid(const char *busid) |
487 | { | 507 | { |
488 | drmFree((void *)busid); | 508 | drmFree((void *)busid); |
@@ -1343,6 +1363,58 @@ int drmGetStats(int fd, drmStatsT *stats) | |||
1343 | return 0; | 1363 | return 0; |
1344 | } | 1364 | } |
1345 | 1365 | ||
1366 | int drmCommandNone(int fd, unsigned long drmCommandIndex) | ||
1367 | { | ||
1368 | void *data = NULL; /* dummy */ | ||
1369 | unsigned long request; | ||
1370 | |||
1371 | request = DRM_IO( DRM_COMMAND_BASE + drmCommandIndex); | ||
1372 | |||
1373 | if (ioctl(fd, request, data)) { | ||
1374 | return -errno; | ||
1375 | } | ||
1376 | return 0; | ||
1377 | } | ||
1378 | |||
1379 | int drmCommandRead(int fd, unsigned long drmCommandIndex, | ||
1380 | void *data, unsigned long size ) | ||
1381 | { | ||
1382 | unsigned long request; | ||
1383 | |||
1384 | request = DRM_IOR( DRM_COMMAND_BASE + drmCommandIndex, size); | ||
1385 | |||
1386 | if (ioctl(fd, request, data)) { | ||
1387 | return -errno; | ||
1388 | } | ||
1389 | return 0; | ||
1390 | } | ||
1391 | |||
1392 | int drmCommandWrite(int fd, unsigned long drmCommandIndex, | ||
1393 | void *data, unsigned long size ) | ||
1394 | { | ||
1395 | unsigned long request; | ||
1396 | |||
1397 | request = DRM_IOW( DRM_COMMAND_BASE + drmCommandIndex, size); | ||
1398 | |||
1399 | if (ioctl(fd, request, data)) { | ||
1400 | return -errno; | ||
1401 | } | ||
1402 | return 0; | ||
1403 | } | ||
1404 | |||
1405 | int drmCommandWriteRead(int fd, unsigned long drmCommandIndex, | ||
1406 | void *data, unsigned long size ) | ||
1407 | { | ||
1408 | unsigned long request; | ||
1409 | |||
1410 | request = DRM_IOWR( DRM_COMMAND_BASE + drmCommandIndex, size); | ||
1411 | |||
1412 | if (ioctl(fd, request, data)) { | ||
1413 | return -errno; | ||
1414 | } | ||
1415 | return 0; | ||
1416 | } | ||
1417 | |||
1346 | #if defined(XFree86Server) || defined(DRM_USE_MALLOC) | 1418 | #if defined(XFree86Server) || defined(DRM_USE_MALLOC) |
1347 | static void drmSIGIOHandler(int interrupt, void *closure) | 1419 | static void drmSIGIOHandler(int interrupt, void *closure) |
1348 | { | 1420 | { |