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
|