Here's my change for linux-fusion-3.2.4 for newer 2.6 kernels:
replace the 6 lines that update the time stamp on entry->last_lock with:
{
struct timespec n;
getnstimeofday(&n);
entry->last_lock.tv_sec = n.tv_sec;
entry->last_lock.tv_usec = n.tv_nsec/1000;
}
Not sure what sort of #if kernel version stuff applies to make this more
ubiquitous.
Lucian Muresan wrote:
Hi, it's me again responding to my own message...
Lucian Muresan wrote:
Hello,
I'm using DirectFB with the linux-fusion module for a long time, and now
when the time has come for performing some system upgrades, I ran into
the following problem:
- upgraded to a 2.6.25 kernel;
- built linux-fusion-7.0.1 (which was moved to "Old" on the
homepage during last night, btw)
- build DirectFB-1.1.1 (too, moved to "Old" last night)
- built several apps depending on DirectFB directly, and on
DFB++-1.0.0
After all this, had to find out that the linux-fusion module,
although it builds, is not usable, as there is no more "xtime" symbol
in the kernel.
Then I found this thread dated in March 2008 about releasing
linux-fusion-3.2.5, but I can't find that one.
Allright, then I decided to upgrade even more, and built
linux-fusion-8.0.0 which loads alright as the xtime code has been
ported, then I had to go with DirectFB-1.2.0 as older DirectFB is not
API-compatible with that new linux-fusion. But now I need DFB++ built
against new DirectFB, well, 1.0.0 it's not API-compatible, and the
git version also is not.
Allright, I patched DFB++ checked out from git myself to build against
DirectFB-1.2.0, maybe not the most elegant way, but at least it builds
without errors (haven't tested live, as I did it over a ssh
connection). Others might find the attached patch useful...
Cheers,
Lucian
------------------------------------------------------------------------
diff -Naur DFB++-9999_orig/dfb++/idirectfb.cpp DFB++-9999/dfb++/idirectfb.cpp
--- DFB++-9999_orig/dfb++/idirectfb.cpp 2007-12-17 18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfb.cpp 2008-06-09 12:27:28.000000000 +0200
@@ -37,7 +37,7 @@
IDirectFB *IDirectFB::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFB::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbdatabuffer.cpp
DFB++-9999/dfb++/idirectfbdatabuffer.cpp
--- DFB++-9999_orig/dfb++/idirectfbdatabuffer.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbdatabuffer.cpp 2008-06-09 12:29:12.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBDataBuffer *IDirectFBDataBuffer::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBDataBuffer::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbdisplaylayer.cpp
DFB++-9999/dfb++/idirectfbdisplaylayer.cpp
--- DFB++-9999_orig/dfb++/idirectfbdisplaylayer.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbdisplaylayer.cpp 2008-06-09 12:30:06.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBDisplayLayer *IDirectFBDisplayLayer::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBDisplayLayer::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbeventbuffer.cpp
DFB++-9999/dfb++/idirectfbeventbuffer.cpp
--- DFB++-9999_orig/dfb++/idirectfbeventbuffer.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbeventbuffer.cpp 2008-06-09 12:30:48.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBEventBuffer *IDirectFBEventBuffer::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBEventBuffer::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbfont.cpp
DFB++-9999/dfb++/idirectfbfont.cpp
--- DFB++-9999_orig/dfb++/idirectfbfont.cpp 2007-12-17 18:05:53.000000000
+0100
+++ DFB++-9999/dfb++/idirectfbfont.cpp 2008-06-09 12:31:30.000000000 +0200
@@ -37,7 +37,7 @@
IDirectFBFont *IDirectFBFont::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBFont::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbimageprovider.cpp
DFB++-9999/dfb++/idirectfbimageprovider.cpp
--- DFB++-9999_orig/dfb++/idirectfbimageprovider.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbimageprovider.cpp 2008-06-09 12:32:07.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBImageProvider *IDirectFBImageProvider::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBImageProvider::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbinputdevice.cpp
DFB++-9999/dfb++/idirectfbinputdevice.cpp
--- DFB++-9999_orig/dfb++/idirectfbinputdevice.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbinputdevice.cpp 2008-06-09 12:32:50.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBInputDevice *IDirectFBInputDevice::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBInputDevice::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbpalette.cpp
DFB++-9999/dfb++/idirectfbpalette.cpp
--- DFB++-9999_orig/dfb++/idirectfbpalette.cpp 2007-12-17 18:05:53.000000000
+0100
+++ DFB++-9999/dfb++/idirectfbpalette.cpp 2008-06-09 12:33:18.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBPalette *IDirectFBPalette::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBPalette::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbscreen.cpp
DFB++-9999/dfb++/idirectfbscreen.cpp
--- DFB++-9999_orig/dfb++/idirectfbscreen.cpp 2007-12-17 18:05:53.000000000
+0100
+++ DFB++-9999/dfb++/idirectfbscreen.cpp 2008-06-09 12:33:44.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBScreen *IDirectFBScreen::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBScreen::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbsurface.cpp
DFB++-9999/dfb++/idirectfbsurface.cpp
--- DFB++-9999_orig/dfb++/idirectfbsurface.cpp 2007-12-17 18:05:53.000000000
+0100
+++ DFB++-9999/dfb++/idirectfbsurface.cpp 2008-06-09 12:34:30.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBSurface *IDirectFBSurface::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBSurface::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbvideoprovider.cpp
DFB++-9999/dfb++/idirectfbvideoprovider.cpp
--- DFB++-9999_orig/dfb++/idirectfbvideoprovider.cpp 2007-12-17
18:05:53.000000000 +0100
+++ DFB++-9999/dfb++/idirectfbvideoprovider.cpp 2008-06-09 12:35:03.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBVideoProvider *IDirectFBVideoProvider::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBVideoProvider::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
diff -Naur DFB++-9999_orig/dfb++/idirectfbwindow.cpp
DFB++-9999/dfb++/idirectfbwindow.cpp
--- DFB++-9999_orig/dfb++/idirectfbwindow.cpp 2007-12-17 18:05:53.000000000
+0100
+++ DFB++-9999/dfb++/idirectfbwindow.cpp 2008-06-09 12:35:37.000000000
+0200
@@ -37,7 +37,7 @@
IDirectFBWindow *IDirectFBWindow::AddRef()
{
- DFBCHECK( iface->AddRef (iface) );
+ DFBCHECK( DFBResult ( iface->AddRef (iface) ) );
refs++;
@@ -46,7 +46,7 @@
void IDirectFBWindow::Release()
{
- DFBCHECK( iface->Release (iface) );
+ DFBCHECK( DFBResult ( iface->Release (iface) ) );
if (--refs == 0)
delete this;
------------------------------------------------------------------------
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev
_______________________________________________
directfb-dev mailing list
directfb-dev@directfb.org
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-dev