New commits:
http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=83bb21e8c3f04a03272ce4d5804b83942b6bcdf3
commit 83bb21e8c3f04a03272ce4d5804b83942b6bcdf3
Author: Denis Oliver Kropp <[email protected]>
Date:   Sun Jul 31 13:59:16 2011 +0200

    SecureFusion: Final major step including permission enforcement, object 
ownership, new surface locking...
    
    Add _GetID() functions for all core objects.
    
    Add permissions for catcher in throw function, e.g. to ref_up/catch, call, 
attach to reactor...
    
    Set object owner to catcher in throw function of surface, window and 
palette objects for now,
    but only if the owner has not been set yet. This is enough for the time 
being.
    
    Check object owner in lookup functions and fail if owner is set, but does 
not match.
    
    Turn CoreGraphicsState into a FusionObject to handle reference counting and 
to get rid of
    the custom creation/throw/catch code etc.
    
    Add CoreGraphicsStateClient_Deinit().
    
    Add CoreLayer::GetPrimaryContext().
    
    Add CoreLayerRegion::GetSurface() to add surface permissions to region 
owner.
    
    Add CoreSurface::GetPalette() to add palette permissions to surface owner.
    
    Add CoreWindow::GetSurface() to add surface permissions to window owner.
    
    Add special code for parent and top level window in DFBWindowDescription 
passing of
    CoreLayerContext::CreateWindow(). The windows are passed as object 
arguments to go
    through the object ownership checks on dispatcher side when looked up by id.
    
    Remove LockBuffer and UnlockBuffer from CoreSurface interface and use 
dfb_surface_lock_buffer()
    at all locations again.
    
    Add CoreSurface::PreLockBuffer(), PreReadBuffer() and PreWriteBuffer() 
doing all work that
    needs to write to shared memory, e.g. allocating a buffer, syncing 
allocations, syncing with
    accelerator, and then returning the index of the allocation to be used. 
Call these new functions
    from dfb_surface_buffer_lock/read/write() and then call into surface pool 
implementation locally.
    
    Add special code for parent window and keys in CoreWindowConfig passing of 
CoreWindow::SetConfig().
    The window is passed as object argument to go through the object ownership 
checks on dispatcher
    side when looked up by id. Separately pass the keys as another argument to 
have it copied and set
    the pointer in a copy of the config on the dispatcher side.
    
    Add attach/detach permission for everyone to input devices.
    
    Fix ref up/down for input devices changing from global to local counting.
    
    Add ref up/down permission for everyone to input devices.
    
    Add execute permission for everyone to layer call.
    
    Remove preallocated surface pool for now, instead create a normal surface 
and copy the data
    from preallocated area to new surface buffers. This also reenables 
acceleration for preallocated
    surfaces which had been broken since DirectFB 1.2. In future versions there 
will be proper
    support for preallocated surfaces again.
    
    Refactor local and shared surface pools and only use local pool in single 
app and only shared
    pool in multi app build.
    
    The local surface pool has been heavily simplified to just do the 
malloc/free instead of the
    FusionCall code etc.
    
    The shared surface pool has been reimplemented to create a file in tmpfs 
per surface buffer
    allocation that is writable by slaves, since all Fusion SHM Pools are read 
only now! This
    avoids security holes as no heap information is writable and allows for 
more fine grained
    permission management per surface buffer. The tmpfs files are currently 
mapped/unmapped on
    Lock/Unlock.
    
    Add CSPCAPS_READ and CSPCAPS_WRITE being set automatically when the surface 
pool provides
    a Read and Write function.

 interfaces/IDirectFBFont/idirectfbfont_ft2.c       |    4 +-
 .../idirectfbimageprovider_gif.c                   |    4 +-
 .../idirectfbimageprovider_jpeg.c                  |   10 +-
 .../idirectfbimageprovider_png.c                   |    4 +-
 src/core/CoreDFB_includes.h                        |  302 +++++++++++++++-----
 src/core/CoreDFB_real.cpp                          |   23 +--
 src/core/CoreGraphicsStateClient.c                 |   11 +
 src/core/CoreGraphicsStateClient.h                 |    2 +
 src/core/CoreLayer.flux                            |   18 ++
 src/core/CoreLayerContext.flux                     |   16 +
 src/core/CoreLayerContext_real.cpp                 |   11 +-
 src/core/CoreLayerRegion.flux                      |   11 +
 src/core/CoreLayerRegion_real.cpp                  |   10 +
 src/core/CoreLayer_real.cpp                        |   12 +
 src/core/CoreSurface.flux                          |   96 +++++--
 src/core/CoreSurface_real.cpp                      |  301 ++++++++++++++++++--
 src/core/CoreWindow.flux                           |   35 +++
 src/core/CoreWindow_real.cpp                       |   40 +++-
 src/core/Makefile.am                               |    2 +
 src/core/core.c                                    |  133 ++++-----
 src/core/core.h                                    |   53 ++--
 src/core/graphics_state.c                          |  116 ++++++++
 src/core/graphics_state.h                          |   73 +++++
 src/core/input.c                                   |   21 +-
 src/core/layers.c                                  |    2 +
 src/core/local_surface_pool.c                      |   90 +------
 src/core/shared_surface_pool.c                     |  146 ++++++++--
 src/core/state.c                                   |    1 +
 src/core/surface_buffer.c                          |  187 +++---------
 src/core/surface_buffer.h                          |    6 +
 src/core/surface_core.c                            |   52 ++--
 src/core/surface_pool.c                            |    8 +
 src/core/surface_pool.h                            |    5 +-
 src/display/idirectfbdisplaylayer.c                |   46 +++-
 src/display/idirectfbsurface.c                     |   20 +-
 src/display/idirectfbsurface_layer.c               |    2 +-
 src/display/idirectfbsurface_window.c              |   13 +-
 src/idirectfb.c                                    |   63 ++++-
 src/windows/idirectfbwindow.c                      |   26 ++-
 39 files changed, 1400 insertions(+), 575 deletions(-)

http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=2311b095790da1279d3f470a4d84ff62ff1585b5
commit 2311b095790da1279d3f470a4d84ff62ff1585b5
Author: Denis Oliver Kropp <[email protected]>
Date:   Sun Jul 31 13:02:53 2011 +0200

    Fusion: Just return OK in single app implementations for permission 
management.

 lib/fusion/call.c    |    4 +---
 lib/fusion/reactor.c |    4 +---
 lib/fusion/ref.c     |    4 +---
 3 files changed, 3 insertions(+), 9 deletions(-)

http://git.directfb.org/?p=core/DirectFB.git;a=commit;h=6c0941f93c38774210287e1ce620d56c18a65498
commit 6c0941f93c38774210287e1ce620d56c18a65498
Author: Denis Oliver Kropp <[email protected]>
Date:   Sat Jul 30 23:44:43 2011 +0200

    Fusion: Add fusion_get_tmpfs(), remove obsolete select() call.

 lib/fusion/fusion.c |  211 +++++++++++++++++++++++++++------------------------
 lib/fusion/fusion.h |    2 +
 2 files changed, 115 insertions(+), 98 deletions(-)

_______________________________________________
directfb-cvs mailing list
[email protected]
http://mail.directfb.org/cgi-bin/mailman/listinfo/directfb-cvs

Reply via email to