Changeset ef9505a in rtems for cpukit/score/src/coresem.c


Ignore:
Timestamp:
Jul 1, 2002, 10:30:12 PM (17 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.10, 4.11, 4.8, 4.9, master
Children:
0577ec1d
Parents:
3a05d15
Message:

2002-07-01 Joel Sherrill <joel@…>

  • Mega patch merge to change the format of the object IDs to loosen the dependency between the SCORE and the various APIs. There was considerable work to simplify the object name management and it appears that the name_table field is no longer needed. This patch also includes the addition of the internal mutex which is currently only used to protect some types of allocation and deallocation. This significantly can reduce context switch latency under certain circumstances. In particular, some heap/region operations were O(n) and had dispatching disabled. This should help enormously. With this merge, the patch is not as clean as it should be. In particular, the documentation has not been modified to reflect the new object ID layout, the IDs in the test screens are not updated, and _Objects_Get_information needs to be a real routine not inlined. As part of this patch a lot of MP code for thread/proxy blocking was made conditional and cleaned up.
  • include/Makefile.am, include/rtems/score/coremsg.h, include/rtems/score/coremutex.h, include/rtems/score/coresem.h, include/rtems/score/object.h, include/rtems/score/threadq.h, inline/rtems/score/object.inl, inline/rtems/score/thread.inl, macros/rtems/score/object.inl, src/Makefile.am, src/coremsg.c, src/coremutex.c, src/coresem.c, src/mpci.c, src/objectcomparenameraw.c, src/objectextendinformation.c, src/objectinitializeinformation.c, src/objectnametoid.c, src/thread.c, src/threadclose.c, src/threadget.c, src/threadq.c, src/threadqextractwithproxy.c: Modified as part of above.
  • include/rtems/score/apimutex.h, src/objectgetnoprotection.c: New files.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • cpukit/score/src/coresem.c

    r3a05d15 ref9505a  
    3737 *  Input parameters:
    3838 *    the_semaphore            - the semaphore control block to initialize
    39  *    the_class                - the API class of the object
    4039 *    the_semaphore_attributes - the attributes specified at create time
    4140 *    initial_value            - semaphore's initial value
    42  *    proxy_extract_callout    - MP specific extract callout
    4341 *
    4442 *  Output parameters:  NONE
     
    4745void _CORE_semaphore_Initialize(
    4846  CORE_semaphore_Control       *the_semaphore,
    49   Objects_Classes               the_class,
    5047  CORE_semaphore_Attributes    *the_semaphore_attributes,
    51   unsigned32                    initial_value,
    52   Thread_queue_Extract_callout  proxy_extract_callout
     48  unsigned32                    initial_value
    5349)
    5450{
     
    5955  _Thread_queue_Initialize(
    6056    &the_semaphore->Wait_queue,
    61     the_class,
    6257    _CORE_semaphore_Is_priority( the_semaphore_attributes ) ?
    6358              THREAD_QUEUE_DISCIPLINE_PRIORITY : THREAD_QUEUE_DISCIPLINE_FIFO,
    6459    STATES_WAITING_FOR_SEMAPHORE,
    65     proxy_extract_callout,
    6660    CORE_SEMAPHORE_TIMEOUT
    6761  );
Note: See TracChangeset for help on using the changeset viewer.