diff -r d1fa75d44e6b linux/include/linux/dvb/dmx.h
--- a/linux/include/linux/dvb/dmx.h	Tue Mar 04 10:04:56 2008 -0300
+++ b/linux/include/linux/dvb/dmx.h	Thu Mar 06 19:21:23 2008 +0100
@@ -24,7 +24,19 @@
 #ifndef _DVBDMX_H_
 #define _DVBDMX_H_
 
+#ifdef FreeBSD
+#include <sys/types.h>
+#else
 #include <asm/types.h>
+#endif
+ 
+#ifdef FreeBSD
+typedef __uint8_t       __u8;
+typedef __uint16_t      __u16;
+typedef __uint32_t      __u32;
+typedef __uint64_t      __u64;
+#endif
+
 #ifdef __KERNEL__
 #include <linux/time.h>
 #else
diff -r d1fa75d44e6b linux/include/linux/dvb/frontend.h
--- a/linux/include/linux/dvb/frontend.h	Tue Mar 04 10:04:56 2008 -0300
+++ b/linux/include/linux/dvb/frontend.h	Thu Mar 06 19:21:23 2008 +0100
@@ -26,8 +26,16 @@
 #ifndef _DVBFRONTEND_H_
 #define _DVBFRONTEND_H_
 
+#ifdef FreeBSD
+#include <sys/types.h>
+#else
 #include <asm/types.h>
+#endif
 
+#ifdef FreeBSD
+typedef __uint8_t	__u8;
+typedef __uint32_t	__u32;
+#endif
 
 typedef enum fe_type {
 	FE_QPSK,
diff -r d1fa75d44e6b linux/include/linux/dvb/osd.h
--- a/linux/include/linux/dvb/osd.h	Tue Mar 04 10:04:56 2008 -0300
+++ b/linux/include/linux/dvb/osd.h	Thu Mar 06 19:21:23 2008 +0100
@@ -24,7 +24,9 @@
 #ifndef _DVBOSD_H_
 #define _DVBOSD_H_
 
+#ifndef FreeBSD
 #include <linux/compiler.h>
+#endif
 
 typedef enum {
   // All functions return -2 on "not open"
@@ -104,7 +106,11 @@ typedef struct osd_cmd_s {
 	int x1;
 	int y1;
 	int color;
+#ifdef FreeBSD
+	void *data;
+#else
 	void __user *data;
+#endif
 } osd_cmd_t;
 
 /* OSD_OpenRaw: set 'color' to desired window type */
diff -r d1fa75d44e6b linux/include/linux/dvb/video.h
--- a/linux/include/linux/dvb/video.h	Tue Mar 04 10:04:56 2008 -0300
+++ b/linux/include/linux/dvb/video.h	Thu Mar 06 19:21:23 2008 +0100
@@ -24,12 +24,18 @@
 #ifndef _DVBVIDEO_H_
 #define _DVBVIDEO_H_
 
+#ifndef FreeBSD
 #include <linux/compiler.h>
+#endif
 
 #ifdef __KERNEL__
 #include <linux/types.h>
 #else
+#ifdef FreeBSD
+#include <sys/types.h>
+#else
 #include <asm/types.h>
+#endif
 #include <stdint.h>
 #include <time.h>
 #endif
@@ -159,7 +165,11 @@ struct video_status {
 
 
 struct video_still_picture {
+#ifdef FreeBSD
+	char *iFrame;        /* pointer to a single iframe in memory */
+#else
 	char __user *iFrame;        /* pointer to a single iframe in memory */
+#endif
 	int32_t size;
 };
 
@@ -192,7 +202,11 @@ typedef struct video_spu {
 
 typedef struct video_spu_palette {      /* SPU Palette information */
 	int length;
+#ifdef FreeBSD
+	uint8_t *palette;
+#else
 	uint8_t __user *palette;
+#endif
 } video_spu_palette_t;
 
 
diff -r d1fa75d44e6b linux/include/linux/videodev.h
--- a/linux/include/linux/videodev.h	Tue Mar 04 10:04:56 2008 -0300
+++ b/linux/include/linux/videodev.h	Thu Mar 06 19:21:23 2008 +0100
@@ -12,8 +12,16 @@
 #ifndef __LINUX_VIDEODEV_H
 #define __LINUX_VIDEODEV_H
 
+#ifdef FreeBSD
+#include <sys/types.h>
+typedef int32_t __s32;
+typedef uint32_t __u32;
+typedef uint16_t __u16;
+typedef uint8_t __u8;
+#else
 #include <linux/ioctl.h>
 #include <linux/videodev2.h>
+#endif
 
 #if defined(CONFIG_VIDEO_V4L1_COMPAT) || !defined (__KERNEL__)
 
@@ -130,7 +138,11 @@ struct video_window
 	__u32	width,height;		/* Its size */
 	__u32	chromakey;
 	__u32	flags;
+#ifdef FreeBSD
+	struct	video_clip *clips;	/* Set only */
+#else
 	struct	video_clip __user *clips;	/* Set only */
+#endif
 	int	clipcount;
 #define VIDEO_WINDOW_INTERLACE	1
 #define VIDEO_WINDOW_CHROMAKEY	16	/* Overlay by chromakey */
@@ -169,6 +181,10 @@ struct video_key
 	__u8	key[8];
 	__u32	flags;
 };
+
+#ifdef FreeBSD
+#define VIDEO_MAX_FRAME		32
+#endif
 
 struct video_mbuf
 {
