I hope this isn't a stupid question...

Joel Sherrill joel.sherrill at OARcorp.com
Thu Oct 19 12:52:21 UTC 2000


Rosimildo da Silva wrote:
> 
> Gregory.D.Menke.1 at gsfc.nasa.gov wrote:
> >
> >  > >
> >  > > I've got our app compiling, sucessfully linking, and starting on our
> >  > > powerpc target.  My current intractable problem is the call;
> >  > >
> >  > > sem_open("top_sem", O_CREAT, 0777, 0);
> >  > > sem_open("top_sem", O_CREAT, 0, 0); also failed identically.

Could you report what the errno is?  

Does psxsem01 work for you?  I can't see anything different in its
test of sem_open().

  puts( "Init: sem_open - sem1 SUCCESSFUL" );
  n_sem1 = sem_open( "sem1", O_CREAT, 00777, 1 );
  assert( n_sem1 != SEM_FAILED );

I see no error checks based on the initial count so it should be OK. 
strlen("top_sem") is < PATH_MAX.  

> >  > > which is failing with -1; perror() reports no space left on device.
> >  > > This is the first of a couple of semaphores created by the app.
> >  > >
> >  > > I'm using the posix api, no itron, no c++ and no networking.  I have
> >  > > all the posix config #defines set up to reasonable values.

Out of curiousity, did you in fact configure rtems with --enable-posix?
If not, then the config #defines have no impact and I would expect
ENOSPC
to be returned above.

Hmm.. but if you didn't configure it, then it would be undefined. 
Ignore
that one. :(

> >  > > Is there some additional initialization I need to perform?
> >  >
> >  >
> >  > yes. You need to define the resources for the POSIX api:
> >  >
> >  >
> >  > I defined them as:  ( change them to match your needs ).
> >  >
> >  >
> >  > #define CONFIGURE_MAXIMUM_POSIX_THREADS                    128
> >  > #define CONFIGURE_MAXIMUM_POSIX_MUTEXES            128
> >  > #define CONFIGURE_MAXIMUM_POSIX_CONDITION_VARIABLES   128
> >  > #define CONFIGURE_MAXIMUM_POSIX_KEYS                       128
> >  > #define CONFIGURE_MAXIMUM_POSIX_TIMERS                100
> >  > #define CONFIGURE_MAXIMUM_POSIX_QUEUED_SIGNALS        100
> >  > #define CONFIGURE_MAXIMUM_POSIX_MESSAGE_QUEUES        100
> >  > #define CONFIGURE_MAXIMUM_POSIX_SEMAPHORES            100
> >
> > Mine are down at 30- but they are all there, and the call is failing
> > on the first semaphore open.
> >
> 
> Sorry. I did not read between the lines that you had a good
> configuration.
> Another area to check, is to make sure that you're including the
> "real" managers. Add something like that to your makefile:
> 
> MANAGERS=io event semaphore timer rate_monotonic signal msg

This only impacts the "Classic API.  There is no comparable 
feature for ITRON or POSIX.

> --
> Rosimildo da Silva            rdasilva at connectel.com
> ConnectTel, Inc.              Austin, TX -- USA
> Phone : 512-338-1111          Fax : 512-918-0449
> Mobile: 512-632-7579
> Company Page: http://www.connecttel.com
> Home Page: http://members.xoom.com/rosimildo/

-- 
Joel Sherrill, Ph.D.             Director of Research & Development
joel at OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985



More information about the users mailing list