Changes in / [3d560060:dd9b59e]


Ignore:
Location:
src
Files:
5 added
3 deleted
23 edited

Legend:

Unmodified
Added
Removed
  • src/ControlStruct/ExceptTranslate.cc

    r3d560060 rdd9b59e  
    211211                        ThrowStmt *throwStmt ) {
    212212                // __throw_terminate( `throwStmt->get_name()` ); }
    213                 return create_given_throw( "__cfaabi_ehm__throw_terminate", throwStmt );
     213                return create_given_throw( "__cfaehm__throw_terminate", throwStmt );
    214214        }
    215215
     
    232232                result->push_back( new ExprStmt(
    233233                        noLabels,
    234                         new UntypedExpr( new NameExpr( "__cfaabi_ehm__rethrow_terminate" ) )
     234                        new UntypedExpr( new NameExpr( "__cfaehm__rethrow_terminate" ) )
    235235                        ) );
    236236                delete throwStmt;
     
    241241                        ThrowStmt *throwStmt ) {
    242242                // __throw_resume( `throwStmt->get_name` );
    243                 return create_given_throw( "__cfaabi_ehm__throw_resume", throwStmt );
     243                return create_given_throw( "__cfaehm__throw_resume", throwStmt );
    244244        }
    245245
     
    309309                        local_except->get_attributes().push_back( new Attribute(
    310310                                "cleanup",
    311                                 { new NameExpr( "__cfaabi_ehm__cleanup_terminate" ) }
     311                                { new NameExpr( "__cfaehm__cleanup_terminate" ) }
    312312                                ) );
    313313
     
    432432                        FunctionDecl * terminate_catch,
    433433                        FunctionDecl * terminate_match ) {
    434                 // { __cfaabi_ehm__try_terminate(`try`, `catch`, `match`); }
     434                // { __cfaehm__try_terminate(`try`, `catch`, `match`); }
    435435
    436436                UntypedExpr * caller = new UntypedExpr( new NameExpr(
    437                         "__cfaabi_ehm__try_terminate" ) );
     437                        "__cfaehm__try_terminate" ) );
    438438                std::list<Expression *>& args = caller->get_args();
    439439                args.push_back( nameOf( try_wrapper ) );
     
    489489
    490490                // struct __try_resume_node __resume_node
    491                 //      __attribute__((cleanup( __cfaabi_ehm__try_resume_cleanup )));
     491                //      __attribute__((cleanup( __cfaehm__try_resume_cleanup )));
    492492                // ** unwinding of the stack here could cause problems **
    493493                // ** however I don't think that can happen currently **
    494                 // __cfaabi_ehm__try_resume_setup( &__resume_node, resume_handler );
     494                // __cfaehm__try_resume_setup( &__resume_node, resume_handler );
    495495
    496496                std::list< Attribute * > attributes;
     
    498498                        std::list< Expression * > attr_params;
    499499                        attr_params.push_back( new NameExpr(
    500                                 "__cfaabi_ehm__try_resume_cleanup" ) );
     500                                "__cfaehm__try_resume_cleanup" ) );
    501501                        attributes.push_back( new Attribute( "cleanup", attr_params ) );
    502502                }
     
    517517
    518518                UntypedExpr *setup = new UntypedExpr( new NameExpr(
    519                         "__cfaabi_ehm__try_resume_setup" ) );
     519                        "__cfaehm__try_resume_setup" ) );
    520520                setup->get_args().push_back( new AddressExpr( nameOf( obj ) ) );
    521521                setup->get_args().push_back( nameOf( resume_handler ) );
     
    542542        ObjectDecl * ExceptionMutatorCore::create_finally_hook(
    543543                        FunctionDecl * finally_wrapper ) {
    544                 // struct __cfaabi_ehm__cleanup_hook __finally_hook
     544                // struct __cfaehm__cleanup_hook __finally_hook
    545545                //      __attribute__((cleanup( finally_wrapper )));
    546546
     
    596596                        // Skip children?
    597597                        return;
    598                 } else if ( structDecl->get_name() == "__cfaabi_ehm__base_exception_t" ) {
     598                } else if ( structDecl->get_name() == "__cfaehm__base_exception_t" ) {
    599599                        assert( nullptr == except_decl );
    600600                        except_decl = structDecl;
    601601                        init_func_types();
    602                 } else if ( structDecl->get_name() == "__cfaabi_ehm__try_resume_node" ) {
     602                } else if ( structDecl->get_name() == "__cfaehm__try_resume_node" ) {
    603603                        assert( nullptr == node_decl );
    604604                        node_decl = structDecl;
    605                 } else if ( structDecl->get_name() == "__cfaabi_ehm__cleanup_hook" ) {
     605                } else if ( structDecl->get_name() == "__cfaehm__cleanup_hook" ) {
    606606                        assert( nullptr == hook_decl );
    607607                        hook_decl = structDecl;
  • src/ResolvExpr/Resolver.cc

    r3d560060 rdd9b59e  
    369369                if ( throwStmt->get_expr() ) {
    370370                        StructDecl * exception_decl =
    371                                 indexer.lookupStruct( "__cfaabi_ehm__base_exception_t" );
     371                                indexer.lookupStruct( "__cfaehm__base_exception_t" );
    372372                        assert( exception_decl );
    373373                        Type * exceptType = new PointerType( noQualifiers, new StructInstType( noQualifiers, exception_decl ) );
  • src/driver/cfa.cc

    r3d560060 rdd9b59e  
    275275                args[nargs] = "-Xlinker";
    276276                nargs += 1;
    277                 args[nargs] = "--undefined=__cfaabi_dbg_bits_write";
     277                args[nargs] = "--undefined=__lib_debug_write";
    278278                nargs += 1;
    279279
  • src/libcfa/Makefile.am

    r3d560060 rdd9b59e  
    5555
    5656libobjs = ${headers:=.o}
    57 libsrc = libcfa-prelude.c interpose.c bits/debug.c ${headers:=.c} \
     57libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \
    5858         assert.c exception.c virtual.c
    5959
     
    100100        math                            \
    101101        gmp                             \
    102         bits/align.h            \
    103102        bits/containers.h               \
    104103        bits/defs.h             \
    105         bits/debug.h            \
    106104        bits/locks.h            \
    107         concurrency/invoke.h
     105        concurrency/invoke.h    \
     106        libhdr.h                        \
     107        libhdr/libalign.h       \
     108        libhdr/libdebug.h       \
     109        libhdr/libtools.h
    108110
    109111CLEANFILES = libcfa-prelude.c
  • src/libcfa/Makefile.in

    r3d560060 rdd9b59e  
    149149libcfa_d_a_LIBADD =
    150150am__libcfa_d_a_SOURCES_DIST = libcfa-prelude.c interpose.c \
    151         bits/debug.c fstream.c iostream.c iterator.c limits.c \
     151        libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \
    152152        rational.c stdlib.c containers/maybe.c containers/pair.c \
    153153        containers/result.c containers/vector.c \
     
    175175@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_d_a-preemption.$(OBJEXT)
    176176am__objects_4 = libcfa_d_a-libcfa-prelude.$(OBJEXT) \
    177         libcfa_d_a-interpose.$(OBJEXT) bits/libcfa_d_a-debug.$(OBJEXT) \
    178         $(am__objects_2) libcfa_d_a-assert.$(OBJEXT) \
    179         libcfa_d_a-exception.$(OBJEXT) libcfa_d_a-virtual.$(OBJEXT) \
    180         $(am__objects_3)
     177        libcfa_d_a-interpose.$(OBJEXT) \
     178        libhdr/libcfa_d_a-libdebug.$(OBJEXT) $(am__objects_2) \
     179        libcfa_d_a-assert.$(OBJEXT) libcfa_d_a-exception.$(OBJEXT) \
     180        libcfa_d_a-virtual.$(OBJEXT) $(am__objects_3)
    181181am_libcfa_d_a_OBJECTS = $(am__objects_4)
    182182libcfa_d_a_OBJECTS = $(am_libcfa_d_a_OBJECTS)
    183183libcfa_a_AR = $(AR) $(ARFLAGS)
    184184libcfa_a_LIBADD =
    185 am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c bits/debug.c \
    186         fstream.c iostream.c iterator.c limits.c rational.c stdlib.c \
    187         containers/maybe.c containers/pair.c containers/result.c \
    188         containers/vector.c concurrency/coroutine.c \
    189         concurrency/thread.c concurrency/kernel.c \
    190         concurrency/monitor.c assert.c exception.c virtual.c \
    191         concurrency/CtxSwitch-@MACHINE_TYPE@.S concurrency/alarm.c \
    192         concurrency/invoke.c concurrency/preemption.c
     185am__libcfa_a_SOURCES_DIST = libcfa-prelude.c interpose.c \
     186        libhdr/libdebug.c fstream.c iostream.c iterator.c limits.c \
     187        rational.c stdlib.c containers/maybe.c containers/pair.c \
     188        containers/result.c containers/vector.c \
     189        concurrency/coroutine.c concurrency/thread.c \
     190        concurrency/kernel.c concurrency/monitor.c assert.c \
     191        exception.c virtual.c concurrency/CtxSwitch-@MACHINE_TYPE@.S \
     192        concurrency/alarm.c concurrency/invoke.c \
     193        concurrency/preemption.c
    193194@BUILD_CONCURRENCY_TRUE@am__objects_5 = concurrency/libcfa_a-coroutine.$(OBJEXT) \
    194195@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_a-thread.$(OBJEXT) \
     
    207208@BUILD_CONCURRENCY_TRUE@        concurrency/libcfa_a-preemption.$(OBJEXT)
    208209am__objects_8 = libcfa_a-libcfa-prelude.$(OBJEXT) \
    209         libcfa_a-interpose.$(OBJEXT) bits/libcfa_a-debug.$(OBJEXT) \
    210         $(am__objects_6) libcfa_a-assert.$(OBJEXT) \
    211         libcfa_a-exception.$(OBJEXT) libcfa_a-virtual.$(OBJEXT) \
    212         $(am__objects_7)
     210        libcfa_a-interpose.$(OBJEXT) \
     211        libhdr/libcfa_a-libdebug.$(OBJEXT) $(am__objects_6) \
     212        libcfa_a-assert.$(OBJEXT) libcfa_a-exception.$(OBJEXT) \
     213        libcfa_a-virtual.$(OBJEXT) $(am__objects_7)
    213214am_libcfa_a_OBJECTS = $(am__objects_8)
    214215libcfa_a_OBJECTS = $(am_libcfa_a_OBJECTS)
     
    263264        containers/result containers/vector concurrency/coroutine \
    264265        concurrency/thread concurrency/kernel concurrency/monitor \
    265         ${shell echo stdhdr/*} math gmp bits/align.h bits/containers.h \
    266         bits/defs.h bits/debug.h bits/locks.h concurrency/invoke.h
     266        ${shell echo stdhdr/*} math gmp bits/containers.h bits/defs.h \
     267        bits/locks.h concurrency/invoke.h libhdr.h libhdr/libalign.h \
     268        libhdr/libdebug.h libhdr/libtools.h
    267269HEADERS = $(nobase_cfa_include_HEADERS)
    268270am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
     
    422424        containers/vector $(am__append_3)
    423425libobjs = ${headers:=.o}
    424 libsrc = libcfa-prelude.c interpose.c bits/debug.c ${headers:=.c} \
     426libsrc = libcfa-prelude.c interpose.c libhdr/libdebug.c ${headers:=.c} \
    425427        assert.c exception.c virtual.c $(am__append_4)
    426428libcfa_a_SOURCES = ${libsrc}
     
    435437        math                            \
    436438        gmp                             \
    437         bits/align.h            \
    438439        bits/containers.h               \
    439440        bits/defs.h             \
    440         bits/debug.h            \
    441441        bits/locks.h            \
    442         concurrency/invoke.h
     442        concurrency/invoke.h    \
     443        libhdr.h                        \
     444        libhdr/libalign.h       \
     445        libhdr/libdebug.h       \
     446        libhdr/libtools.h
    443447
    444448CLEANFILES = libcfa-prelude.c
     
    507511clean-libLIBRARIES:
    508512        -test -z "$(lib_LIBRARIES)" || rm -f $(lib_LIBRARIES)
    509 bits/$(am__dirstamp):
    510         @$(MKDIR_P) bits
    511         @: > bits/$(am__dirstamp)
    512 bits/$(DEPDIR)/$(am__dirstamp):
    513         @$(MKDIR_P) bits/$(DEPDIR)
    514         @: > bits/$(DEPDIR)/$(am__dirstamp)
    515 bits/libcfa_d_a-debug.$(OBJEXT): bits/$(am__dirstamp) \
    516         bits/$(DEPDIR)/$(am__dirstamp)
     513libhdr/$(am__dirstamp):
     514        @$(MKDIR_P) libhdr
     515        @: > libhdr/$(am__dirstamp)
     516libhdr/$(DEPDIR)/$(am__dirstamp):
     517        @$(MKDIR_P) libhdr/$(DEPDIR)
     518        @: > libhdr/$(DEPDIR)/$(am__dirstamp)
     519libhdr/libcfa_d_a-libdebug.$(OBJEXT): libhdr/$(am__dirstamp) \
     520        libhdr/$(DEPDIR)/$(am__dirstamp)
    517521containers/$(am__dirstamp):
    518522        @$(MKDIR_P) containers
     
    559563        $(AM_V_AR)$(libcfa_d_a_AR) libcfa-d.a $(libcfa_d_a_OBJECTS) $(libcfa_d_a_LIBADD)
    560564        $(AM_V_at)$(RANLIB) libcfa-d.a
    561 bits/libcfa_a-debug.$(OBJEXT): bits/$(am__dirstamp) \
    562         bits/$(DEPDIR)/$(am__dirstamp)
     565libhdr/libcfa_a-libdebug.$(OBJEXT): libhdr/$(am__dirstamp) \
     566        libhdr/$(DEPDIR)/$(am__dirstamp)
    563567containers/libcfa_a-maybe.$(OBJEXT): containers/$(am__dirstamp) \
    564568        containers/$(DEPDIR)/$(am__dirstamp)
     
    592596mostlyclean-compile:
    593597        -rm -f *.$(OBJEXT)
    594         -rm -f bits/*.$(OBJEXT)
    595598        -rm -f concurrency/*.$(OBJEXT)
    596599        -rm -f containers/*.$(OBJEXT)
     600        -rm -f libhdr/*.$(OBJEXT)
    597601
    598602distclean-compile:
     
    621625@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-stdlib.Po@am__quote@
    622626@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcfa_d_a-virtual.Po@am__quote@
    623 @AMDEP_TRUE@@am__include@ @am__quote@bits/$(DEPDIR)/libcfa_a-debug.Po@am__quote@
    624 @AMDEP_TRUE@@am__include@ @am__quote@bits/$(DEPDIR)/libcfa_d_a-debug.Po@am__quote@
    625627@AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/CtxSwitch-@MACHINE_TYPE@.Po@am__quote@
    626628@AMDEP_TRUE@@am__include@ @am__quote@concurrency/$(DEPDIR)/libcfa_a-alarm.Po@am__quote@
     
    646648@AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_d_a-result.Po@am__quote@
    647649@AMDEP_TRUE@@am__include@ @am__quote@containers/$(DEPDIR)/libcfa_d_a-vector.Po@am__quote@
     650@AMDEP_TRUE@@am__include@ @am__quote@libhdr/$(DEPDIR)/libcfa_a-libdebug.Po@am__quote@
     651@AMDEP_TRUE@@am__include@ @am__quote@libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Po@am__quote@
    648652
    649653.S.o:
     
    700704@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libcfa_d_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi`
    701705
    702 bits/libcfa_d_a-debug.o: bits/debug.c
    703 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT bits/libcfa_d_a-debug.o -MD -MP -MF bits/$(DEPDIR)/libcfa_d_a-debug.Tpo -c -o bits/libcfa_d_a-debug.o `test -f 'bits/debug.c' || echo '$(srcdir)/'`bits/debug.c
    704 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) bits/$(DEPDIR)/libcfa_d_a-debug.Tpo bits/$(DEPDIR)/libcfa_d_a-debug.Po
    705 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='bits/debug.c' object='bits/libcfa_d_a-debug.o' libtool=no @AMDEPBACKSLASH@
    706 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    707 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_d_a-debug.o `test -f 'bits/debug.c' || echo '$(srcdir)/'`bits/debug.c
    708 
    709 bits/libcfa_d_a-debug.obj: bits/debug.c
    710 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT bits/libcfa_d_a-debug.obj -MD -MP -MF bits/$(DEPDIR)/libcfa_d_a-debug.Tpo -c -o bits/libcfa_d_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
    711 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) bits/$(DEPDIR)/libcfa_d_a-debug.Tpo bits/$(DEPDIR)/libcfa_d_a-debug.Po
    712 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='bits/debug.c' object='bits/libcfa_d_a-debug.obj' libtool=no @AMDEPBACKSLASH@
    713 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    714 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_d_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
     706libhdr/libcfa_d_a-libdebug.o: libhdr/libdebug.c
     707@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_d_a-libdebug.o -MD -MP -MF libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Tpo -c -o libhdr/libcfa_d_a-libdebug.o `test -f 'libhdr/libdebug.c' || echo '$(srcdir)/'`libhdr/libdebug.c
     708@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Tpo libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Po
     709@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='libhdr/libdebug.c' object='libhdr/libcfa_d_a-libdebug.o' libtool=no @AMDEPBACKSLASH@
     710@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     711@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_d_a-libdebug.o `test -f 'libhdr/libdebug.c' || echo '$(srcdir)/'`libhdr/libdebug.c
     712
     713libhdr/libcfa_d_a-libdebug.obj: libhdr/libdebug.c
     714@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_d_a-libdebug.obj -MD -MP -MF libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Tpo -c -o libhdr/libcfa_d_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi`
     715@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Tpo libhdr/$(DEPDIR)/libcfa_d_a-libdebug.Po
     716@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='libhdr/libdebug.c' object='libhdr/libcfa_d_a-libdebug.obj' libtool=no @AMDEPBACKSLASH@
     717@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     718@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_d_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_d_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi`
    715719
    716720libcfa_d_a-fstream.o: fstream.c
     
    994998@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libcfa_a-interpose.obj `if test -f 'interpose.c'; then $(CYGPATH_W) 'interpose.c'; else $(CYGPATH_W) '$(srcdir)/interpose.c'; fi`
    995999
    996 bits/libcfa_a-debug.o: bits/debug.c
    997 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT bits/libcfa_a-debug.o -MD -MP -MF bits/$(DEPDIR)/libcfa_a-debug.Tpo -c -o bits/libcfa_a-debug.o `test -f 'bits/debug.c' || echo '$(srcdir)/'`bits/debug.c
    998 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) bits/$(DEPDIR)/libcfa_a-debug.Tpo bits/$(DEPDIR)/libcfa_a-debug.Po
    999 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='bits/debug.c' object='bits/libcfa_a-debug.o' libtool=no @AMDEPBACKSLASH@
    1000 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1001 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_a-debug.o `test -f 'bits/debug.c' || echo '$(srcdir)/'`bits/debug.c
    1002 
    1003 bits/libcfa_a-debug.obj: bits/debug.c
    1004 @am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT bits/libcfa_a-debug.obj -MD -MP -MF bits/$(DEPDIR)/libcfa_a-debug.Tpo -c -o bits/libcfa_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
    1005 @am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) bits/$(DEPDIR)/libcfa_a-debug.Tpo bits/$(DEPDIR)/libcfa_a-debug.Po
    1006 @AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='bits/debug.c' object='bits/libcfa_a-debug.obj' libtool=no @AMDEPBACKSLASH@
    1007 @AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
    1008 @am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o bits/libcfa_a-debug.obj `if test -f 'bits/debug.c'; then $(CYGPATH_W) 'bits/debug.c'; else $(CYGPATH_W) '$(srcdir)/bits/debug.c'; fi`
     1000libhdr/libcfa_a-libdebug.o: libhdr/libdebug.c
     1001@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_a-libdebug.o -MD -MP -MF libhdr/$(DEPDIR)/libcfa_a-libdebug.Tpo -c -o libhdr/libcfa_a-libdebug.o `test -f 'libhdr/libdebug.c' || echo '$(srcdir)/'`libhdr/libdebug.c
     1002@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_a-libdebug.Tpo libhdr/$(DEPDIR)/libcfa_a-libdebug.Po
     1003@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='libhdr/libdebug.c' object='libhdr/libcfa_a-libdebug.o' libtool=no @AMDEPBACKSLASH@
     1004@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1005@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_a-libdebug.o `test -f 'libhdr/libdebug.c' || echo '$(srcdir)/'`libhdr/libdebug.c
     1006
     1007libhdr/libcfa_a-libdebug.obj: libhdr/libdebug.c
     1008@am__fastdepCC_TRUE@    $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -MT libhdr/libcfa_a-libdebug.obj -MD -MP -MF libhdr/$(DEPDIR)/libcfa_a-libdebug.Tpo -c -o libhdr/libcfa_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi`
     1009@am__fastdepCC_TRUE@    $(AM_V_at)$(am__mv) libhdr/$(DEPDIR)/libcfa_a-libdebug.Tpo libhdr/$(DEPDIR)/libcfa_a-libdebug.Po
     1010@AMDEP_TRUE@@am__fastdepCC_FALSE@       $(AM_V_CC)source='libhdr/libdebug.c' object='libhdr/libcfa_a-libdebug.obj' libtool=no @AMDEPBACKSLASH@
     1011@AMDEP_TRUE@@am__fastdepCC_FALSE@       DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
     1012@am__fastdepCC_FALSE@   $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libcfa_a_CFLAGS) $(CFLAGS) -c -o libhdr/libcfa_a-libdebug.obj `if test -f 'libhdr/libdebug.c'; then $(CYGPATH_W) 'libhdr/libdebug.c'; else $(CYGPATH_W) '$(srcdir)/libhdr/libdebug.c'; fi`
    10091013
    10101014libcfa_a-fstream.o: fstream.c
     
    14071411        -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
    14081412        -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
    1409         -rm -f bits/$(DEPDIR)/$(am__dirstamp)
    1410         -rm -f bits/$(am__dirstamp)
    14111413        -rm -f concurrency/$(DEPDIR)/$(am__dirstamp)
    14121414        -rm -f concurrency/$(am__dirstamp)
    14131415        -rm -f containers/$(DEPDIR)/$(am__dirstamp)
    14141416        -rm -f containers/$(am__dirstamp)
     1417        -rm -f libhdr/$(DEPDIR)/$(am__dirstamp)
     1418        -rm -f libhdr/$(am__dirstamp)
    14151419
    14161420maintainer-clean-generic:
     
    14221426
    14231427distclean: distclean-am
    1424         -rm -rf ./$(DEPDIR) bits/$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR)
     1428        -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) libhdr/$(DEPDIR)
    14251429        -rm -f Makefile
    14261430distclean-am: clean-am distclean-compile distclean-generic \
     
    14681472
    14691473maintainer-clean: maintainer-clean-am
    1470         -rm -rf ./$(DEPDIR) bits/$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR)
     1474        -rm -rf ./$(DEPDIR) concurrency/$(DEPDIR) containers/$(DEPDIR) libhdr/$(DEPDIR)
    14711475        -rm -f Makefile
    14721476maintainer-clean-am: distclean-am maintainer-clean-generic \
  • src/libcfa/assert.c

    r3d560060 rdd9b59e  
    1717#include <stdarg.h>                                                             // varargs
    1818#include <stdio.h>                                                              // fprintf
    19 #include "bits/debug.h"
     19#include "libhdr/libdebug.h"
    2020
    2121extern "C" {
     
    2626        // called by macro assert in assert.h
    2727        void __assert_fail( const char *assertion, const char *file, unsigned int line, const char *function ) {
    28                 __cfaabi_dbg_bits_print_safe( CFA_ASSERT_FMT ".\n", __progname, function, line, file );
     28                __lib_debug_print_safe( CFA_ASSERT_FMT ".\n", __progname, function, line, file );
    2929                abort();
    3030        }
     
    3232        // called by macro assertf
    3333        void __assert_fail_f( const char *assertion, const char *file, unsigned int line, const char *function, const char *fmt, ... ) {
    34                 __cfaabi_dbg_bits_acquire();
    35                 __cfaabi_dbg_bits_print_nolock( CFA_ASSERT_FMT ": ", __progname, function, line, file );
     34                __lib_debug_acquire();
     35                __lib_debug_print_nolock( CFA_ASSERT_FMT ": ", __progname, function, line, file );
    3636
    3737                va_list args;
    3838                va_start( args, fmt );
    39                 __cfaabi_dbg_bits_print_vararg( fmt, args );
     39                __lib_debug_print_vararg( fmt, args );
    4040                va_end( args );
    4141
    42                 __cfaabi_dbg_bits_print_nolock( "\n" );
    43                 __cfaabi_dbg_bits_release();
     42                __lib_debug_print_nolock( "\n" );
     43                __lib_debug_release();
    4444                abort();
    4545        }
  • src/libcfa/bits/containers.h

    r3d560060 rdd9b59e  
    1515#pragma once
    1616
    17 #include "bits/align.h"
    1817#include "bits/defs.h"
     18#include "libhdr.h"
    1919
    2020//-----------------------------------------------------------------------------
  • src/libcfa/bits/defs.h

    r3d560060 rdd9b59e  
    3232#define __cfa_anonymous_object __cfa_anonymous_object
    3333#endif
    34 
    35 #ifdef __cforall
    36 extern "C" {
    37 #endif
    38 void abortf( const char fmt[], ... ) __attribute__ ((__nothrow__, __leaf__, __noreturn__));
    39 #ifdef __cforall
    40 }
    41 #endif
  • src/libcfa/bits/locks.h

    r3d560060 rdd9b59e  
    1616#pragma once
    1717
    18 #include "bits/debug.h"
    1918#include "bits/defs.h"
     19
     20#include "libhdr.h"
    2021
    2122// pause to prevent excess processor bus usage
     
    6465
    6566        // Lock the spinlock, return false if already acquired
    66         static inline _Bool try_lock  ( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) {
     67        static inline _Bool try_lock  ( __spinlock_t & this DEBUG_CTX_PARAM2 ) {
    6768                _Bool result = __lock_test_and_test_and_set( this.lock );
    68                 __cfaabi_dbg_debug_do(
     69                LIB_DEBUG_DO(
    6970                        if( result ) {
    7071                                this.prev_name = caller;
     
    7677
    7778        // Lock the spinlock, spin if already acquired
    78         static inline void lock( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) {
     79        static inline void lock( __spinlock_t & this DEBUG_CTX_PARAM2 ) {
    7980                #ifndef NOEXPBACK
    8081                        enum { SPIN_START = 4, SPIN_END = 64 * 1024, };
     
    9798                        #endif
    9899                }
    99                 __cfaabi_dbg_debug_do(
     100                LIB_DEBUG_DO(
    100101                        this.prev_name = caller;
    101102                        this.prev_thrd = this_thread;
     
    104105
    105106        // Lock the spinlock, spin if already acquired
    106         static inline void lock_yield( __spinlock_t & this __cfaabi_dbg_ctx_param2 ) {
     107        static inline void lock_yield( __spinlock_t & this DEBUG_CTX_PARAM2 ) {
    107108                for ( unsigned int i = 1;; i += 1 ) {
    108109                        if ( __lock_test_and_test_and_set( this.lock ) ) break;
    109110                        yield( i );
    110111                }
    111                 __cfaabi_dbg_debug_do(
     112                LIB_DEBUG_DO(
    112113                        this.prev_name = caller;
    113114                        this.prev_thrd = this_thread;
  • src/libcfa/concurrency/alarm.c

    r3d560060 rdd9b59e  
    2323}
    2424
     25#include "libhdr.h"
     26
    2527#include "alarm.h"
    2628#include "kernel_private.h"
     
    108110}
    109111
    110 __cfaabi_dbg_debug_do( bool validate( alarm_list_t * this ) {
     112LIB_DEBUG_DO( bool validate( alarm_list_t * this ) {
    111113        alarm_node_t ** it = &this->head;
    112114        while( (*it) ) {
     
    184186
    185187        disable_interrupts();
    186         lock( event_kernel->lock __cfaabi_dbg_ctx2 );
     188        lock( event_kernel->lock DEBUG_CTX2 );
    187189        {
    188190                verify( validate( alarms ) );
     
    196198        unlock( event_kernel->lock );
    197199        this->set = true;
    198         enable_interrupts( __cfaabi_dbg_ctx );
     200        enable_interrupts( DEBUG_CTX );
    199201}
    200202
    201203void unregister_self( alarm_node_t * this ) {
    202204        disable_interrupts();
    203         lock( event_kernel->lock __cfaabi_dbg_ctx2 );
     205        lock( event_kernel->lock DEBUG_CTX2 );
    204206        {
    205207                verify( validate( &event_kernel->alarms ) );
     
    207209        }
    208210        unlock( event_kernel->lock );
    209         enable_interrupts( __cfaabi_dbg_ctx );
     211        enable_interrupts( DEBUG_CTX );
    210212        this->set = false;
    211213}
  • src/libcfa/concurrency/coroutine.c

    r3d560060 rdd9b59e  
    2929#define __CFA_INVOKE_PRIVATE__
    3030#include "invoke.h"
     31
    3132
    3233//-----------------------------------------------------------------------------
     
    7576void ^?{}(coStack_t & this) {
    7677        if ( ! this.userStack && this.storage ) {
    77                 __cfaabi_dbg_debug_do(
     78                LIB_DEBUG_DO(
    7879                        if ( mprotect( this.storage, pageSize, PROT_READ | PROT_WRITE ) == -1 ) {
    7980                                abortf( "(coStack_t *)%p.^?{}() : internal error, mprotect failure, error(%d) %s.", &this, errno, strerror( errno ) );
     
    130131
    131132                // assume malloc has 8 byte alignment so add 8 to allow rounding up to 16 byte alignment
    132                 __cfaabi_dbg_debug_do( this->storage = memalign( pageSize, cxtSize + this->size + pageSize ) );
    133                 __cfaabi_dbg_no_debug_do( this->storage = malloc( cxtSize + this->size + 8 ) );
     133                LIB_DEBUG_DO( this->storage = memalign( pageSize, cxtSize + this->size + pageSize ) );
     134                LIB_NO_DEBUG_DO( this->storage = malloc( cxtSize + this->size + 8 ) );
    134135
    135                 __cfaabi_dbg_debug_do(
     136                LIB_DEBUG_DO(
    136137                        if ( mprotect( this->storage, pageSize, PROT_NONE ) == -1 ) {
    137138                                abortf( "(uMachContext &)%p.createContext() : internal error, mprotect failure, error(%d) %s.", this, (int)errno, strerror( (int)errno ) );
     
    143144                } // if
    144145
    145                 __cfaabi_dbg_debug_do( this->limit = (char *)this->storage + pageSize );
    146                 __cfaabi_dbg_no_debug_do( this->limit = (char *)libCeiling( (unsigned long)this->storage, 16 ) ); // minimum alignment
     146                LIB_DEBUG_DO( this->limit = (char *)this->storage + pageSize );
     147                LIB_NO_DEBUG_DO( this->limit = (char *)libCeiling( (unsigned long)this->storage, 16 ) ); // minimum alignment
    147148
    148149        } else {
  • src/libcfa/concurrency/invoke.c

    r3d560060 rdd9b59e  
    1818#include <stdio.h>
    1919
     20#include "libhdr.h"
    2021#include "invoke.h"
    2122
     
    3031extern void __leave_thread_monitor( struct thread_desc * this );
    3132extern void disable_interrupts();
    32 extern void enable_interrupts( __cfaabi_dbg_ctx_param );
     33extern void enable_interrupts( DEBUG_CTX_PARAM );
    3334
    3435void CtxInvokeCoroutine(
    35         void (*main)(void *),
    36         struct coroutine_desc *(*get_coroutine)(void *),
    37         void *this
     36      void (*main)(void *),
     37      struct coroutine_desc *(*get_coroutine)(void *),
     38      void *this
    3839) {
    39         struct coroutine_desc* cor = get_coroutine( this );
     40      // LIB_DEBUG_PRINTF("Invoke Coroutine : Received %p (main %p, get_c %p)\n", this, main, get_coroutine);
    4041
    41         if(cor->state == Primed) {
    42                 __suspend_internal();
    43         }
     42      struct coroutine_desc* cor = get_coroutine( this );
    4443
    45         cor->state = Active;
     44      if(cor->state == Primed) {
     45            __suspend_internal();
     46      }
    4647
    47         main( this );
     48      cor->state = Active;
    4849
    49         cor->state = Halted;
     50      main( this );
    5051
    51         //Final suspend, should never return
    52         __leave_coroutine();
    53         abortf("Resumed dead coroutine");
     52      cor->state = Halted;
     53
     54      //Final suspend, should never return
     55      __leave_coroutine();
     56      abortf("Resumed dead coroutine");
    5457}
    5558
    5659void CtxInvokeThread(
    57         void (*dtor)(void *),
    58         void (*main)(void *),
    59         struct thread_desc *(*get_thread)(void *),
    60         void *this
     60      void (*dtor)(void *),
     61      void (*main)(void *),
     62      struct thread_desc *(*get_thread)(void *),
     63      void *this
    6164) {
    62         // First suspend, once the thread arrives here,
    63         // the function pointer to main can be invalidated without risk
    64         __suspend_internal();
     65      // First suspend, once the thread arrives here,
     66      // the function pointer to main can be invalidated without risk
     67      __suspend_internal();
    6568
    66         // Fetch the thread handle from the user defined thread structure
    67         struct thread_desc* thrd = get_thread( this );
     69      // Fetch the thread handle from the user defined thread structure
     70      struct thread_desc* thrd = get_thread( this );
    6871
    69         // Officially start the thread by enabling preemption
    70         enable_interrupts( __cfaabi_dbg_ctx );
     72      // Officially start the thread by enabling preemption
     73      enable_interrupts( DEBUG_CTX );
    7174
    72         // Call the main of the thread
    73         main( this );
     75      // Call the main of the thread
     76      main( this );
    7477
    75         // To exit a thread we must :
    76         // 1 - Mark it as halted
    77         // 2 - Leave its monitor
    78         // 3 - Disable the interupts
    79         // 4 - Final suspend
    80         // The order of these 4 operations is very important
    81         //Final suspend, should never return
    82         __leave_thread_monitor( thrd );
    83         abortf("Resumed dead thread");
     78      // To exit a thread we must :
     79      // 1 - Mark it as halted
     80      // 2 - Leave its monitor
     81      // 3 - Disable the interupts
     82      // 4 - Final suspend
     83      // The order of these 4 operations is very important
     84      //Final suspend, should never return
     85      __leave_thread_monitor( thrd );
     86      abortf("Resumed dead thread");
    8487}
    8588
    8689
    8790void CtxStart(
    88         void (*main)(void *),
    89         struct coroutine_desc *(*get_coroutine)(void *),
    90         void *this,
    91         void (*invoke)(void *)
     91      void (*main)(void *),
     92      struct coroutine_desc *(*get_coroutine)(void *),
     93      void *this,
     94      void (*invoke)(void *)
    9295) {
    93         struct coStack_t* stack = &get_coroutine( this )->stack;
     96      // LIB_DEBUG_PRINTF("StartCoroutine : Passing in %p (main %p) to invoke (%p) from start (%p)\n", this, main, invoke, CtxStart);
     97
     98      struct coStack_t* stack = &get_coroutine( this )->stack;
    9499
    95100#if defined( __i386__ )
     
    98103            void *fixedRegisters[3];                    // fixed registers ebx, edi, esi (popped on 1st uSwitch, values unimportant)
    99104            uint32_t mxcr;                        // SSE Status and Control bits (control bits are preserved across function calls)
    100             uint16_t fcw;                         // X97 FPU control word (preserved across function calls)
     105          uint16_t fcw;                         // X97 FPU control word (preserved across function calls)
    101106            void *rturn;                          // where to go on return from uSwitch
    102107            void *dummyReturn;                          // fake return compiler would have pushed on call to uInvoke
     
    111116        ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->argument[0] = this;     // argument to invoke
    112117        ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->rturn = invoke;
    113         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520
    114         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F;  //Vol. 1 8-7
     118      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520
     119      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F;  //Vol. 1 8-7
    115120
    116121#elif defined( __x86_64__ )
    117122
    118         struct FakeStack {
    119                 void *fixedRegisters[5];            // fixed registers rbx, r12, r13, r14, r15
    120                 uint32_t mxcr;                      // SSE Status and Control bits (control bits are preserved across function calls)
    121                 uint16_t fcw;                       // X97 FPU control word (preserved across function calls)
    122                 void *rturn;                        // where to go on return from uSwitch
    123                 void *dummyReturn;                  // NULL return address to provide proper alignment
    124         };
     123      struct FakeStack {
     124            void *fixedRegisters[5];            // fixed registers rbx, r12, r13, r14, r15
     125            uint32_t mxcr;                      // SSE Status and Control bits (control bits are preserved across function calls)
     126            uint16_t fcw;                       // X97 FPU control word (preserved across function calls)
     127            void *rturn;                        // where to go on return from uSwitch
     128            void *dummyReturn;                  // NULL return address to provide proper alignment
     129      };
    125130
    126         ((struct machine_context_t *)stack->context)->SP = (char *)stack->base - sizeof( struct FakeStack );
    127         ((struct machine_context_t *)stack->context)->FP = NULL;                // terminate stack with NULL fp
     131      ((struct machine_context_t *)stack->context)->SP = (char *)stack->base - sizeof( struct FakeStack );
     132      ((struct machine_context_t *)stack->context)->FP = NULL;          // terminate stack with NULL fp
    128133
    129         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->dummyReturn = NULL;
    130         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->rturn = CtxInvokeStub;
    131         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[0] = this;
    132         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[1] = invoke;
    133         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520
    134         ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F;  //Vol. 1 8-7
     134      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->dummyReturn = NULL;
     135      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->rturn = CtxInvokeStub;
     136      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[0] = this;
     137      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fixedRegisters[1] = invoke;
     138      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->mxcr = 0x1F80; //Vol. 2A 3-520
     139      ((struct FakeStack *)(((struct machine_context_t *)stack->context)->SP))->fcw = 0x037F;  //Vol. 1 8-7
    135140#else
    136         #error Only __i386__ and __x86_64__ is supported for threads in cfa
     141      #error Only __i386__ and __x86_64__ is supported for threads in cfa
    137142#endif
    138143}
  • src/libcfa/concurrency/kernel.c

    r3d560060 rdd9b59e  
    1414//
    1515
     16#include "libhdr.h"
     17
    1618//C Includes
    1719#include <stddef.h>
     
    148150
    149151        this.runner = &runner;
    150         __cfaabi_dbg_print_safe("Kernel : constructing main processor context %p\n", &runner);
     152        LIB_DEBUG_PRINT_SAFE("Kernel : constructing main processor context %p\n", &runner);
    151153        runner{ &this };
    152154}
     
    154156void ^?{}(processor & this) {
    155157        if( ! this.do_terminate ) {
    156                 __cfaabi_dbg_print_safe("Kernel : core %p signaling termination\n", &this);
     158                LIB_DEBUG_PRINT_SAFE("Kernel : core %p signaling termination\n", &this);
    157159                this.do_terminate = true;
    158160                P( this.terminated );
     
    179181        processor * this = runner.proc;
    180182
    181         __cfaabi_dbg_print_safe("Kernel : core %p starting\n", this);
     183        LIB_DEBUG_PRINT_SAFE("Kernel : core %p starting\n", this);
    182184
    183185        {
     
    185187                preemption_scope scope = { this };
    186188
    187                 __cfaabi_dbg_print_safe("Kernel : core %p started\n", this);
     189                LIB_DEBUG_PRINT_SAFE("Kernel : core %p started\n", this);
    188190
    189191                thread_desc * readyThread = NULL;
     
    211213                }
    212214
    213                 __cfaabi_dbg_print_safe("Kernel : core %p stopping\n", this);
     215                LIB_DEBUG_PRINT_SAFE("Kernel : core %p stopping\n", this);
    214216        }
    215217
    216218        V( this->terminated );
    217219
    218         __cfaabi_dbg_print_safe("Kernel : core %p terminated\n", this);
     220        LIB_DEBUG_PRINT_SAFE("Kernel : core %p terminated\n", this);
    219221}
    220222
     
    290292        processorCtx_t proc_cor_storage = { proc, &info };
    291293
    292         __cfaabi_dbg_print_safe("Coroutine : created stack %p\n", proc_cor_storage.__cor.stack.base);
     294        LIB_DEBUG_PRINT_SAFE("Coroutine : created stack %p\n", proc_cor_storage.__cor.stack.base);
    293295
    294296        //Set global state
     
    297299
    298300        //We now have a proper context from which to schedule threads
    299         __cfaabi_dbg_print_safe("Kernel : core %p created (%p, %p)\n", proc, proc->runner, &ctx);
     301        LIB_DEBUG_PRINT_SAFE("Kernel : core %p created (%p, %p)\n", proc, proc->runner, &ctx);
    300302
    301303        // SKULLDUGGERY: Since the coroutine doesn't have its own stack, we can't
     
    308310
    309311        // Main routine of the core returned, the core is now fully terminated
    310         __cfaabi_dbg_print_safe("Kernel : core %p main ended (%p)\n", proc, proc->runner);
     312        LIB_DEBUG_PRINT_SAFE("Kernel : core %p main ended (%p)\n", proc, proc->runner);
    311313
    312314        return NULL;
     
    314316
    315317void start(processor * this) {
    316         __cfaabi_dbg_print_safe("Kernel : Starting core %p\n", this);
     318        LIB_DEBUG_PRINT_SAFE("Kernel : Starting core %p\n", this);
    317319
    318320        pthread_create( &this->kernel_thread, NULL, CtxInvokeProcessor, (void*)this );
    319321
    320         __cfaabi_dbg_print_safe("Kernel : core %p started\n", this);
     322        LIB_DEBUG_PRINT_SAFE("Kernel : core %p started\n", this);
    321323}
    322324
     
    332334        verifyf( thrd->next == NULL, "Expected null got %p", thrd->next );
    333335
    334         lock(   this_processor->cltr->ready_queue_lock __cfaabi_dbg_ctx2 );
     336        lock(   this_processor->cltr->ready_queue_lock DEBUG_CTX2 );
    335337        append( this_processor->cltr->ready_queue, thrd );
    336338        unlock( this_processor->cltr->ready_queue_lock );
     
    341343thread_desc * nextThread(cluster * this) {
    342344        verify( disable_preempt_count > 0 );
    343         lock( this->ready_queue_lock __cfaabi_dbg_ctx2 );
     345        lock( this->ready_queue_lock DEBUG_CTX2 );
    344346        thread_desc * head = pop_head( this->ready_queue );
    345347        unlock( this->ready_queue_lock );
     
    353355        suspend();
    354356        verify( disable_preempt_count > 0 );
    355         enable_interrupts( __cfaabi_dbg_ctx );
     357        enable_interrupts( DEBUG_CTX );
    356358}
    357359
     
    365367        verify( disable_preempt_count > 0 );
    366368
    367         enable_interrupts( __cfaabi_dbg_ctx );
     369        enable_interrupts( DEBUG_CTX );
    368370}
    369371
     
    379381        verify( disable_preempt_count > 0 );
    380382
    381         enable_interrupts( __cfaabi_dbg_ctx );
     383        enable_interrupts( DEBUG_CTX );
    382384}
    383385
     
    393395        verify( disable_preempt_count > 0 );
    394396
    395         enable_interrupts( __cfaabi_dbg_ctx );
     397        enable_interrupts( DEBUG_CTX );
    396398}
    397399
     
    406408        verify( disable_preempt_count > 0 );
    407409
    408         enable_interrupts( __cfaabi_dbg_ctx );
     410        enable_interrupts( DEBUG_CTX );
    409411}
    410412
     
    421423        verify( disable_preempt_count > 0 );
    422424
    423         enable_interrupts( __cfaabi_dbg_ctx );
     425        enable_interrupts( DEBUG_CTX );
    424426}
    425427
     
    439441// Kernel boot procedures
    440442void kernel_startup(void) {
    441         __cfaabi_dbg_print_safe("Kernel : Starting\n");
     443        LIB_DEBUG_PRINT_SAFE("Kernel : Starting\n");
    442444
    443445        // Start by initializing the main thread
     
    448450        (*mainThread){ &info };
    449451
    450         __cfaabi_dbg_print_safe("Kernel : Main thread ready\n");
     452        LIB_DEBUG_PRINT_SAFE("Kernel : Main thread ready\n");
    451453
    452454        // Initialize the main cluster
     
    454456        (*mainCluster){};
    455457
    456         __cfaabi_dbg_print_safe("Kernel : main cluster ready\n");
     458        LIB_DEBUG_PRINT_SAFE("Kernel : main cluster ready\n");
    457459
    458460        // Initialize the main processor and the main processor ctx
     
    481483
    482484        // THE SYSTEM IS NOW COMPLETELY RUNNING
    483         __cfaabi_dbg_print_safe("Kernel : Started\n--------------------------------------------------\n\n");
    484 
    485         enable_interrupts( __cfaabi_dbg_ctx );
     485        LIB_DEBUG_PRINT_SAFE("Kernel : Started\n--------------------------------------------------\n\n");
     486
     487        enable_interrupts( DEBUG_CTX );
    486488}
    487489
    488490void kernel_shutdown(void) {
    489         __cfaabi_dbg_print_safe("\n--------------------------------------------------\nKernel : Shutting down\n");
     491        LIB_DEBUG_PRINT_SAFE("\n--------------------------------------------------\nKernel : Shutting down\n");
    490492
    491493        disable_interrupts();
     
    511513        ^(mainThread){};
    512514
    513         __cfaabi_dbg_print_safe("Kernel : Shutdown complete\n");
     515        LIB_DEBUG_PRINT_SAFE("Kernel : Shutdown complete\n");
    514516}
    515517
     
    521523        // abort cannot be recursively entered by the same or different processors because all signal handlers return when
    522524        // the globalAbort flag is true.
    523         lock( kernel_abort_lock __cfaabi_dbg_ctx2 );
     525        lock( kernel_abort_lock DEBUG_CTX2 );
    524526
    525527        // first task to abort ?
     
    546548
    547549        int len = snprintf( abort_text, abort_text_size, "Error occurred while executing task %.256s (%p)", thrd->self_cor.name, thrd );
    548         __cfaabi_dbg_bits_write( abort_text, len );
     550        __lib_debug_write( abort_text, len );
    549551
    550552        if ( thrd != this_coroutine ) {
    551553                len = snprintf( abort_text, abort_text_size, " in coroutine %.256s (%p).\n", this_coroutine->name, this_coroutine );
    552                 __cfaabi_dbg_bits_write( abort_text, len );
     554                __lib_debug_write( abort_text, len );
    553555        }
    554556        else {
    555                 __cfaabi_dbg_bits_write( ".\n", 2 );
     557                __lib_debug_write( ".\n", 2 );
    556558        }
    557559}
    558560
    559561extern "C" {
    560         void __cfaabi_dbg_bits_acquire() {
    561                 lock( kernel_debug_lock __cfaabi_dbg_ctx2 );
    562         }
    563 
    564         void __cfaabi_dbg_bits_release() {
     562        void __lib_debug_acquire() {
     563                lock( kernel_debug_lock DEBUG_CTX2 );
     564        }
     565
     566        void __lib_debug_release() {
    565567                unlock( kernel_debug_lock );
    566568        }
     
    580582
    581583void P(semaphore & this) {
    582         lock( this.lock __cfaabi_dbg_ctx2 );
     584        lock( this.lock DEBUG_CTX2 );
    583585        this.count -= 1;
    584586        if ( this.count < 0 ) {
     
    596598void V(semaphore & this) {
    597599        thread_desc * thrd = NULL;
    598         lock( this.lock __cfaabi_dbg_ctx2 );
     600        lock( this.lock DEBUG_CTX2 );
    599601        this.count += 1;
    600602        if ( this.count <= 0 ) {
  • src/libcfa/concurrency/kernel_private.h

    r3d560060 rdd9b59e  
    1616#pragma once
    1717
     18#include "libhdr.h"
     19
    1820#include "kernel"
    1921#include "thread"
     
    2830        void disable_interrupts();
    2931        void enable_interrupts_noPoll();
    30         void enable_interrupts( __cfaabi_dbg_ctx_param );
     32        void enable_interrupts( DEBUG_CTX_PARAM );
    3133}
    3234
     
    3739        disable_interrupts();
    3840        ScheduleThread( thrd );
    39         enable_interrupts( __cfaabi_dbg_ctx );
     41        enable_interrupts( DEBUG_CTX );
    4042}
    4143thread_desc * nextThread(cluster * this);
  • src/libcfa/concurrency/monitor.c

    r3d560060 rdd9b59e  
    1919#include <inttypes.h>
    2020
     21#include "libhdr.h"
    2122#include "kernel_private.h"
    2223
     
    9091        static void __enter_monitor_desc( monitor_desc * this, const __monitor_group_t & group ) {
    9192                // Lock the monitor spinlock
    92                 DO_LOCK( this->lock __cfaabi_dbg_ctx2 );
     93                DO_LOCK( this->lock DEBUG_CTX2 );
    9394                thread_desc * thrd = this_thread;
    9495
    95                 __cfaabi_dbg_print_safe("Kernel : %10p Entering mon %p (%p)\n", thrd, this, this->owner);
     96                LIB_DEBUG_PRINT_SAFE("Kernel : %10p Entering mon %p (%p)\n", thrd, this, this->owner);
    9697
    9798                if( !this->owner ) {
     
    99100                        set_owner( this, thrd );
    100101
    101                         __cfaabi_dbg_print_safe("Kernel :  mon is free \n");
     102                        LIB_DEBUG_PRINT_SAFE("Kernel :  mon is free \n");
    102103                }
    103104                else if( this->owner == thrd) {
     
    105106                        this->recursion += 1;
    106107
    107                         __cfaabi_dbg_print_safe("Kernel :  mon already owned \n");
     108                        LIB_DEBUG_PRINT_SAFE("Kernel :  mon already owned \n");
    108109                }
    109110                else if( is_accepted( this, group) ) {
     
    114115                        reset_mask( this );
    115116
    116                         __cfaabi_dbg_print_safe("Kernel :  mon accepts \n");
     117                        LIB_DEBUG_PRINT_SAFE("Kernel :  mon accepts \n");
    117118                }
    118119                else {
    119                         __cfaabi_dbg_print_safe("Kernel :  blocking \n");
     120                        LIB_DEBUG_PRINT_SAFE("Kernel :  blocking \n");
    120121
    121122                        // Some one else has the monitor, wait in line for it
     
    123124                        BlockInternal( &this->lock );
    124125
    125                         __cfaabi_dbg_print_safe("Kernel : %10p Entered  mon %p\n", thrd, this);
     126                        LIB_DEBUG_PRINT_SAFE("Kernel : %10p Entered  mon %p\n", thrd, this);
    126127
    127128                        // BlockInternal will unlock spinlock, no need to unlock ourselves
     
    129130                }
    130131
    131                 __cfaabi_dbg_print_safe("Kernel : %10p Entered  mon %p\n", thrd, this);
     132                LIB_DEBUG_PRINT_SAFE("Kernel : %10p Entered  mon %p\n", thrd, this);
    132133
    133134                // Release the lock and leave
     
    138139        static void __enter_monitor_dtor( monitor_desc * this, fptr_t func ) {
    139140                // Lock the monitor spinlock
    140                 DO_LOCK( this->lock __cfaabi_dbg_ctx2 );
     141                DO_LOCK( this->lock DEBUG_CTX2 );
    141142                thread_desc * thrd = this_thread;
    142143
    143                 __cfaabi_dbg_print_safe("Kernel : %10p Entering dtor for mon %p (%p)\n", thrd, this, this->owner);
     144                LIB_DEBUG_PRINT_SAFE("Kernel : %10p Entering dtor for mon %p (%p)\n", thrd, this, this->owner);
    144145
    145146
    146147                if( !this->owner ) {
    147                         __cfaabi_dbg_print_safe("Kernel : Destroying free mon %p\n", this);
     148                        LIB_DEBUG_PRINT_SAFE("Kernel : Destroying free mon %p\n", this);
    148149
    149150                        // No one has the monitor, just take it
     
    163164                __monitor_group_t group = { &this, 1, func };
    164165                if( is_accepted( this, group) ) {
    165                         __cfaabi_dbg_print_safe("Kernel :  mon accepts dtor, block and signal it \n");
     166                        LIB_DEBUG_PRINT_SAFE("Kernel :  mon accepts dtor, block and signal it \n");
    166167
    167168                        // Wake the thread that is waiting for this
     
    182183                }
    183184                else {
    184                         __cfaabi_dbg_print_safe("Kernel :  blocking \n");
     185                        LIB_DEBUG_PRINT_SAFE("Kernel :  blocking \n");
    185186
    186187                        wait_ctx( this_thread, 0 )
     
    195196                }
    196197
    197                 __cfaabi_dbg_print_safe("Kernel : Destroying %p\n", this);
     198                LIB_DEBUG_PRINT_SAFE("Kernel : Destroying %p\n", this);
    198199
    199200        }
     
    202203        void __leave_monitor_desc( monitor_desc * this ) {
    203204                // Lock the monitor spinlock, DO_LOCK to reduce contention
    204                 DO_LOCK( this->lock __cfaabi_dbg_ctx2 );
    205 
    206                 __cfaabi_dbg_print_safe("Kernel : %10p Leaving mon %p (%p)\n", this_thread, this, this->owner);
     205                DO_LOCK( this->lock DEBUG_CTX2 );
     206
     207                LIB_DEBUG_PRINT_SAFE("Kernel : %10p Leaving mon %p (%p)\n", this_thread, this, this->owner);
    207208
    208209                verifyf( this_thread == this->owner, "Expected owner to be %p, got %p (r: %i, m: %p)", this_thread, this->owner, this->recursion, this );
     
    214215                // it means we don't need to do anything
    215216                if( this->recursion != 0) {
    216                         __cfaabi_dbg_print_safe("Kernel :  recursion still %d\n", this->recursion);
     217                        LIB_DEBUG_PRINT_SAFE("Kernel :  recursion still %d\n", this->recursion);
    217218                        unlock( this->lock );
    218219                        return;
     
    231232        // Leave single monitor for the last time
    232233        void __leave_dtor_monitor_desc( monitor_desc * this ) {
    233                 __cfaabi_dbg_debug_do(
     234                LIB_DEBUG_DO(
    234235                        if( this_thread != this->owner ) {
    235236                                abortf("Destroyed monitor %p has inconsistent owner, expected %p got %p.\n", this, this_thread, this->owner);
     
    248249
    249250                // Lock the monitor now
    250                 DO_LOCK( this->lock __cfaabi_dbg_ctx2 );
     251                DO_LOCK( this->lock DEBUG_CTX2 );
    251252
    252253                disable_interrupts();
     
    307308        (this_thread->monitors){m, count, func};
    308309
    309         // __cfaabi_dbg_print_safe("MGUARD : enter %d\n", count);
     310        // LIB_DEBUG_PRINT_SAFE("MGUARD : enter %d\n", count);
    310311
    311312        // Enter the monitors in order
     
    313314        enter( group );
    314315
    315         // __cfaabi_dbg_print_safe("MGUARD : entered\n");
     316        // LIB_DEBUG_PRINT_SAFE("MGUARD : entered\n");
    316317}
    317318
     
    319320// Dtor for monitor guard
    320321void ^?{}( monitor_guard_t & this ) {
    321         // __cfaabi_dbg_print_safe("MGUARD : leaving %d\n", this.count);
     322        // LIB_DEBUG_PRINT_SAFE("MGUARD : leaving %d\n", this.count);
    322323
    323324        // Leave the monitors in order
    324325        leave( this.m, this.count );
    325326
    326         // __cfaabi_dbg_print_safe("MGUARD : left\n");
     327        // LIB_DEBUG_PRINT_SAFE("MGUARD : left\n");
    327328
    328329        // Restore thread context
     
    429430
    430431        //Some more checking in debug
    431         __cfaabi_dbg_debug_do(
     432        LIB_DEBUG_DO(
    432433                thread_desc * this_thrd = this_thread;
    433434                if ( this.monitor_count != this_thrd->monitors.size ) {
     
    486487        set_owner( monitors, count, signallee );
    487488
    488         __cfaabi_dbg_print_buffer_decl( "Kernel : signal_block condition %p (s: %p)\n", &this, signallee );
     489        LIB_DEBUG_PRINT_BUFFER_DECL( "Kernel : signal_block condition %p (s: %p)\n", &this, signallee );
    489490
    490491        //Everything is ready to go to sleep
     
    495496
    496497
    497         __cfaabi_dbg_print_buffer_local( "Kernel :   signal_block returned\n" );
     498        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel :   signal_block returned\n" );
    498499
    499500        //We are back, restore the masks and recursions
     
    534535        __lock_size_t actual_count = aggregate( mon_storage, mask );
    535536
    536         __cfaabi_dbg_print_buffer_decl( "Kernel : waitfor %d (s: %d, m: %d)\n", actual_count, mask.size, (__lock_size_t)max);
     537        LIB_DEBUG_PRINT_BUFFER_DECL( "Kernel : waitfor %d (s: %d, m: %d)\n", actual_count, mask.size, (__lock_size_t)max);
    537538
    538539        if(actual_count == 0) return;
    539540
    540         __cfaabi_dbg_print_buffer_local( "Kernel : waitfor internal proceeding\n");
     541        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : waitfor internal proceeding\n");
    541542
    542543        // Create storage for monitor context
     
    555556                        __acceptable_t& accepted = mask[index];
    556557                        if( accepted.is_dtor ) {
    557                                 __cfaabi_dbg_print_buffer_local( "Kernel : dtor already there\n");
     558                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : dtor already there\n");
    558559                                verifyf( accepted.size == 1,  "ERROR: Accepted dtor has more than 1 mutex parameter." );
    559560
     
    567568                        }
    568569                        else {
    569                                 __cfaabi_dbg_print_buffer_local( "Kernel : thread present, baton-passing\n");
     570                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : thread present, baton-passing\n");
    570571
    571572                                // Create the node specific to this wait operation
     
    575576                                monitor_save;
    576577
    577                                 __cfaabi_dbg_print_buffer_local( "Kernel :  baton of %d monitors : ", count );
     578                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel :  baton of %d monitors : ", count );
    578579                                #ifdef __CFA_DEBUG_PRINT__
    579580                                        for( int i = 0; i < count; i++) {
    580                                                 __cfaabi_dbg_print_buffer_local( "%p %p ", monitors[i], monitors[i]->signal_stack.top );
     581                                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "%p %p ", monitors[i], monitors[i]->signal_stack.top );
    581582                                        }
    582583                                #endif
    583                                 __cfaabi_dbg_print_buffer_local( "\n");
     584                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "\n");
    584585
    585586                                // Set the owners to be the next thread
     
    592593                                monitor_restore;
    593594
    594                                 __cfaabi_dbg_print_buffer_local( "Kernel : thread present, returned\n");
     595                                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : thread present, returned\n");
    595596                        }
    596597
    597                         __cfaabi_dbg_print_buffer_local( "Kernel : accepted %d\n", *mask.accepted);
     598                        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
    598599                        return;
    599600                }
     
    602603
    603604        if( duration == 0 ) {
    604                 __cfaabi_dbg_print_buffer_local( "Kernel : non-blocking, exiting\n");
     605                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : non-blocking, exiting\n");
    605606
    606607                unlock_all( locks, count );
    607608
    608                 __cfaabi_dbg_print_buffer_local( "Kernel : accepted %d\n", *mask.accepted);
     609                LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
    609610                return;
    610611        }
     
    613614        verifyf( duration < 0, "Timeout on waitfor statments not supported yet.");
    614615
    615         __cfaabi_dbg_print_buffer_local( "Kernel : blocking waitfor\n");
     616        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : blocking waitfor\n");
    616617
    617618        // Create the node specific to this wait operation
     
    635636        monitor_restore;
    636637
    637         __cfaabi_dbg_print_buffer_local( "Kernel : exiting\n");
    638 
    639         __cfaabi_dbg_print_buffer_local( "Kernel : accepted %d\n", *mask.accepted);
     638        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : exiting\n");
     639
     640        LIB_DEBUG_PRINT_BUFFER_LOCAL( "Kernel : accepted %d\n", *mask.accepted);
    640641}
    641642
     
    644645
    645646static inline void set_owner( monitor_desc * this, thread_desc * owner ) {
    646         // __cfaabi_dbg_print_safe("Kernal :   Setting owner of %p to %p ( was %p)\n", this, owner, this->owner );
     647        // LIB_DEBUG_PRINT_SAFE("Kernal :   Setting owner of %p to %p ( was %p)\n", this, owner, this->owner );
    647648
    648649        //Pass the monitor appropriately
     
    676677static inline thread_desc * next_thread( monitor_desc * this ) {
    677678        //Check the signaller stack
    678         __cfaabi_dbg_print_safe("Kernel :  mon %p AS-stack top %p\n", this, this->signal_stack.top);
     679        LIB_DEBUG_PRINT_SAFE("Kernel :  mon %p AS-stack top %p\n", this, this->signal_stack.top);
    679680        __condition_criterion_t * urgent = pop( this->signal_stack );
    680681        if( urgent ) {
     
    728729        for( __lock_size_t i = 0; i < count; i++) {
    729730                (criteria[i]){ monitors[i], waiter };
    730                 __cfaabi_dbg_print_safe( "Kernel :  target %p = %p\n", criteria[i].target, &criteria[i] );
     731                LIB_DEBUG_PRINT_SAFE( "Kernel :  target %p = %p\n", criteria[i].target, &criteria[i] );
    731732                push( criteria[i].target->signal_stack, &criteria[i] );
    732733        }
     
    737738static inline void lock_all( __spinlock_t * locks [], __lock_size_t count ) {
    738739        for( __lock_size_t i = 0; i < count; i++ ) {
    739                 DO_LOCK( *locks[i] __cfaabi_dbg_ctx2 );
     740                DO_LOCK( *locks[i] DEBUG_CTX2 );
    740741        }
    741742}
     
    744745        for( __lock_size_t i = 0; i < count; i++ ) {
    745746                __spinlock_t * l = &source[i]->lock;
    746                 DO_LOCK( *l __cfaabi_dbg_ctx2 );
     747                DO_LOCK( *l DEBUG_CTX2 );
    747748                if(locks) locks[i] = l;
    748749        }
     
    802803        for(    int i = 0; i < count; i++ ) {
    803804
    804                 // __cfaabi_dbg_print_safe( "Checking %p for %p\n", &criteria[i], target );
     805                // LIB_DEBUG_PRINT_SAFE( "Checking %p for %p\n", &criteria[i], target );
    805806                if( &criteria[i] == target ) {
    806807                        criteria[i].ready = true;
    807                         // __cfaabi_dbg_print_safe( "True\n" );
     808                        // LIB_DEBUG_PRINT_SAFE( "True\n" );
    808809                }
    809810
     
    811812        }
    812813
    813         __cfaabi_dbg_print_safe( "Kernel :  Runing %i (%p)\n", ready2run, ready2run ? node->waiting_thread : NULL );
     814        LIB_DEBUG_PRINT_SAFE( "Kernel :  Runing %i (%p)\n", ready2run, ready2run ? node->waiting_thread : NULL );
    814815        return ready2run ? node->waiting_thread : NULL;
    815816}
     
    818819        thread_desc * thrd = this_thread;
    819820        if( !this.monitors ) {
    820                 // __cfaabi_dbg_print_safe("Branding\n");
     821                // LIB_DEBUG_PRINT_SAFE("Branding\n");
    821822                assertf( thrd->monitors.data != NULL, "No current monitor to brand condition %p", thrd->monitors.data );
    822823                this.monitor_count = thrd->monitors.size;
  • src/libcfa/concurrency/preemption.c

    r3d560060 rdd9b59e  
    1414//
    1515
     16#include "libhdr.h"
    1617#include "preemption.h"
    1718
     
    147148//=============================================================================================
    148149
    149 __cfaabi_dbg_debug_do( static thread_local void * last_interrupt = 0; )
     150LIB_DEBUG_DO( static thread_local void * last_interrupt = 0; )
    150151
    151152extern "C" {
     
    158159        // Enable interrupts by decrementing the counter
    159160        // If counter reaches 0, execute any pending CtxSwitch
    160         void enable_interrupts( __cfaabi_dbg_ctx_param ) {
     161        void enable_interrupts( DEBUG_CTX_PARAM ) {
    161162                processor * proc   = this_processor;      // Cache the processor now since interrupts can start happening after the atomic add
    162163                thread_desc * thrd = this_thread;         // Cache the thread now since interrupts can start happening after the atomic add
     
    172173
    173174                // For debugging purposes : keep track of the last person to enable the interrupts
    174                 __cfaabi_dbg_debug_do( proc->last_enable = caller; )
     175                LIB_DEBUG_DO( proc->last_enable = caller; )
    175176        }
    176177
     
    232233// Called from kernel_startup
    233234void kernel_start_preemption() {
    234         __cfaabi_dbg_print_safe("Kernel : Starting preemption\n");
     235        LIB_DEBUG_PRINT_SAFE("Kernel : Starting preemption\n");
    235236
    236237        // Start with preemption disabled until ready
     
    254255// Called from kernel_shutdown
    255256void kernel_stop_preemption() {
    256         __cfaabi_dbg_print_safe("Kernel : Preemption stopping\n");
     257        LIB_DEBUG_PRINT_SAFE("Kernel : Preemption stopping\n");
    257258
    258259        // Block all signals since we are already shutting down
     
    270271        // Preemption is now fully stopped
    271272
    272         __cfaabi_dbg_print_safe("Kernel : Preemption stopped\n");
     273        LIB_DEBUG_PRINT_SAFE("Kernel : Preemption stopped\n");
    273274}
    274275
     
    296297// Receives SIGUSR1 signal and causes the current thread to yield
    297298void sigHandler_ctxSwitch( __CFA_SIGPARMS__ ) {
    298         __cfaabi_dbg_debug_do( last_interrupt = (void *)(cxt->uc_mcontext.gregs[CFA_REG_IP]); )
     299        LIB_DEBUG_DO( last_interrupt = (void *)(cxt->uc_mcontext.gregs[CFA_REG_IP]); )
    299300
    300301        // Check if it is safe to preempt here
     
    345346                assertf(sig == SIGALRM, "Kernel Internal Error, sigwait: Unexpected signal %d (%d : %d)\n", sig, info.si_code, info.si_value.sival_int);
    346347
    347                 // __cfaabi_dbg_print_safe("Kernel : Caught alarm from %d with %d\n", info.si_code, info.si_value.sival_int );
     348                // LIB_DEBUG_PRINT_SAFE("Kernel : Caught alarm from %d with %d\n", info.si_code, info.si_value.sival_int );
    348349                // Switch on the code (a.k.a. the sender) to
    349350                switch( info.si_code )
     
    353354                case SI_TIMER:
    354355                case SI_KERNEL:
    355                         // __cfaabi_dbg_print_safe("Kernel : Preemption thread tick\n");
    356                         lock( event_kernel->lock __cfaabi_dbg_ctx2 );
     356                        // LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread tick\n");
     357                        lock( event_kernel->lock DEBUG_CTX2 );
    357358                        tick_preemption();
    358359                        unlock( event_kernel->lock );
     
    367368
    368369EXIT:
    369         __cfaabi_dbg_print_safe("Kernel : Preemption thread stopping\n");
     370        LIB_DEBUG_PRINT_SAFE("Kernel : Preemption thread stopping\n");
    370371        return NULL;
    371372}
     
    379380
    380381        if ( sigaction( sig, &act, NULL ) == -1 ) {
    381                 __cfaabi_dbg_print_buffer_decl(
     382                LIB_DEBUG_PRINT_BUFFER_DECL(
    382383                        " __kernel_sigaction( sig:%d, handler:%p, flags:%d ), problem installing signal handler, error(%d) %s.\n",
    383384                        sig, handler, flags, errno, strerror( errno )
     
    396397
    397398        if ( sigaction( sig, &act, NULL ) == -1 ) {
    398                 __cfaabi_dbg_print_buffer_decl(
     399                LIB_DEBUG_PRINT_BUFFER_DECL(
    399400                        " __kernel_sigdefault( sig:%d ), problem reseting signal handler, error(%d) %s.\n",
    400401                        sig, errno, strerror( errno )
     
    408409//=============================================================================================
    409410
    410 __cfaabi_dbg_debug_do(
     411LIB_DEBUG_DO(
    411412        static void __kernel_backtrace( int start ) {
    412413                // skip first N stack frames
     
    475476
    476477// void sigHandler_segv( __CFA_SIGPARMS__ ) {
    477 //      __cfaabi_dbg_debug_do(
     478//      LIB_DEBUG_DO(
    478479//              #ifdef __USE_STREAM__
    479480//              serr    | "*CFA runtime error* program cfa-cpp terminated with"
     
    492493// void sigHandler_abort( __CFA_SIGPARMS__ ) {
    493494//      // skip first 6 stack frames
    494 //      __cfaabi_dbg_debug_do( __kernel_backtrace( 6 ); )
     495//      LIB_DEBUG_DO( __kernel_backtrace( 6 ); )
    495496
    496497//      // reset default signal handler
  • src/libcfa/concurrency/thread.c

    r3d560060 rdd9b59e  
    1717
    1818#include "kernel_private.h"
     19#include "libhdr.h"
    1920
    2021#define __CFA_INVOKE_PRIVATE__
     
    7172        thrd_c->last = this_coroutine;
    7273
    73         // __cfaabi_dbg_print_safe("Thread start : %p (t %p, c %p)\n", this, thrd_c, thrd_h);
     74        // LIB_DEBUG_PRINT_SAFE("Thread start : %p (t %p, c %p)\n", this, thrd_c, thrd_h);
    7475
    7576        disable_interrupts();
     
    8182
    8283        ScheduleThread(thrd_h);
    83         enable_interrupts( __cfaabi_dbg_ctx );
     84        enable_interrupts( DEBUG_CTX );
    8485}
    8586
  • src/libcfa/exception.c

    r3d560060 rdd9b59e  
    2323#include <stdio.h>
    2424#include <unwind.h>
    25 #include <bits/debug.h>
     25#include <libhdr/libdebug.h>
    2626
    2727// FIX ME: temporary hack to keep ARM build working
     
    3737
    3838// Base exception vtable is abstract, you should not have base exceptions.
    39 struct __cfaabi_ehm__base_exception_t_vtable
    40                 ___cfaabi_ehm__base_exception_t_vtable_instance = {
     39struct __cfaehm__base_exception_t_vtable
     40                ___cfaehm__base_exception_t_vtable_instance = {
    4141        .parent = NULL,
    4242        .size = 0,
     
    4949// Temperary global exception context. Does not work with concurency.
    5050struct exception_context_t {
    51     struct __cfaabi_ehm__try_resume_node * top_resume;
    52     struct __cfaabi_ehm__try_resume_node * current_resume;
     51    struct __cfaehm__try_resume_node * top_resume;
     52    struct __cfaehm__try_resume_node * current_resume;
    5353
    5454    exception * current_exception;
     
    7878// RESUMPTION ================================================================
    7979
    80 void __cfaabi_ehm__throw_resume(exception * except) {
    81 
    82         __cfaabi_dbg_print_safe("Throwing resumption exception\n");
    83 
    84         struct __cfaabi_ehm__try_resume_node * original_head = shared_stack.current_resume;
    85         struct __cfaabi_ehm__try_resume_node * current =
     80void __cfaehm__throw_resume(exception * except) {
     81
     82        LIB_DEBUG_PRINT_SAFE("Throwing resumption exception\n");
     83
     84        struct __cfaehm__try_resume_node * original_head = shared_stack.current_resume;
     85        struct __cfaehm__try_resume_node * current =
    8686                (original_head) ? original_head->next : shared_stack.top_resume;
    8787
     
    9494        }
    9595
    96         __cfaabi_dbg_print_safe("Unhandled exception\n");
     96        LIB_DEBUG_PRINT_SAFE("Unhandled exception\n");
    9797        shared_stack.current_resume = original_head;
    9898
    9999        // Fall back to termination:
    100         __cfaabi_ehm__throw_terminate(except);
     100        __cfaehm__throw_terminate(except);
    101101        // TODO: Default handler for resumption.
    102102}
     
    105105// hook has to be added after the node is built but before it is made the top node.
    106106
    107 void __cfaabi_ehm__try_resume_setup(struct __cfaabi_ehm__try_resume_node * node,
     107void __cfaehm__try_resume_setup(struct __cfaehm__try_resume_node * node,
    108108                        _Bool (*handler)(exception * except)) {
    109109        node->next = shared_stack.top_resume;
     
    112112}
    113113
    114 void __cfaabi_ehm__try_resume_cleanup(struct __cfaabi_ehm__try_resume_node * node) {
     114void __cfaehm__try_resume_cleanup(struct __cfaehm__try_resume_node * node) {
    115115        shared_stack.top_resume = node->next;
    116116}
     
    122122// May have to move to cfa for constructors and destructors (references).
    123123
    124 struct __cfaabi_ehm__node {
    125         struct __cfaabi_ehm__node * next;
     124struct __cfaehm__node {
     125        struct __cfaehm__node * next;
    126126};
    127127
    128128#define NODE_TO_EXCEPT(node) ((exception *)(1 + (node)))
    129 #define EXCEPT_TO_NODE(except) ((struct __cfaabi_ehm__node *)(except) - 1)
     129#define EXCEPT_TO_NODE(except) ((struct __cfaehm__node *)(except) - 1)
    130130
    131131// Creates a copy of the indicated exception and sets current_exception to it.
    132 static void __cfaabi_ehm__allocate_exception( exception * except ) {
     132static void __cfaehm__allocate_exception( exception * except ) {
    133133        struct exception_context_t * context = this_exception_context();
    134134
    135135        // Allocate memory for the exception.
    136         struct __cfaabi_ehm__node * store = malloc(
    137                 sizeof( struct __cfaabi_ehm__node ) + except->virtual_table->size );
     136        struct __cfaehm__node * store = malloc(
     137                sizeof( struct __cfaehm__node ) + except->virtual_table->size );
    138138
    139139        if ( ! store ) {
     
    151151
    152152// Delete the provided exception, unsetting current_exception if relivant.
    153 static void __cfaabi_ehm__delete_exception( exception * except ) {
     153static void __cfaehm__delete_exception( exception * except ) {
    154154        struct exception_context_t * context = this_exception_context();
    155155
    156         __cfaabi_dbg_print_safe("Deleting Exception\n");
     156        LIB_DEBUG_PRINT_SAFE("Deleting Exception\n");
    157157
    158158        // Remove the exception from the list.
    159         struct __cfaabi_ehm__node * to_free = EXCEPT_TO_NODE(except);
    160         struct __cfaabi_ehm__node * node;
     159        struct __cfaehm__node * to_free = EXCEPT_TO_NODE(except);
     160        struct __cfaehm__node * node;
    161161
    162162        if ( context->current_exception == except ) {
     
    178178
    179179// If this isn't a rethrow (*except==0), delete the provided exception.
    180 void __cfaabi_ehm__cleanup_terminate( void * except ) {
    181         if ( *(void**)except ) __cfaabi_ehm__delete_exception( *(exception**)except );
     180void __cfaehm__cleanup_terminate( void * except ) {
     181        if ( *(void**)except ) __cfaehm__delete_exception( *(exception**)except );
    182182}
    183183
     
    202202
    203203// The exception that is being thrown must already be stored.
    204 __attribute__((noreturn)) void __cfaabi_ehm__begin_unwind(void) {
     204__attribute__((noreturn)) void __cfaehm__begin_unwind(void) {
    205205        if ( ! this_exception_context()->current_exception ) {
    206206                printf("UNWIND ERROR missing exception in begin unwind\n");
     
    233233}
    234234
    235 void __cfaabi_ehm__throw_terminate( exception * val ) {
    236         __cfaabi_dbg_print_safe("Throwing termination exception\n");
    237 
    238         __cfaabi_ehm__allocate_exception( val );
    239         __cfaabi_ehm__begin_unwind();
    240 }
    241 
    242 void __cfaabi_ehm__rethrow_terminate(void) {
    243         __cfaabi_dbg_print_safe("Rethrowing termination exception\n");
    244 
    245         __cfaabi_ehm__begin_unwind();
     235void __cfaehm__throw_terminate( exception * val ) {
     236        LIB_DEBUG_PRINT_SAFE("Throwing termination exception\n");
     237
     238        __cfaehm__allocate_exception( val );
     239        __cfaehm__begin_unwind();
     240}
     241
     242void __cfaehm__rethrow_terminate(void) {
     243        LIB_DEBUG_PRINT_SAFE("Rethrowing termination exception\n");
     244
     245        __cfaehm__begin_unwind();
    246246}
    247247
     
    254254{
    255255
    256         //__cfaabi_dbg_print_safe("CFA: 0x%lx\n", _Unwind_GetCFA(context));
    257         __cfaabi_dbg_print_safe("Personality function (%d, %x, %llu, %p, %p):", version, actions, exceptionClass, unwind_exception, context);
     256        //LIB_DEBUG_PRINT_SAFE("CFA: 0x%lx\n", _Unwind_GetCFA(context));
     257        LIB_DEBUG_PRINT_SAFE("Personality function (%d, %x, %llu, %p, %p):", version, actions, exceptionClass, unwind_exception, context);
    258258
    259259        // If we've reached the end of the stack then there is nothing much we can do...
     
    261261
    262262        if (actions & _UA_SEARCH_PHASE) {
    263                 __cfaabi_dbg_print_safe(" lookup phase");
     263                LIB_DEBUG_PRINT_SAFE(" lookup phase");
    264264        }
    265265        else if (actions & _UA_CLEANUP_PHASE) {
    266                 __cfaabi_dbg_print_safe(" cleanup phase");
     266                LIB_DEBUG_PRINT_SAFE(" cleanup phase");
    267267        }
    268268        // Just in case, probably can't actually happen
     
    307307                        void * ep = (void*)lsd_info.Start + callsite_start + callsite_len;
    308308                        void * ip = (void*)instruction_ptr;
    309                         __cfaabi_dbg_print_safe("\nfound %p - %p (%p, %p, %p), looking for %p\n", bp, ep, ls, cs, cl, ip);
     309                        LIB_DEBUG_PRINT_SAFE("\nfound %p - %p (%p, %p, %p), looking for %p\n", bp, ep, ls, cs, cl, ip);
    310310#endif // __CFA_DEBUG_PRINT__
    311311                        continue;
     
    346346
    347347                                        // Get a function pointer from the relative offset and call it
    348                                         // _Unwind_Reason_Code (*matcher)() = (_Unwind_Reason_Code (*)())lsd_info.LPStart + imatcher;
     348                                        // _Unwind_Reason_Code (*matcher)() = (_Unwind_Reason_Code (*)())lsd_info.LPStart + imatcher;                                   
    349349
    350350                                        _Unwind_Reason_Code (*matcher)(exception *) =
     
    357357                                        // Based on the return value, check if we matched the exception
    358358                                        if( ret == _URC_HANDLER_FOUND) {
    359                                                 __cfaabi_dbg_print_safe(" handler found\n");
     359                                                LIB_DEBUG_PRINT_SAFE(" handler found\n");
    360360                                        } else {
    361                                                 __cfaabi_dbg_print_safe(" no handler\n");
     361                                                LIB_DEBUG_PRINT_SAFE(" no handler\n");
    362362                                        }
    363363                                        return ret;
     
    365365
    366366                                // This is only a cleanup handler, ignore it
    367                                 __cfaabi_dbg_print_safe(" no action");
     367                                LIB_DEBUG_PRINT_SAFE(" no action");
    368368                        }
    369369                        else if (actions & _UA_CLEANUP_PHASE) {
     
    385385                                _Unwind_SetIP( context, ((lsd_info.LPStart) + (callsite_landing_pad)) );
    386386
    387                                 __cfaabi_dbg_print_safe(" action\n");
     387                                LIB_DEBUG_PRINT_SAFE(" action\n");
    388388
    389389                                // Return have some action to run
     
    393393
    394394                // Nothing to do, move along
    395                 __cfaabi_dbg_print_safe(" no landing pad");
     395                LIB_DEBUG_PRINT_SAFE(" no landing pad");
    396396        }
    397397        // No handling found
    398         __cfaabi_dbg_print_safe(" table end reached\n");
     398        LIB_DEBUG_PRINT_SAFE(" table end reached\n");
    399399
    400400        UNWIND:
    401         __cfaabi_dbg_print_safe(" unwind\n");
     401        LIB_DEBUG_PRINT_SAFE(" unwind\n");
    402402
    403403        // Keep unwinding the stack
     
    408408// libcfa but there is one problem left, see the exception table for details
    409409__attribute__((noinline))
    410 void __cfaabi_ehm__try_terminate(void (*try_block)(),
     410void __cfaehm__try_terminate(void (*try_block)(),
    411411                void (*catch_block)(int index, exception * except),
    412412                __attribute__((unused)) int (*match_block)(exception * except)) {
     
    466466        // Body uses language specific data and therefore could be modified arbitrarily
    467467        ".LLSDACSBCFA2:\n"                                              // BODY start
    468         "       .uleb128 .TRYSTART-__cfaabi_ehm__try_terminate\n"               // Handled area start  (relative to start of function)
     468        "       .uleb128 .TRYSTART-__cfaehm__try_terminate\n"           // Handled area start  (relative to start of function)
    469469        "       .uleb128 .TRYEND-.TRYSTART\n"                           // Handled area length
    470         "       .uleb128 .CATCH-__cfaabi_ehm__try_terminate\n"                          // Hanlder landing pad adress  (relative to start of function)
     470        "       .uleb128 .CATCH-__cfaehm__try_terminate\n"                              // Hanlder landing pad adress  (relative to start of function)
    471471        "       .uleb128 1\n"                                           // Action code, gcc seems to use always 0
    472472        ".LLSDACSECFA2:\n"                                              // BODY end
    473473        "       .text\n"                                                        // TABLE footer
    474         "       .size   __cfaabi_ehm__try_terminate, .-__cfaabi_ehm__try_terminate\n"
     474        "       .size   __cfaehm__try_terminate, .-__cfaehm__try_terminate\n"
    475475        "       .ident  \"GCC: (Ubuntu 6.2.0-3ubuntu11~16.04) 6.2.0 20160901\"\n"
    476476//      "       .section        .note.GNU-stack,\"x\",@progbits\n"
  • src/libcfa/exception.h

    r3d560060 rdd9b59e  
    2121#endif
    2222
    23 struct __cfaabi_ehm__base_exception_t;
    24 typedef struct __cfaabi_ehm__base_exception_t exception;
    25 struct __cfaabi_ehm__base_exception_t_vtable {
    26         const struct __cfaabi_ehm__base_exception_t_vtable * parent;
     23struct __cfaehm__base_exception_t;
     24typedef struct __cfaehm__base_exception_t exception;
     25struct __cfaehm__base_exception_t_vtable {
     26        const struct __cfaehm__base_exception_t_vtable * parent;
    2727        size_t size;
    28         void (*copy)(struct __cfaabi_ehm__base_exception_t *this,
    29                      struct __cfaabi_ehm__base_exception_t * other);
    30         void (*free)(struct __cfaabi_ehm__base_exception_t *this);
    31         const char * (*msg)(struct __cfaabi_ehm__base_exception_t *this);
     28        void (*copy)(struct __cfaehm__base_exception_t *this,
     29                     struct __cfaehm__base_exception_t * other);
     30        void (*free)(struct __cfaehm__base_exception_t *this);
     31        const char * (*msg)(struct __cfaehm__base_exception_t *this);
    3232};
    33 struct __cfaabi_ehm__base_exception_t {
    34         struct __cfaabi_ehm__base_exception_t_vtable const * virtual_table;
     33struct __cfaehm__base_exception_t {
     34        struct __cfaehm__base_exception_t_vtable const * virtual_table;
    3535};
    36 extern struct __cfaabi_ehm__base_exception_t_vtable
    37         ___cfaabi_ehm__base_exception_t_vtable_instance;
     36extern struct __cfaehm__base_exception_t_vtable
     37        ___cfaehm__base_exception_t_vtable_instance;
    3838
    3939
    4040// Used in throw statement translation.
    41 void __cfaabi_ehm__throw_terminate(exception * except) __attribute__((noreturn));
    42 void __cfaabi_ehm__rethrow_terminate() __attribute__((noreturn));
    43 void __cfaabi_ehm__throw_resume(exception * except);
     41void __cfaehm__throw_terminate(exception * except) __attribute__((noreturn));
     42void __cfaehm__rethrow_terminate() __attribute__((noreturn));
     43void __cfaehm__throw_resume(exception * except);
    4444
    4545// Function catches termination exceptions.
    46 void __cfaabi_ehm__try_terminate(
     46void __cfaehm__try_terminate(
    4747    void (*try_block)(),
    4848    void (*catch_block)(int index, exception * except),
     
    5050
    5151// Clean-up the exception in catch blocks.
    52 void __cfaabi_ehm__cleanup_terminate(void * except);
     52void __cfaehm__cleanup_terminate(void * except);
    5353
    5454// Data structure creates a list of resume handlers.
    55 struct __cfaabi_ehm__try_resume_node {
    56     struct __cfaabi_ehm__try_resume_node * next;
     55struct __cfaehm__try_resume_node {
     56    struct __cfaehm__try_resume_node * next;
    5757    _Bool (*handler)(exception * except);
    5858};
    5959
    6060// These act as constructor and destructor for the resume node.
    61 void __cfaabi_ehm__try_resume_setup(
    62     struct __cfaabi_ehm__try_resume_node * node,
     61void __cfaehm__try_resume_setup(
     62    struct __cfaehm__try_resume_node * node,
    6363    _Bool (*handler)(exception * except));
    64 void __cfaabi_ehm__try_resume_cleanup(
    65     struct __cfaabi_ehm__try_resume_node * node);
     64void __cfaehm__try_resume_cleanup(
     65    struct __cfaehm__try_resume_node * node);
    6666
    6767// Check for a standard way to call fake deconstructors.
    68 struct __cfaabi_ehm__cleanup_hook {};
     68struct __cfaehm__cleanup_hook {};
    6969
    7070#ifdef __cforall
  • src/libcfa/interpose.c

    r3d560060 rdd9b59e  
    2424}
    2525
    26 #include "bits/debug.h"
    27 #include "bits/defs.h"
     26#include "libhdr/libdebug.h"
     27#include "libhdr/libtools.h"
    2828#include "startup.h"
    2929
     
    6969__typeof__( exit ) libc_exit __attribute__(( noreturn ));
    7070__typeof__( abort ) libc_abort __attribute__(( noreturn ));
     71
     72// #define INIT_REALRTN( x, ver ) libc_##x = (__typeof__(libc_##x))interpose_symbol( #x, ver )
    7173
    7274forall(dtype T)
     
    125127                        va_end( args );
    126128
    127                         __cfaabi_dbg_bits_write( abort_text, len );
    128                         __cfaabi_dbg_bits_write( "\n", 1 );
     129                        __lib_debug_write( abort_text, len );
     130                        __lib_debug_write( "\n", 1 );
    129131                }
    130132
    131133                len = snprintf( abort_text, abort_text_size, "Cforall Runtime error (UNIX pid:%ld)\n", (long int)getpid() ); // use UNIX pid (versus getPid)
    132                 __cfaabi_dbg_bits_write( abort_text, len );
     134                __lib_debug_write( abort_text, len );
    133135
    134136
  • src/libcfa/stdhdr/assert.h

    r3d560060 rdd9b59e  
    3030#endif
    3131
    32 #if !defined(NDEBUG) && (defined(__CFA_DEBUG__) || defined(__CFA_VERIFY__))
    33         #define verify(x) assert(x)
    34         #define verifyf(x, ...) assertf(x, __VA_ARGS__)
    35 #else
    36         #define verify(x)
    37         #define verifyf(x, ...)
    38 #endif
    39 
    4032#ifdef __cforall
    4133} // extern "C"
  • src/prelude/builtins.c

    r3d560060 rdd9b59e  
    1616// exception implementation
    1717
    18 typedef unsigned long long __cfaabi_abi_exception_type_t;
     18typedef unsigned long long __cfaabi_exception_type_t;
    1919
    2020#include "../libcfa/virtual.h"
     
    8080} // ?\?
    8181
    82 // FIXME (x \ (unsigned long int)y) relies on X ?\?(T, unsigned long) a function that is neither
    83 // defined, nor passed as an assertion parameter. Without user-defined conversions, cannot specify
    84 // X as a type that casts to double, yet it doesn't make sense to write functions with that type
     82// FIXME (x \ (unsigned long int)y) relies on X ?\?(T, unsigned long) a function that is neither 
     83// defined, nor passed as an assertion parameter. Without user-defined conversions, cannot specify 
     84// X as a type that casts to double, yet it doesn't make sense to write functions with that type 
    8585// signature where X is double.
    8686
  • src/tests/except-mac.h

    r3d560060 rdd9b59e  
    77
    88// The fully (perhaps overly) qualified name of the base exception type:
    9 #define BASE_EXCEPT __cfaabi_ehm__base_exception_t
     9#define BASE_EXCEPT __cfaehm__base_exception_t
    1010
    1111// Get the name of the vtable type and vtable instance for an exception type:
Note: See TracChangeset for help on using the changeset viewer.