ich hab hier im pvr350-Plugin eine Stelle
Code
osdbuf_aligned = (unsigned char *)((int)osdbuffer + (PAGE_SIZE - 1));
osdbuf_aligned = (unsigned char *)((int)osdbuf_aligned & PAGE_MASK);
die, wenn man für 64bit kompiliert, so aussehen muss:
Code
osdbuf_aligned = (unsigned char *)((long long)osdbuffer + (PAGE_SIZE - 1));
osdbuf_aligned = (unsigned char *)((long long)osdbuf_aligned & PAGE_MASK);
leider kompiliert es so dann nicht mehr mit allen gcc-Versionen unter 32-bit.
Mir würde jetzt nichts besseres einfallen, als bei Bedarf (Kompilieren für 64bit) ein #define zu aktivieren, und den Code dann so zu gestalten:
Code
#ifdef 64_BIT
osdbuf_aligned = (unsigned char *)((long long)osdbuffer + (PAGE_SIZE - 1));
osdbuf_aligned = (unsigned char *)((long long)osdbuf_aligned & PAGE_MASK);
#else
osdbuf_aligned = (unsigned char *)((int)osdbuffer + (PAGE_SIZE - 1));
osdbuf_aligned = (unsigned char *)((int)osdbuf_aligned & PAGE_MASK);
#endif
fällt jemandem was besseres ein? kann man direkt per Code bestimmen, ob gerade für 64bit kompiliert wird?