aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/eina/src/modules/mp/buddy
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-04 18:41:13 +1000
committerDavid Walter Seikel2012-01-04 18:41:13 +1000
commitdd7595a3475407a7fa96a97393bae8c5220e8762 (patch)
treee341e911d7eb911a51684a7412ef7f7c7605d28e /libraries/eina/src/modules/mp/buddy
parentAdd the skeleton. (diff)
downloadSledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.zip
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.gz
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.bz2
SledjHamr-dd7595a3475407a7fa96a97393bae8c5220e8762.tar.xz
Add the base Enlightenment Foundation Libraries - eina, eet, evas, ecore, embryo, and edje.
Note that embryo wont be used, but I'm not sure yet if you can build edje without it.
Diffstat (limited to 'libraries/eina/src/modules/mp/buddy')
-rw-r--r--libraries/eina/src/modules/mp/buddy/Makefile.am29
-rw-r--r--libraries/eina/src/modules/mp/buddy/Makefile.in643
-rw-r--r--libraries/eina/src/modules/mp/buddy/eina_buddy.c292
3 files changed, 964 insertions, 0 deletions
diff --git a/libraries/eina/src/modules/mp/buddy/Makefile.am b/libraries/eina/src/modules/mp/buddy/Makefile.am
new file mode 100644
index 0000000..c699c9d
--- /dev/null
+++ b/libraries/eina/src/modules/mp/buddy/Makefile.am
@@ -0,0 +1,29 @@
1MAINTAINERCLEANFILES = Makefile.in
2
3AM_CPPFLAGS = \
4-I. \
5-I$(top_srcdir)/src/include \
6-I$(top_builddir)/src/include \
7-I$(top_srcdir)/src/lib \
8-I$(top_builddir)/src/lib \
9@EINA_CPPFLAGS@ \
10@EFL_EINA_BUILD@
11
12controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH)
13controller_LTLIBRARIES = module.la
14
15module_la_SOURCES = \
16eina_buddy.c
17
18module_la_CFLAGS = @EINA_CFLAGS@
19module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@
20module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
21module_la_LIBTOOLFLAGS = --tag=disable-static
22
23install-data-hook:
24 rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES)
25uninstall-hook:
26 rm -f $(DESTDIR)$(controllerdir)/module.*
27
28clean-local:
29 rm -rf *.gcno
diff --git a/libraries/eina/src/modules/mp/buddy/Makefile.in b/libraries/eina/src/modules/mp/buddy/Makefile.in
new file mode 100644
index 0000000..64d7fc7
--- /dev/null
+++ b/libraries/eina/src/modules/mp/buddy/Makefile.in
@@ -0,0 +1,643 @@
1# Makefile.in generated by automake 1.11.1 from Makefile.am.
2# @configure_input@
3
4# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6# Inc.
7# This Makefile.in is free software; the Free Software Foundation
8# gives unlimited permission to copy and/or distribute it,
9# with or without modifications, as long as this notice is preserved.
10
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
13# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
14# PARTICULAR PURPOSE.
15
16@SET_MAKE@
17
18VPATH = @srcdir@
19pkgdatadir = $(datadir)/@PACKAGE@
20pkgincludedir = $(includedir)/@PACKAGE@
21pkglibdir = $(libdir)/@PACKAGE@
22pkglibexecdir = $(libexecdir)/@PACKAGE@
23am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
24install_sh_DATA = $(install_sh) -c -m 644
25install_sh_PROGRAM = $(install_sh) -c
26install_sh_SCRIPT = $(install_sh) -c
27INSTALL_HEADER = $(INSTALL_DATA)
28transform = $(program_transform_name)
29NORMAL_INSTALL = :
30PRE_INSTALL = :
31POST_INSTALL = :
32NORMAL_UNINSTALL = :
33PRE_UNINSTALL = :
34POST_UNINSTALL = :
35build_triplet = @build@
36host_triplet = @host@
37subdir = src/modules/mp/buddy
38DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
39ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
40am__aclocal_m4_deps = $(top_srcdir)/m4/efl_attribute.m4 \
41 $(top_srcdir)/m4/efl_benchmark.m4 \
42 $(top_srcdir)/m4/efl_compiler_flag.m4 \
43 $(top_srcdir)/m4/efl_coverage.m4 $(top_srcdir)/m4/efl_cpu.m4 \
44 $(top_srcdir)/m4/efl_doxygen.m4 \
45 $(top_srcdir)/m4/efl_examples.m4 \
46 $(top_srcdir)/m4/efl_fnmatch.m4 \
47 $(top_srcdir)/m4/efl_path_max.m4 $(top_srcdir)/m4/efl_tests.m4 \
48 $(top_srcdir)/m4/efl_threads.m4 \
49 $(top_srcdir)/m4/efl_voltron.m4 $(top_srcdir)/m4/eina_bench.m4 \
50 $(top_srcdir)/m4/eina_check.m4 $(top_srcdir)/m4/libtool.m4 \
51 $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
52 $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
53 $(top_srcdir)/acinclude.m4 $(top_srcdir)/configure.ac
54am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
55 $(ACLOCAL_M4)
56mkinstalldirs = $(install_sh) -d
57CONFIG_HEADER = $(top_builddir)/config.h
58CONFIG_CLEAN_FILES =
59CONFIG_CLEAN_VPATH_FILES =
60am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
61am__vpath_adj = case $$p in \
62 $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
63 *) f=$$p;; \
64 esac;
65am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`;
66am__install_max = 40
67am__nobase_strip_setup = \
68 srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'`
69am__nobase_strip = \
70 for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||"
71am__nobase_list = $(am__nobase_strip_setup); \
72 for p in $$list; do echo "$$p $$p"; done | \
73 sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \
74 $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \
75 if (++n[$$2] == $(am__install_max)) \
76 { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \
77 END { for (dir in files) print dir, files[dir] }'
78am__base_list = \
79 sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
80 sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
81am__installdirs = "$(DESTDIR)$(controllerdir)"
82LTLIBRARIES = $(controller_LTLIBRARIES)
83module_la_DEPENDENCIES = $(top_builddir)/src/lib/libeina.la
84am_module_la_OBJECTS = module_la-eina_buddy.lo
85module_la_OBJECTS = $(am_module_la_OBJECTS)
86AM_V_lt = $(am__v_lt_$(V))
87am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY))
88am__v_lt_0 = --silent
89module_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \
90 $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \
91 $(module_la_CFLAGS) $(CFLAGS) $(module_la_LDFLAGS) $(LDFLAGS) \
92 -o $@
93DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir)
94depcomp = $(SHELL) $(top_srcdir)/depcomp
95am__depfiles_maybe = depfiles
96am__mv = mv -f
97COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
98 $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
99LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
100 $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \
101 $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
102 $(AM_CFLAGS) $(CFLAGS)
103AM_V_CC = $(am__v_CC_$(V))
104am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY))
105am__v_CC_0 = @echo " CC " $@;
106AM_V_at = $(am__v_at_$(V))
107am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
108am__v_at_0 = @
109CCLD = $(CC)
110LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \
111 $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
112 $(AM_LDFLAGS) $(LDFLAGS) -o $@
113AM_V_CCLD = $(am__v_CCLD_$(V))
114am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY))
115am__v_CCLD_0 = @echo " CCLD " $@;
116AM_V_GEN = $(am__v_GEN_$(V))
117am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
118am__v_GEN_0 = @echo " GEN " $@;
119SOURCES = $(module_la_SOURCES)
120DIST_SOURCES = $(module_la_SOURCES)
121ETAGS = etags
122CTAGS = ctags
123DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
124ACLOCAL = @ACLOCAL@
125ALLOCA = @ALLOCA@
126AMTAR = @AMTAR@
127AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
128AR = @AR@
129AS = @AS@
130AUTOCONF = @AUTOCONF@
131AUTOHEADER = @AUTOHEADER@
132AUTOMAKE = @AUTOMAKE@
133AWK = @AWK@
134CC = @CC@
135CCDEPMODE = @CCDEPMODE@
136CFLAGS = @CFLAGS@
137CHECK_CFLAGS = @CHECK_CFLAGS@
138CHECK_LIBS = @CHECK_LIBS@
139CPP = @CPP@
140CPPFLAGS = @CPPFLAGS@
141CXX = @CXX@
142CXXCPP = @CXXCPP@
143CXXDEPMODE = @CXXDEPMODE@
144CXXFLAGS = @CXXFLAGS@
145CYGPATH_W = @CYGPATH_W@
146DEFS = @DEFS@
147DEPDIR = @DEPDIR@
148DLLTOOL = @DLLTOOL@
149DSYMUTIL = @DSYMUTIL@
150DUMPBIN = @DUMPBIN@
151ECHO_C = @ECHO_C@
152ECHO_N = @ECHO_N@
153ECHO_T = @ECHO_T@
154ECORE_EVAS_CFLAGS = @ECORE_EVAS_CFLAGS@
155ECORE_EVAS_LIBS = @ECORE_EVAS_LIBS@
156EFL_COVERAGE_CFLAGS = @EFL_COVERAGE_CFLAGS@
157EFL_COVERAGE_LIBS = @EFL_COVERAGE_LIBS@
158EFL_EINA_BUILD = @EFL_EINA_BUILD@
159EFL_FNMATCH_LIBS = @EFL_FNMATCH_LIBS@
160EFL_PTHREAD_CFLAGS = @EFL_PTHREAD_CFLAGS@
161EFL_PTHREAD_LIBS = @EFL_PTHREAD_LIBS@
162EFL_SIMD_FLAGS = @EFL_SIMD_FLAGS@
163EGREP = @EGREP@
164EINA_CFLAGS = @EINA_CFLAGS@
165EINA_CONFIGURE_DEFAULT_MEMPOOL = @EINA_CONFIGURE_DEFAULT_MEMPOOL@
166EINA_CONFIGURE_HAVE_DEBUG_THREADS = @EINA_CONFIGURE_HAVE_DEBUG_THREADS@
167EINA_CONFIGURE_HAVE_INTTYPES_H = @EINA_CONFIGURE_HAVE_INTTYPES_H@
168EINA_CONFIGURE_HAVE_ON_OFF_THREADS = @EINA_CONFIGURE_HAVE_ON_OFF_THREADS@
169EINA_CONFIGURE_HAVE_STDINT_H = @EINA_CONFIGURE_HAVE_STDINT_H@
170EINA_CONFIGURE_HAVE_THREADS = @EINA_CONFIGURE_HAVE_THREADS@
171EINA_CONFIGURE_MAGIC_DEBUG = @EINA_CONFIGURE_MAGIC_DEBUG@
172EINA_CONFIGURE_SAFETY_CHECKS = @EINA_CONFIGURE_SAFETY_CHECKS@
173EINA_CPPFLAGS = @EINA_CPPFLAGS@
174EINA_LIBS = @EINA_LIBS@
175EINA_SIZEOF_WCHAR_T = @EINA_SIZEOF_WCHAR_T@
176EMEMOA_CFLAGS = @EMEMOA_CFLAGS@
177EMEMOA_LIBS = @EMEMOA_LIBS@
178ESCAPE_CFLAGS = @ESCAPE_CFLAGS@
179ESCAPE_LIBS = @ESCAPE_LIBS@
180EVIL_CFLAGS = @EVIL_CFLAGS@
181EVIL_LIBS = @EVIL_LIBS@
182EXEEXT = @EXEEXT@
183FGREP = @FGREP@
184GLIB_CFLAGS = @GLIB_CFLAGS@
185GLIB_LIBS = @GLIB_LIBS@
186GREP = @GREP@
187INSTALL = @INSTALL@
188INSTALL_DATA = @INSTALL_DATA@
189INSTALL_PROGRAM = @INSTALL_PROGRAM@
190INSTALL_SCRIPT = @INSTALL_SCRIPT@
191INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
192LD = @LD@
193LDFLAGS = @LDFLAGS@
194LIBOBJS = @LIBOBJS@
195LIBS = @LIBS@
196LIBTOOL = @LIBTOOL@
197LIPO = @LIPO@
198LN_S = @LN_S@
199LTLIBOBJS = @LTLIBOBJS@
200MAKEINFO = @MAKEINFO@
201MKDIR_P = @MKDIR_P@
202MODULE_ARCH = @MODULE_ARCH@
203NM = @NM@
204NMEDIT = @NMEDIT@
205OBJDUMP = @OBJDUMP@
206OBJEXT = @OBJEXT@
207OTOOL = @OTOOL@
208OTOOL64 = @OTOOL64@
209PACKAGE = @PACKAGE@
210PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
211PACKAGE_NAME = @PACKAGE_NAME@
212PACKAGE_STRING = @PACKAGE_STRING@
213PACKAGE_TARNAME = @PACKAGE_TARNAME@
214PACKAGE_URL = @PACKAGE_URL@
215PACKAGE_VERSION = @PACKAGE_VERSION@
216PATH_SEPARATOR = @PATH_SEPARATOR@
217PKG_CONFIG = @PKG_CONFIG@
218PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
219PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
220RANLIB = @RANLIB@
221SED = @SED@
222SET_MAKE = @SET_MAKE@
223SHELL = @SHELL@
224STRIP = @STRIP@
225VALGRIND_CFLAGS = @VALGRIND_CFLAGS@
226VALGRIND_LIBS = @VALGRIND_LIBS@
227VERSION = @VERSION@
228VMAJ = @VMAJ@
229abs_builddir = @abs_builddir@
230abs_srcdir = @abs_srcdir@
231abs_top_builddir = @abs_top_builddir@
232abs_top_srcdir = @abs_top_srcdir@
233ac_ct_CC = @ac_ct_CC@
234ac_ct_CXX = @ac_ct_CXX@
235ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
236am__include = @am__include@
237am__leading_dot = @am__leading_dot@
238am__quote = @am__quote@
239am__tar = @am__tar@
240am__untar = @am__untar@
241bindir = @bindir@
242build = @build@
243build_alias = @build_alias@
244build_cpu = @build_cpu@
245build_os = @build_os@
246build_vendor = @build_vendor@
247builddir = @builddir@
248datadir = @datadir@
249datarootdir = @datarootdir@
250dlopen_libs = @dlopen_libs@
251docdir = @docdir@
252dvidir = @dvidir@
253efl_doxygen = @efl_doxygen@
254efl_have_doxygen = @efl_have_doxygen@
255exec_prefix = @exec_prefix@
256have_lcov = @have_lcov@
257host = @host@
258host_alias = @host_alias@
259host_cpu = @host_cpu@
260host_os = @host_os@
261host_vendor = @host_vendor@
262htmldir = @htmldir@
263iconv_libs = @iconv_libs@
264includedir = @includedir@
265infodir = @infodir@
266install_sh = @install_sh@
267libdir = @libdir@
268libexecdir = @libexecdir@
269localedir = @localedir@
270localstatedir = @localstatedir@
271lt_ECHO = @lt_ECHO@
272lt_enable_auto_import = @lt_enable_auto_import@
273mandir = @mandir@
274mkdir_p = @mkdir_p@
275oldincludedir = @oldincludedir@
276pdfdir = @pdfdir@
277pkgconfig_requires_private = @pkgconfig_requires_private@
278prefix = @prefix@
279program_transform_name = @program_transform_name@
280psdir = @psdir@
281release_info = @release_info@
282requirement_eina = @requirement_eina@
283rt_libs = @rt_libs@
284sbindir = @sbindir@
285sharedstatedir = @sharedstatedir@
286srcdir = @srcdir@
287sysconfdir = @sysconfdir@
288target_alias = @target_alias@
289top_build_prefix = @top_build_prefix@
290top_builddir = @top_builddir@
291top_srcdir = @top_srcdir@
292version_info = @version_info@
293MAINTAINERCLEANFILES = Makefile.in
294AM_CPPFLAGS = \
295-I. \
296-I$(top_srcdir)/src/include \
297-I$(top_builddir)/src/include \
298-I$(top_srcdir)/src/lib \
299-I$(top_builddir)/src/lib \
300@EINA_CPPFLAGS@ \
301@EFL_EINA_BUILD@
302
303controllerdir = $(libdir)/eina/modules/mp/buddy/$(MODULE_ARCH)
304controller_LTLIBRARIES = module.la
305module_la_SOURCES = \
306eina_buddy.c
307
308module_la_CFLAGS = @EINA_CFLAGS@
309module_la_LIBADD = $(top_builddir)/src/lib/libeina.la @EINA_LIBS@
310module_la_LDFLAGS = -no-undefined @lt_enable_auto_import@ -module -avoid-version
311module_la_LIBTOOLFLAGS = --tag=disable-static
312all: all-am
313
314.SUFFIXES:
315.SUFFIXES: .c .lo .o .obj
316$(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
317 @for dep in $?; do \
318 case '$(am__configure_deps)' in \
319 *$$dep*) \
320 ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
321 && { if test -f $@; then exit 0; else break; fi; }; \
322 exit 1;; \
323 esac; \
324 done; \
325 echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu src/modules/mp/buddy/Makefile'; \
326 $(am__cd) $(top_srcdir) && \
327 $(AUTOMAKE) --gnu src/modules/mp/buddy/Makefile
328.PRECIOUS: Makefile
329Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
330 @case '$?' in \
331 *config.status*) \
332 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
333 *) \
334 echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
335 cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
336 esac;
337
338$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
339 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
340
341$(top_srcdir)/configure: $(am__configure_deps)
342 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
343$(ACLOCAL_M4): $(am__aclocal_m4_deps)
344 cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
345$(am__aclocal_m4_deps):
346install-controllerLTLIBRARIES: $(controller_LTLIBRARIES)
347 @$(NORMAL_INSTALL)
348 test -z "$(controllerdir)" || $(MKDIR_P) "$(DESTDIR)$(controllerdir)"
349 @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \
350 list2=; for p in $$list; do \
351 if test -f $$p; then \
352 list2="$$list2 $$p"; \
353 else :; fi; \
354 done; \
355 test -z "$$list2" || { \
356 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(controllerdir)'"; \
357 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(controllerdir)"; \
358 }
359
360uninstall-controllerLTLIBRARIES:
361 @$(NORMAL_UNINSTALL)
362 @list='$(controller_LTLIBRARIES)'; test -n "$(controllerdir)" || list=; \
363 for p in $$list; do \
364 $(am__strip_dir) \
365 echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(controllerdir)/$$f'"; \
366 $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(controllerdir)/$$f"; \
367 done
368
369clean-controllerLTLIBRARIES:
370 -test -z "$(controller_LTLIBRARIES)" || rm -f $(controller_LTLIBRARIES)
371 @list='$(controller_LTLIBRARIES)'; for p in $$list; do \
372 dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \
373 test "$$dir" != "$$p" || dir=.; \
374 echo "rm -f \"$${dir}/so_locations\""; \
375 rm -f "$${dir}/so_locations"; \
376 done
377module.la: $(module_la_OBJECTS) $(module_la_DEPENDENCIES)
378 $(AM_V_CCLD)$(module_la_LINK) -rpath $(controllerdir) $(module_la_OBJECTS) $(module_la_LIBADD) $(LIBS)
379
380mostlyclean-compile:
381 -rm -f *.$(OBJEXT)
382
383distclean-compile:
384 -rm -f *.tab.c
385
386@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/module_la-eina_buddy.Plo@am__quote@
387
388.c.o:
389@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
390@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
391@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
392@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
393@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
394@am__fastdepCC_FALSE@ $(COMPILE) -c $<
395
396.c.obj:
397@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
398@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
399@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
400@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
401@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
402@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
403
404.c.lo:
405@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
406@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
407@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
408@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
409@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
410@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
411
412module_la-eina_buddy.lo: eina_buddy.c
413@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -MT module_la-eina_buddy.lo -MD -MP -MF $(DEPDIR)/module_la-eina_buddy.Tpo -c -o module_la-eina_buddy.lo `test -f 'eina_buddy.c' || echo '$(srcdir)/'`eina_buddy.c
414@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/module_la-eina_buddy.Tpo $(DEPDIR)/module_la-eina_buddy.Plo
415@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@
416@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='eina_buddy.c' object='module_la-eina_buddy.lo' libtool=yes @AMDEPBACKSLASH@
417@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
418@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(module_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(module_la_CFLAGS) $(CFLAGS) -c -o module_la-eina_buddy.lo `test -f 'eina_buddy.c' || echo '$(srcdir)/'`eina_buddy.c
419
420mostlyclean-libtool:
421 -rm -f *.lo
422
423clean-libtool:
424 -rm -rf .libs _libs
425
426ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
427 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
428 unique=`for i in $$list; do \
429 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
430 done | \
431 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
432 END { if (nonempty) { for (i in files) print i; }; }'`; \
433 mkid -fID $$unique
434tags: TAGS
435
436TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
437 $(TAGS_FILES) $(LISP)
438 set x; \
439 here=`pwd`; \
440 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
441 unique=`for i in $$list; do \
442 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
443 done | \
444 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
445 END { if (nonempty) { for (i in files) print i; }; }'`; \
446 shift; \
447 if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
448 test -n "$$unique" || unique=$$empty_fix; \
449 if test $$# -gt 0; then \
450 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
451 "$$@" $$unique; \
452 else \
453 $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
454 $$unique; \
455 fi; \
456 fi
457ctags: CTAGS
458CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
459 $(TAGS_FILES) $(LISP)
460 list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
461 unique=`for i in $$list; do \
462 if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
463 done | \
464 $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
465 END { if (nonempty) { for (i in files) print i; }; }'`; \
466 test -z "$(CTAGS_ARGS)$$unique" \
467 || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
468 $$unique
469
470GTAGS:
471 here=`$(am__cd) $(top_builddir) && pwd` \
472 && $(am__cd) $(top_srcdir) \
473 && gtags -i $(GTAGS_ARGS) "$$here"
474
475distclean-tags:
476 -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
477
478distdir: $(DISTFILES)
479 @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
480 topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
481 list='$(DISTFILES)'; \
482 dist_files=`for file in $$list; do echo $$file; done | \
483 sed -e "s|^$$srcdirstrip/||;t" \
484 -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
485 case $$dist_files in \
486 */*) $(MKDIR_P) `echo "$$dist_files" | \
487 sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
488 sort -u` ;; \
489 esac; \
490 for file in $$dist_files; do \
491 if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
492 if test -d $$d/$$file; then \
493 dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
494 if test -d "$(distdir)/$$file"; then \
495 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
496 fi; \
497 if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
498 cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
499 find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
500 fi; \
501 cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
502 else \
503 test -f "$(distdir)/$$file" \
504 || cp -p $$d/$$file "$(distdir)/$$file" \
505 || exit 1; \
506 fi; \
507 done
508check-am: all-am
509check: check-am
510all-am: Makefile $(LTLIBRARIES)
511installdirs:
512 for dir in "$(DESTDIR)$(controllerdir)"; do \
513 test -z "$$dir" || $(MKDIR_P) "$$dir"; \
514 done
515install: install-am
516install-exec: install-exec-am
517install-data: install-data-am
518uninstall: uninstall-am
519
520install-am: all-am
521 @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
522
523installcheck: installcheck-am
524install-strip:
525 $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
526 install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
527 `test -z '$(STRIP)' || \
528 echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
529mostlyclean-generic:
530
531clean-generic:
532
533distclean-generic:
534 -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
535 -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
536
537maintainer-clean-generic:
538 @echo "This command is intended for maintainers to use"
539 @echo "it deletes files that may require special tools to rebuild."
540 -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES)
541clean: clean-am
542
543clean-am: clean-controllerLTLIBRARIES clean-generic clean-libtool \
544 clean-local mostlyclean-am
545
546distclean: distclean-am
547 -rm -rf ./$(DEPDIR)
548 -rm -f Makefile
549distclean-am: clean-am distclean-compile distclean-generic \
550 distclean-tags
551
552dvi: dvi-am
553
554dvi-am:
555
556html: html-am
557
558html-am:
559
560info: info-am
561
562info-am:
563
564install-data-am: install-controllerLTLIBRARIES
565 @$(NORMAL_INSTALL)
566 $(MAKE) $(AM_MAKEFLAGS) install-data-hook
567install-dvi: install-dvi-am
568
569install-dvi-am:
570
571install-exec-am:
572
573install-html: install-html-am
574
575install-html-am:
576
577install-info: install-info-am
578
579install-info-am:
580
581install-man:
582
583install-pdf: install-pdf-am
584
585install-pdf-am:
586
587install-ps: install-ps-am
588
589install-ps-am:
590
591installcheck-am:
592
593maintainer-clean: maintainer-clean-am
594 -rm -rf ./$(DEPDIR)
595 -rm -f Makefile
596maintainer-clean-am: distclean-am maintainer-clean-generic
597
598mostlyclean: mostlyclean-am
599
600mostlyclean-am: mostlyclean-compile mostlyclean-generic \
601 mostlyclean-libtool
602
603pdf: pdf-am
604
605pdf-am:
606
607ps: ps-am
608
609ps-am:
610
611uninstall-am: uninstall-controllerLTLIBRARIES
612 @$(NORMAL_INSTALL)
613 $(MAKE) $(AM_MAKEFLAGS) uninstall-hook
614.MAKE: install-am install-data-am install-strip uninstall-am
615
616.PHONY: CTAGS GTAGS all all-am check check-am clean \
617 clean-controllerLTLIBRARIES clean-generic clean-libtool \
618 clean-local ctags distclean distclean-compile \
619 distclean-generic distclean-libtool distclean-tags distdir dvi \
620 dvi-am html html-am info info-am install install-am \
621 install-controllerLTLIBRARIES install-data install-data-am \
622 install-data-hook install-dvi install-dvi-am install-exec \
623 install-exec-am install-html install-html-am install-info \
624 install-info-am install-man install-pdf install-pdf-am \
625 install-ps install-ps-am install-strip installcheck \
626 installcheck-am installdirs maintainer-clean \
627 maintainer-clean-generic mostlyclean mostlyclean-compile \
628 mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
629 tags uninstall uninstall-am uninstall-controllerLTLIBRARIES \
630 uninstall-hook
631
632
633install-data-hook:
634 rm -f $(DESTDIR)$(controllerdir)/$(controller_LTLIBRARIES)
635uninstall-hook:
636 rm -f $(DESTDIR)$(controllerdir)/module.*
637
638clean-local:
639 rm -rf *.gcno
640
641# Tell versions [3.59,3.63) of GNU make to not export all variables.
642# Otherwise a system limit (for SysV at least) may be exceeded.
643.NOEXPORT:
diff --git a/libraries/eina/src/modules/mp/buddy/eina_buddy.c b/libraries/eina/src/modules/mp/buddy/eina_buddy.c
new file mode 100644
index 0000000..f402c6f
--- /dev/null
+++ b/libraries/eina/src/modules/mp/buddy/eina_buddy.c
@@ -0,0 +1,292 @@
1/* EINA - EFL data type library
2 * Copyright (C) 2009 Jorge Luis Zapata Muga
3 *
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
8 *
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library;
16 * if not, see <http://www.gnu.org/licenses/>.
17 */
18
19/*
20 * This is a naive 'buddy' allocator following Knuth's documentation.
21 * The main difference is that we dont store the block information
22 * on the block memory itself but on another malloc'd area.
23 * This is useful for managing memory which isn't as fast as the main
24 * memory like the video memory
25 * The algorithm uses an area to store the linked list of blocks.
26 * Each block size is equal to the minimum allocatable block size for
27 * the memory pool and the number of blocks is equal to the size of the
28 * memory pool divided by the block size.
29 */
30#ifdef HAVE_CONFIG_H
31# include "config.h"
32#endif
33
34#include <stdio.h>
35
36#include "eina_types.h"
37#include "eina_inlist.h"
38#include "eina_module.h"
39#include "eina_mempool.h"
40#include "eina_private.h"
41
42typedef struct _Block
43{
44 EINA_INLIST;
45 Eina_Bool available : 1;
46 unsigned short int order : 7; /* final order is order + min_order */
47} Block;
48
49typedef struct _Buddy
50{
51 void *heap; /* start address of the heap */
52 size_t size; /* total size in bytes of the heap */
53 unsigned int min_order; /* minimum size is 1 << min_order */
54 unsigned int max_order; /* maximum size is 1 << max_order */
55 unsigned int num_order; /* number of orders */
56 Eina_Inlist **areas; /* one area per order */
57 Block *blocks; /* the allocated block information */
58} Buddy;
59
60/* get the minimum order greater or equal to size */
61static inline unsigned int _get_order(Buddy *b, size_t size)
62{
63 unsigned int i;
64 size_t bytes;
65
66 bytes = 1 << b->min_order;
67 for (i = 0; bytes < size && i < b->num_order; i++)
68 {
69 bytes += bytes;
70 }
71 //printf("order for size %d is %d\n", size, i + b->min_order);
72 return i;
73}
74
75static inline void *_get_offset(Buddy *b, Block *block)
76{
77 void *ret;
78
79 ret = (char *)b->heap + ((block - &b->blocks[0]) << b->min_order);
80 return ret;
81}
82
83static void *_init(__UNUSED__ const char *context,
84 __UNUSED__ const char *options,
85 va_list args)
86{
87 Buddy *b;
88 int i;
89 size_t bytes;
90 size_t size;
91 size_t min_order;
92 void *heap;
93
94 heap = va_arg(args, void *);
95 size = va_arg(args, size_t);
96 min_order = va_arg(args, int);
97 /* the minimum order we support is 15 (32K) */
98 min_order = min_order < 15 ? 15 : min_order;
99 bytes = 1 << min_order;
100 for (i = 0; bytes <= size; i++)
101 {
102 bytes += bytes;
103 }
104 if (!i)
105 return NULL;
106
107 b = malloc(sizeof(Buddy));
108 b->heap = heap;
109 b->size = size;
110 b->min_order = min_order;
111 b->max_order = min_order + i - 1;
112 b->num_order = i;
113 b->areas = calloc(b->num_order, sizeof(Eina_Inlist *));
114 b->blocks = calloc(1 << (b->num_order - 1), sizeof(Block));
115 /* setup the initial free area */
116 b->blocks[0].available = EINA_TRUE;
117 b->areas[b->num_order - 1] = EINA_INLIST_GET(&(b->blocks[0]));
118
119 return b;
120}
121
122static void _shutdown(void *data)
123{
124 Buddy *b = data;
125
126 free(b->blocks);
127 free(b->areas);
128 free(b);
129}
130
131static void _free(void *data, void *element)
132{
133 Buddy *b = data;
134 Block *block, *buddy;
135 size_t offset;
136 size_t index;
137
138 offset = (unsigned char *)element - (unsigned char *)b->heap;
139 if (offset > b->size)
140 return;
141
142 index = offset >> b->min_order;
143 block = &b->blocks[index];
144
145 //printf("free %x index = %d order = %d buddy = %d\n", offset, index, block->order, index ^ (1 << block->order));
146 /* we should always work with the buddy at right */
147 if (index & (1 << block->order))
148 {
149 Block *left;
150
151 index = index ^ (1 << block->order);
152 left = &b->blocks[index];
153 if (!left->available)
154 goto end;
155 else
156 {
157 buddy = block;
158 block = left;
159 b->areas[block->order] = eina_inlist_remove(b->areas[block->order],
160 EINA_INLIST_GET(block));
161 block->order++;
162 }
163 }
164
165check:
166 /* already on the last order */
167 if (block->order + b->min_order == b->max_order)
168 {
169 goto end; /* get the buddy */
170
171 }
172
173 buddy = &b->blocks[index ^ (1 << block->order)];
174 if (!buddy->available)
175 {
176 goto end; /* merge two blocks */
177
178 }
179
180 b->areas[block->order] = eina_inlist_remove(b->areas[block->order],
181 EINA_INLIST_GET(buddy));
182 block->order++;
183 goto check;
184end:
185 /* add the block to the free list */
186 block->available = EINA_TRUE;
187 b->areas[block->order] = eina_inlist_append(b->areas[block->order],
188 EINA_INLIST_GET(block));
189}
190
191static void *_alloc(void *data, unsigned int size)
192{
193 Buddy *b = data;
194 Block *block, *buddy;
195 unsigned int k, j;
196
197 k = j = _get_order(b, size);
198 /* get a free list of order k where k <= j <= max_order */
199 while ((j < b->num_order) && !b->areas[j])
200 j++;
201 /* check that the order is on our range */
202 if (j + b->min_order > b->max_order)
203 return NULL;
204
205 /* get a free element on this order, if not, go splitting until we find one */
206 //printf("getting order %d (%d) for size %d\n", j, k, size);
207found:
208 if (j == k)
209 {
210 void *ret;
211
212 block = EINA_INLIST_CONTAINER_GET(b->areas[j], Block);
213 block->available = EINA_FALSE;
214 block->order = j;
215 /* remove the block from the list */
216 b->areas[j] = eina_inlist_remove(b->areas[j], EINA_INLIST_GET(block));
217 ret = _get_offset(b, block);
218
219 return ret;
220 }
221
222 block = EINA_INLIST_CONTAINER_GET(b->areas[j], Block);
223 /* split */
224 b->areas[j] = eina_inlist_remove(b->areas[j], EINA_INLIST_GET(block));
225 j--;
226 b->areas[j] = eina_inlist_append(b->areas[j], EINA_INLIST_GET(block));
227 buddy = block + (1 << j);
228 buddy->order = j;
229 buddy->available = EINA_TRUE;
230 b->areas[j] = eina_inlist_append(b->areas[j], EINA_INLIST_GET(buddy));
231
232 goto found;
233}
234
235static void _statistics(void *data)
236{
237 Buddy *b = data;
238 unsigned int i;
239
240 printf("Information:\n");
241 printf(
242 "size = %li, min_order = %d, max_order = %d, num_order = %d, num_blocks = %d (%luKB)\n",
243 b->size,
244 b->min_order,
245 b->max_order,
246 b->num_order,
247 1 << b->num_order,
248 ((1 << (b->num_order)) * sizeof(Block)) / 1024);
249 printf("Area dumping:");
250 /* iterate over the free lists and dump the maps */
251 for (i = 0; i < b->num_order; i++)
252 {
253 Block *block;
254
255 printf("\n2^%d:", b->min_order + i);
256 EINA_INLIST_FOREACH(b->areas[i], block)
257 {
258 printf(" %li", (block - &b->blocks[0]));
259 }
260 }
261 printf("\nBlocks dumping:\n");
262}
263
264static Eina_Mempool_Backend _backend = {
265 "buddy",
266 &_init,
267 &_free,
268 &_alloc,
269 NULL, /* realloc */
270 NULL, /* garbage collect */
271 &_statistics,
272 &_shutdown,
273 NULL /* repack */
274};
275
276Eina_Bool buddy_init(void)
277{
278 return eina_mempool_register(&_backend);
279}
280
281void buddy_shutdown(void)
282{
283 eina_mempool_unregister(&_backend);
284}
285
286
287#ifndef EINA_STATIC_BUILD_BUDDY
288
289EINA_MODULE_INIT(buddy_init);
290EINA_MODULE_SHUTDOWN(buddy_shutdown);
291
292#endif /* ! EINA_STATIC_BUILD_BUDDY */