source: rtems/cpukit/score/src/objectfree.c @ 9b4422a2

4.115
Last change on this file since 9b4422a2 was 9b4422a2, checked in by Joel Sherrill <joel.sherrill@…>, on 05/03/12 at 15:09:24

Remove All CVS Id Strings Possible Using a Script

Script does what is expected and tries to do it as
smartly as possible.

+ remove occurrences of two blank comment lines

next to each other after Id string line removed.

+ remove entire comment blocks which only exited to

contain CVS Ids

+ If the processing left a blank line at the top of

a file, it was removed.

  • Property mode set to 100644
File size: 1.6 KB
Line 
1/*
2 *  Object Handler
3 *
4 *
5 *  COPYRIGHT (c) 1989-1999.
6 *  On-Line Applications Research Corporation (OAR).
7 *
8 *  The license and distribution terms for this file may be
9 *  found in the file LICENSE in this distribution or at
10 *  http://www.rtems.com/license/LICENSE.
11 */
12
13#if HAVE_CONFIG_H
14#include "config.h"
15#endif
16
17#include <rtems/system.h>
18#include <rtems/score/address.h>
19#include <rtems/score/chain.h>
20#include <rtems/score/object.h>
21#if defined(RTEMS_MULTIPROCESSING)
22#include <rtems/score/objectmp.h>
23#endif
24#include <rtems/score/thread.h>
25#include <rtems/score/wkspace.h>
26#include <rtems/score/sysstate.h>
27#include <rtems/score/isr.h>
28
29/*
30 *  _Objects_Free
31 *
32 *  DESCRIPTION:
33 *
34 *  This function frees a object control block to the
35 *  inactive chain of free object control blocks.
36 */
37
38void _Objects_Free(
39  Objects_Information *information,
40  Objects_Control     *the_object
41)
42{
43  uint32_t    allocation_size = information->allocation_size;
44
45  _Chain_Append( &information->Inactive, &the_object->Node );
46
47  if ( information->auto_extend ) {
48    uint32_t    block;
49
50    block = (uint32_t) (_Objects_Get_index( the_object->id ) -
51                        _Objects_Get_index( information->minimum_id ));
52    block /= information->allocation_size;
53
54    information->inactive_per_block[ block ]++;
55    information->inactive++;
56
57    /*
58     *  Check if the threshold level has been met of
59     *  1.5 x allocation_size are free.
60     */
61
62    if ( information->inactive > ( allocation_size + ( allocation_size >> 1 ) ) ) {
63      _Objects_Shrink_information( information );
64    }
65  }
66}
Note: See TracBrowser for help on using the repository browser.