summaryrefslogtreecommitdiff
path: root/usr/src/common/libdrm/patches/xf86drm-h.patch
blob: 3bba9401b1d133eabea02ac1fcefbc91cc36cad8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
# Copyright (c) 2006, 2015, Oracle and/or its affiliates. All rights reserved.
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the
# "Software"), to deal in the Software without restriction, including
# without limitation the rights to use, copy, modify, merge, publish,
# distribute, and/or sell copies of the Software, and to permit persons
# to whom the Software is furnished to do so, provided that the above
# copyright notice(s) and this permission notice appear in all copies of
# the Software and that both the above copyright notice(s) and this
# permission notice appear in supporting documentation.
# 
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
# OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR
# HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL
# INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING
# FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
# NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION
# WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
# 
# Except as contained in this notice, the name of a copyright holder
# shall not be used in advertising or otherwise to promote the sale, use
# or other dealings in this Software without prior written authorization
# of the copyright holder.

diff ... libdrm-2.4.74/xf86drm.h
--- libdrm-2.4.74-ref/xf86drm.h	Tue Nov 29 06:15:10 2016
+++ libdrm-2.4.74/xf86drm.h	Sat Dec 31 19:13:17 2016
@@ -472,6 +472,17 @@
 #endif /* architecture */
 #endif /* __GNUC__ >= 2 */
 
+#if defined(__SUNPRO_C)
+#include <atomic.h>
+#define atomic_cmpset_int(p, c, n) ((c == atomic_cas_uint(p, c, n)) ? 1 : 0)
+#define DRM_CAS(lock,old,new,__ret)          \
+               do {                          \
+                                       unsigned int __result, __old = (old);\
+                                       __result = !atomic_cmpset_int(lock,__old,new);\
+                                       __ret = __result;          \
+                               } while(0)
+#endif
+
 #ifndef DRM_CAS
 #define DRM_CAS(lock,old,new,ret) do { ret=1; } while (0) /* FAST LOCK FAILS */
 #endif
@@ -801,6 +812,17 @@
 extern int drmGetDevices(drmDevicePtr devices[], int max_devices);
 extern void drmFreeDevices(drmDevicePtr devices[], int count);
 
+#ifdef __sun
+extern int _sun_drm_get_major(void);
+extern char * _sun_drmGetMinorNameForFD(int fd, int type);
+extern int _sun_drmParseSubsystemType(int maj, int min);
+extern int _sun_drmParsePciBusInfo(int maj, int min, drmPciBusInfoPtr info);
+extern int _sun_drmParsePciDeviceInfo(const char *d_name,
+				 drmPciDeviceInfoPtr device);
+extern int _sun_drm_find_device(int min, char **pathp);
+extern int _sun_drm_get_pci_info(char *path, drmPciDeviceInfo *pcii);
+#endif /* __sun */
+
 #if defined(__cplusplus)
 }
 #endif