hotspot/src/share/vm/code/codeCache.hpp
changeset 18025 b7bcf7497f93
parent 17617 4e330bce1812
child 20290 2127dc70bce9
equal deleted inserted replaced
18024:f9e300086063 18025:b7bcf7497f93
     1 /*
     1 /*
     2  * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    62   static void verify_if_often() PRODUCT_RETURN;
    62   static void verify_if_often() PRODUCT_RETURN;
    63 
    63 
    64   static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
    64   static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
    65   static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
    65   static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
    66 
    66 
       
    67   static int _codemem_full_count;
       
    68 
    67  public:
    69  public:
    68 
    70 
    69   // Initialization
    71   // Initialization
    70   static void initialize();
    72   static void initialize();
       
    73 
       
    74   static void report_codemem_full();
    71 
    75 
    72   // Allocation/administration
    76   // Allocation/administration
    73   static CodeBlob* allocate(int size, bool is_critical = false); // allocates a new CodeBlob
    77   static CodeBlob* allocate(int size, bool is_critical = false); // allocates a new CodeBlob
    74   static void commit(CodeBlob* cb);                 // called when the allocated CodeBlob has been filled
    78   static void commit(CodeBlob* cb);                 // called when the allocated CodeBlob has been filled
    75   static int alignment_unit();                      // guaranteed alignment of all CodeBlobs
    79   static int alignment_unit();                      // guaranteed alignment of all CodeBlobs
   153   static void log_state(outputStream* st);
   157   static void log_state(outputStream* st);
   154 
   158 
   155   // The full limits of the codeCache
   159   // The full limits of the codeCache
   156   static address  low_bound()                    { return (address) _heap->low_boundary(); }
   160   static address  low_bound()                    { return (address) _heap->low_boundary(); }
   157   static address  high_bound()                   { return (address) _heap->high_boundary(); }
   161   static address  high_bound()                   { return (address) _heap->high_boundary(); }
       
   162   static address  high()                         { return (address) _heap->high(); }
   158 
   163 
   159   // Profiling
   164   // Profiling
   160   static address first_address();                // first address used for CodeBlobs
   165   static address first_address();                // first address used for CodeBlobs
   161   static address last_address();                 // last  address used for CodeBlobs
   166   static address last_address();                 // last  address used for CodeBlobs
   162   static size_t  capacity()                      { return _heap->capacity(); }
   167   static size_t  capacity()                      { return _heap->capacity(); }
   184   static void make_marked_nmethods_zombies();
   189   static void make_marked_nmethods_zombies();
   185   static void make_marked_nmethods_not_entrant();
   190   static void make_marked_nmethods_not_entrant();
   186 
   191 
   187     // tells how many nmethods have dependencies
   192     // tells how many nmethods have dependencies
   188   static int number_of_nmethods_with_dependencies();
   193   static int number_of_nmethods_with_dependencies();
       
   194 
       
   195   static int get_codemem_full_count() { return _codemem_full_count; }
   189 };
   196 };
   190 
   197 
   191 #endif // SHARE_VM_CODE_CODECACHE_HPP
   198 #endif // SHARE_VM_CODE_CODECACHE_HPP