CVSROOT:        /cvs/directfb
Module name:    linux-fusion
Changes by:     dok     20041107 09:15:11

Modified files:
        .              : TODO 
        linux/drivers/char/fusion: fusiondev.c ref.c ref.h 
        linux/include/linux: fusion.h 

Log message:
Added version numbering to the Fusion Kernel API.
The major number is increased if binary compatibility breaks,
while the minor number is increased for new features.

Added new ioctl FUSION_REF_INHERIT to have a reference inherit
the local reference count from another reference, i.e. adding
the other's local count to its own. If the inherited reference
is changed, the inheritor is also updated.

There's just one reference that can be inherited from by each
reference, but a reference can have multiple inheritors.

Replaced FUSION_GET_ID by FUSION_ENTER. The new ioctl gets a
struct containing the API version the applicaiton was compiled
with. If the versions are incompatible, an error is returned,
otherwise the fusion id passed back to the application via the
struct.

Use the 'type' field of the ioctl code to encode one of the
following command group identifiers: FT_LOUNGE, FT_MESSAGING,
FT_CALL, FT_REF, FT_SKIRMISH, FT_PROPERTY and FT_REACTOR.

Now, the 'nr' field value is starting at zero within each group.

The huge switch in fusion_ioctl() for all commands is replaced
by a switch for just the different types (see above). Each type
has its own function with a switch for the command numbers.
It's not faster on my machine, but at least it looks much better.

Fixed a memory leak when clearing local references upon process exit.

Added some TODOs.



Reply via email to