1*87f12216SVivek Kasireddy /* 2*87f12216SVivek Kasireddy * udmabuf helper functions. 3*87f12216SVivek Kasireddy * 4*87f12216SVivek Kasireddy * This work is licensed under the terms of the GNU GPL, version 2 or later. 5*87f12216SVivek Kasireddy * See the COPYING file in the top-level directory. 6*87f12216SVivek Kasireddy */ 7*87f12216SVivek Kasireddy #include "qemu/osdep.h" 8*87f12216SVivek Kasireddy #include "qapi/error.h" 9*87f12216SVivek Kasireddy #include "ui/console.h" 10*87f12216SVivek Kasireddy 11*87f12216SVivek Kasireddy #ifdef CONFIG_LINUX 12*87f12216SVivek Kasireddy 13*87f12216SVivek Kasireddy #include <fcntl.h> 14*87f12216SVivek Kasireddy #include <sys/ioctl.h> 15*87f12216SVivek Kasireddy 16*87f12216SVivek Kasireddy int udmabuf_fd(void) 17*87f12216SVivek Kasireddy { 18*87f12216SVivek Kasireddy static bool first = true; 19*87f12216SVivek Kasireddy static int udmabuf; 20*87f12216SVivek Kasireddy 21*87f12216SVivek Kasireddy if (!first) { 22*87f12216SVivek Kasireddy return udmabuf; 23*87f12216SVivek Kasireddy } 24*87f12216SVivek Kasireddy first = false; 25*87f12216SVivek Kasireddy 26*87f12216SVivek Kasireddy udmabuf = open("/dev/udmabuf", O_RDWR); 27*87f12216SVivek Kasireddy if (udmabuf < 0) { 28*87f12216SVivek Kasireddy warn_report("open /dev/udmabuf: %s", strerror(errno)); 29*87f12216SVivek Kasireddy } 30*87f12216SVivek Kasireddy return udmabuf; 31*87f12216SVivek Kasireddy } 32*87f12216SVivek Kasireddy 33*87f12216SVivek Kasireddy #else 34*87f12216SVivek Kasireddy 35*87f12216SVivek Kasireddy int udmabuf_fd(void) 36*87f12216SVivek Kasireddy { 37*87f12216SVivek Kasireddy return -1; 38*87f12216SVivek Kasireddy } 39*87f12216SVivek Kasireddy 40*87f12216SVivek Kasireddy #endif 41