This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

RE: Posix management [NEED HELP]


Hello and excuse me,

I know that it's my third message today but I'm really blocked...
I'm going to resume my problem :

I'm running under a Linux Redhat 7.3 and my target is, for the moment,
a synthetic target.
I've worked under ecos for one month and my programs work well;
However, until yesterday, I worked with the ecos fonctions 
(cyg_thread_delay, cyg_mutex_lock for example ...).
Now, I would be able to use message queues.
As ecos doesn't integer this package but only mail boxes, I decided 
to use the posix functions (mq_open, mq_send ... ).

As Andrew and Nick told me in a previous answer, I started a new .ecc file
to
start from a "blank" configuration file. But my problem always exists...
I tried with the template POSIX and nothing else. I changed nothing but
it's always the same error.


The configtool added three packages : 	
	ISO C and POSIX compatibility layer
	POSIX compatibility layer
	POSIX File IO compatibility layer
Do I need this three packages ?

My problem is the next :
	As I try to use mq_open (for example), I must use the mq_attr
	structure and the mdq_t. Logical. But :

ecos_os_messages.c: In function `otr_creer_file_de_messages':
ecos_os_messages.c:101: `mqd_t' undeclared (first use in this function)
ecos_os_messages.c:101: (Each undeclared identifier is reported only once
ecos_os_messages.c:101: for each function it appears in.)
ecos_os_messages.c:101: parse error before `handle'
ecos_os_messages.c:103: storage size of `attributs' isn't known
ecos_os_messages.c:134: `handle' undeclared (first use in this function)
ecos_os_messages.c:134: `O_RDWR' undeclared (first use in this function)
ecos_os_messages.c:134: `O_CREAT' undeclared (first use in this function)
ecos_os_messages.c:134: `O_EXCL' undeclared (first use in this function)
ecos_os_messages.c:145: `ma_file_de_messages' undeclared (first use in this
function)
ecos_os_outils.c: In function `conversion_ms_vers_ticks':
ecos_os_outils.c:77: `div_t' undeclared (first use in this function)
ecos_os_outils.c:77: (Each undeclared identifier is reported only once
ecos_os_outils.c:77: for each function it appears in.)
ecos_os_outils.c:77: parse error before `resultat_division'
ecos_os_outils.c:79: `resultat_division' undeclared (first use in this
function)
[root@p00012049 done]# 

	As you can see, this two types aren't defined for my system.
	From here, I'm completely lost because if I read mqueue.h : 
	
#ifdef _POSIX_MESSAGE_PASSING
# ifdef CYGBLD_ISO_MQUEUE_HEADER
#  include CYGBLD_ISO_MQUEUE_HEADER
# else
...

	because the "Implementation header" is disabled, 
	(ISO C and POSIX compatibility layer -> POSIX message queues)
	ecos might take types definitions after the "# else" ... no ?

	So why doesn't it do these definitions?

So, is there anyone who can help me ? 
Did someone have a similar problem before ?

Please help me. 
Help me to understand...

Matthieu GIRARDIN



PS : to help my safeguards, you can see just under, an extract of my
isoinfra.h
with all lines about POSIX message queues. For me all is correct in it but
...

#define CYGINT_ISO_MQUEUE 1
#define CYGINT_ISO_MQUEUE_1
#if CYGINT_ISO_MQUEUE
# define _POSIX_MESSAGE_PASSING 1
#endif
#define CYGBLD_ISO_MQUEUE_HEADER 0
#define CYGBLD_ISO_MQUEUE_HEADER_0
#define CYGNUM_ISO_MQUEUE_OPEN_MAX 8
#define CYGNUM_ISO_MQUEUE_OPEN_MAX_8
#define MQ_OPEN_MAX 8
#define MQ_OPEN_MAX_8
#define CYGNUM_ISO_MQUEUE_PRIO_MAX 65535
#define CYGNUM_ISO_MQUEUE_PRIO_MAX_65535
#define MQ_PRIO_MAX 65535
#define MQ_PRIO_MAX_65535

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]