summaryrefslogtreecommitdiff
path: root/src/xine-utils/xine_check.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/xine-utils/xine_check.c')
-rw-r--r--src/xine-utils/xine_check.c105
1 files changed, 52 insertions, 53 deletions
diff --git a/src/xine-utils/xine_check.c b/src/xine-utils/xine_check.c
index f00a23832..ad94b0382 100644
--- a/src/xine-utils/xine_check.c
+++ b/src/xine-utils/xine_check.c
@@ -44,7 +44,6 @@
#include <fcntl.h>
#include <unistd.h>
-#include "xine_check.h"
#include "xineutils.h"
#if defined(__linux__)
@@ -102,38 +101,7 @@ set_hc_result(xine_health_check_t* hc, int state, const char *format, ...)
#if defined(__linux__)
-xine_health_check_t* xine_health_check (xine_health_check_t* hc, int check_num) {
-
- switch(check_num) {
- case CHECK_KERNEL:
- hc = _x_health_check_kernel (hc);
- break;
- case CHECK_MTRR:
- hc = _x_health_check_mtrr (hc);
- break;
- case CHECK_CDROM:
- hc = _x_health_check_cdrom (hc);
- break;
- case CHECK_DVDROM:
- hc = _x_health_check_dvdrom (hc);
- break;
- case CHECK_DMA:
- hc = _x_health_check_dma (hc);
- break;
- case CHECK_X:
- hc = _x_health_check_x (hc);
- break;
- case CHECK_XV:
- hc = _x_health_check_xv (hc);
- break;
- default:
- hc->status = XINE_HEALTH_CHECK_NO_SUCH_CHECK;
- }
-
- return hc;
-}
-
-xine_health_check_t* _x_health_check_kernel (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_kernel (xine_health_check_t* hc) {
struct utsname kernel;
hc->title = "Check for kernel version";
@@ -146,14 +114,14 @@ xine_health_check_t* _x_health_check_kernel (xine_health_check_t* hc) {
hc->status = XINE_HEALTH_CHECK_OK;
}
else {
- set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
+ set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
"FAILED - Could not get kernel information.");
}
return hc;
}
#if defined(ARCH_X86) || defined(ARCH_X86_64)
-xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
FILE *fd;
hc->title = "Check for MTRR support";
@@ -161,7 +129,7 @@ xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
fd = fopen("/proc/mtrr", "r");
if (!fd) {
- set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
+ set_hc_result (hc, XINE_HEALTH_CHECK_FAIL,
"FAILED: mtrr is not enabled.");
} else {
hc->status = XINE_HEALTH_CHECK_OK;
@@ -170,18 +138,18 @@ xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
return hc;
}
#else
-xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_mtrr (xine_health_check_t* hc) {
hc->title = "Check for MTRR support";
hc->explanation = "Don't worry about this one";
- set_hc_result (hc, XINE_HEALTH_CHECK_OK,
+ set_hc_result (hc, XINE_HEALTH_CHECK_OK,
"mtrr does not apply on this hw platform.");
return hc;
}
#endif
-xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
struct stat cdrom_st;
int fd;
@@ -194,12 +162,12 @@ xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
set_hc_result (hc, XINE_HEALTH_CHECK_FAIL, "FAILED - could not access cdrom: %s\n", hc->cdrom_dev);
return hc;
}
-
+
if ((cdrom_st.st_mode & S_IFMT) != S_IFBLK) {
set_hc_result (hc, XINE_HEALTH_CHECK_FAIL, "FAILED - %s is not a block device.\n", hc->cdrom_dev);
return hc;
}
-
+
if ( (fd = open(hc->cdrom_dev, O_RDWR)) < 0) {
switch (errno) {
case EACCES:
@@ -212,12 +180,12 @@ xine_health_check_t* _x_health_check_cdrom (xine_health_check_t* hc) {
}
} else
close(fd);
-
+
hc->status = XINE_HEALTH_CHECK_OK;
return hc;
}
-xine_health_check_t* _x_health_check_dvdrom(xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_dvdrom(xine_health_check_t* hc) {
struct stat dvdrom_st;
int fd;
@@ -253,7 +221,7 @@ xine_health_check_t* _x_health_check_dvdrom(xine_health_check_t* hc) {
return hc;
}
-xine_health_check_t* _x_health_check_dma (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_dma (xine_health_check_t* hc) {
int is_scsi_dev = 0;
int fd = 0;
@@ -307,11 +275,11 @@ xine_health_check_t* _x_health_check_dma (xine_health_check_t* hc) {
}
-xine_health_check_t* _x_health_check_x (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_x (xine_health_check_t* hc) {
char* env_display = getenv("DISPLAY");
hc->title = "Check for X11 environment";
- hc->explanation = "Make sure you're running X11, if this is an ssh connection,\n"
+ hc->explanation = "Make sure you're running X11, if this is an ssh connection,\n"
"make sure you have X11 forwarding enabled (ssh -X ...)";
if (strlen (env_display) == 0) {
@@ -323,7 +291,7 @@ xine_health_check_t* _x_health_check_x (xine_health_check_t* hc) {
return hc;
}
-xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
+static xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
#ifdef HAVE_X11
#ifdef HAVE_XV
@@ -373,7 +341,7 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(x11_handle);
return hc;
}
-
+
dlerror(); /* clear error code */
xv_handle = dlopen(LIBXV_SO, RTLD_LAZY);
if(!xv_handle) {
@@ -394,7 +362,7 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
/* Get reference to XvQueryAdaptors */
xvqueryadaptors = dlsym(xv_handle,"XvQueryAdaptors");
if((err = dlerror()) != NULL) {
@@ -404,7 +372,7 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
/* Get reference to XvListImageFormats */
xvlistimageformats = dlsym(xv_handle,"XvListImageFormats");
if((err = dlerror()) != NULL) {
@@ -414,7 +382,7 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(xv_handle);
return hc;
}
-
+
if(!(dpy = (*xopendisplay)(disname))) {
if (!disname) {
@@ -477,7 +445,7 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
dlclose(x11_handle);
dlclose(xv_handle);
-
+
return hc;
#else
hc->title = "Check for MIT Xv extension";
@@ -497,12 +465,43 @@ xine_health_check_t* _x_health_check_xv (xine_health_check_t* hc) {
#endif /* ! HAVE_X11 */
}
+xine_health_check_t* xine_health_check (xine_health_check_t* hc, int check_num) {
+
+ switch(check_num) {
+ case CHECK_KERNEL:
+ hc = _x_health_check_kernel (hc);
+ break;
+ case CHECK_MTRR:
+ hc = _x_health_check_mtrr (hc);
+ break;
+ case CHECK_CDROM:
+ hc = _x_health_check_cdrom (hc);
+ break;
+ case CHECK_DVDROM:
+ hc = _x_health_check_dvdrom (hc);
+ break;
+ case CHECK_DMA:
+ hc = _x_health_check_dma (hc);
+ break;
+ case CHECK_X:
+ hc = _x_health_check_x (hc);
+ break;
+ case CHECK_XV:
+ hc = _x_health_check_xv (hc);
+ break;
+ default:
+ hc->status = XINE_HEALTH_CHECK_NO_SUCH_CHECK;
+ }
+
+ return hc;
+}
+
#else /* !__linux__ */
xine_health_check_t* xine_health_check (xine_health_check_t* hc, int check_num) {
hc->title = "xine health check not supported on this platform";
hc->explanation = "contact the xine-devel mailing list if you'd like to\n"
"contribute code for your platform.";
- set_hc_result(hc, XINE_HEALTH_CHECK_NO_SUCH_CHECK,
+ set_hc_result(hc, XINE_HEALTH_CHECK_NO_SUCH_CHECK,
"xine health check not supported on the OS.\n");
return hc;
}