[ECOS] Bug in declaration of Cyg_Scheduler::unlock_inner ?

Uwe Kindler ukindler@htwm.de
Tue Oct 28 08:23:00 GMT 2003


Hello,

I buildet eCos for the EDOSK board with the default configuration and
received the following error message:

make: Leaving directory `/ecos-d/ecos/workdir/default_edosk_build'
   Cyg_Scheduler::unlock_inner(unsigned int)' does not match any in class `
   Cyg_Scheduler'
/ecos-d/ecos/workdir/default_edosk_install/include/cyg/kernel/sched.hxx:155:
candidate
    is: static void Cyg_Scheduler::unlock_inner(long unsigned int = 0)
make[1]: *** [src/sched/sched.o.d] Error 1
make: *** [build] Error 2


In sched.hxx then unlock_inner is declared as:

static void             unlock_inner(cyg_uint32 new_lock = 0);

In sched.cxx then unlock_inner is defined as:

void Cyg_Scheduler::unlock_inner( cyg_ucount32 new_lock )

In basetype.h I defined  #define cyg_halint32   long and did not define
cyg_halcount32 so it was
defined as int by default in cyg_type.h.
Now I also defined cyg_halcount32 as long and there is no problem anymore.
So my two questions are:

1. What is the reason for the different declaration of  unlock_inner.

2. If int is 32 bits wide should I use long or int for cyg_halint32 - o
doesn't it matter.

2. Why is cyg_halcount8, cyg_halcount16 and cyg_halcount32 defined as int by
default?

Best Regards, Uwe








-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss



More information about the Ecos-discuss mailing list