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