OpenCores
URL https://opencores.org/ocsvn/or1k/or1k/trunk

Subversion Repositories or1k

[/] [or1k/] [trunk/] [rtems-20020807/] [cpukit/] [posix/] [src/] [semaphoredeletesupp.c] - Blame information for rev 1026

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1026 ivang
/*
2
 *  semaphoredeletesupp.c,v 1.4 2001/01/24 14:17:28 joel Exp
3
 */
4
 
5
#if HAVE_CONFIG_H
6
#include "config.h"
7
#endif
8
 
9
#include <stdarg.h>
10
 
11
#include <errno.h>
12
#include <fcntl.h>
13
#include <pthread.h>
14
#include <semaphore.h>
15
#include <limits.h>
16
 
17
#include <rtems/system.h>
18
#include <rtems/score/object.h>
19
#include <rtems/posix/semaphore.h>
20
#include <rtems/posix/time.h>
21
#include <rtems/seterr.h>
22
 
23
/*PAGE
24
 *
25
 *  _POSIX_Semaphore_Delete
26
 */
27
 
28
void _POSIX_Semaphore_Delete(
29
  POSIX_Semaphore_Control *the_semaphore
30
)
31
{
32
  if ( !the_semaphore->linked && !the_semaphore->open_count ) {
33
      _Objects_Close( &_POSIX_Semaphore_Information, &the_semaphore->Object );
34
 
35
      _CORE_semaphore_Flush(
36
        &the_semaphore->Semaphore,
37
#if defined(RTEMS_MULTIPROCESSING)
38
        _POSIX_Semaphore_MP_Send_object_was_deleted,
39
#else
40
        NULL,
41
#endif
42
        -1  /* XXX should also seterrno -> EINVAL */
43
      );
44
 
45
    _POSIX_Semaphore_Free( the_semaphore );
46
 
47
#if defined(RTEMS_MULTIPROCESSING)
48
    if ( the_semaphore->process_shared == PTHREAD_PROCESS_SHARED ) {
49
 
50
      _Objects_MP_Close(
51
        &_POSIX_Semaphore_Information,
52
        the_semaphore->Object.id
53
      );
54
 
55
      _POSIX_Semaphore_MP_Send_process_packet(
56
        POSIX_SEMAPHORE_MP_ANNOUNCE_DELETE,
57
        the_semaphore->Object.id,
58
        0,                         /* Not used */
59
 
60
      );
61
    }
62
#endif
63
 
64
  }
65
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.