Your headers seem broken. What should happen (i.e. in upstream kernel git) is:
let's have a look on my headers (debian sid kernel 2.6.30 s2-liplianin dvb)
linux/dvb/frontend.h has: #include <linux/types.h>
I have it
#ifndef _DVBFRONTEND_H_ #define _DVBFRONTEND_H_
#include <linux/types.h>
linux/types.h has: #include <asm/types.h>
my /usr/include/linux/types.h has it too
#include <linux/posix_types.h> #include <asm/types.h>
asm/types.h has: #include <asm-generic/int-ll64.h>
my /usr/include/asm/types.h has it too
#ifndef _ASM_X86_TYPES_H #define _ASM_X86_TYPES_H
#include <asm-generic/int-ll64.h>
asm-generic/int-ll64.h has: typedef unsigned char __u8;
no problem with asm-generic/int-ll64.h too
* asm-generic/int-ll64.h * * Integer declarations for architectures which use "long long" * for 64-bit types. */
#ifndef _ASM_GENERIC_INT_LL64_H #define _ASM_GENERIC_INT_LL64_H
#ifndef __ASSEMBLY__ /* * __xx is ok: it doesn't pollute the POSIX namespace. Use these in the * header files exported to user space */
typedef __signed__ char __s8; typedef unsigned char __u8;
typedef __signed__ short __s16; typedef unsigned short __u16;
typedef __signed__ int __s32; typedef unsigned int __u32;
Maybe one of these includes in these files is missing?
as you can see - no, everything is ok
I could compile vdr 179 after of adding in dvbdevice.h string like
typedef unsigned char __u8;
Goga