47 48 // all capabilities ever acquired 49 static jvmtiCapabilities acquired_capabilities; 50 51 // basic intenal operations 52 static jvmtiCapabilities *either(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 53 static jvmtiCapabilities *both(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 54 static jvmtiCapabilities *exclude(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 55 static bool has_some(const jvmtiCapabilities *a); 56 static void update(); 57 58 // init functions 59 static jvmtiCapabilities init_always_capabilities(); 60 static jvmtiCapabilities init_onload_capabilities(); 61 static jvmtiCapabilities init_always_solo_capabilities(); 62 static jvmtiCapabilities init_onload_solo_capabilities(); 63 64 public: 65 static void initialize(); 66 67 // may have to adjust always capabilities when VM initialization has completed 68 static void recompute_always_capabilities(); 69 70 // queries and actions 71 static void get_potential_capabilities(const jvmtiCapabilities *current, 72 const jvmtiCapabilities *prohibited, 73 jvmtiCapabilities *result); 74 static jvmtiError add_capabilities(const jvmtiCapabilities *current, 75 const jvmtiCapabilities *prohibited, 76 const jvmtiCapabilities *desired, 77 jvmtiCapabilities *result); 78 static void relinquish_capabilities(const jvmtiCapabilities *current, 79 const jvmtiCapabilities *unwanted, 80 jvmtiCapabilities *result); 81 static void copy_capabilities(const jvmtiCapabilities *from, jvmtiCapabilities *to); 82 83 #ifndef PRODUCT 84 static void print(const jvmtiCapabilities* caps); 85 #endif 86 }; 87 88 #endif // SHARE_VM_PRIMS_JVMTIMANAGECAPABILITIES_HPP | 47 48 // all capabilities ever acquired 49 static jvmtiCapabilities acquired_capabilities; 50 51 // basic intenal operations 52 static jvmtiCapabilities *either(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 53 static jvmtiCapabilities *both(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 54 static jvmtiCapabilities *exclude(const jvmtiCapabilities *a, const jvmtiCapabilities *b, jvmtiCapabilities *result); 55 static bool has_some(const jvmtiCapabilities *a); 56 static void update(); 57 58 // init functions 59 static jvmtiCapabilities init_always_capabilities(); 60 static jvmtiCapabilities init_onload_capabilities(); 61 static jvmtiCapabilities init_always_solo_capabilities(); 62 static jvmtiCapabilities init_onload_solo_capabilities(); 63 64 public: 65 static void initialize(); 66 67 // queries and actions 68 static void get_potential_capabilities(const jvmtiCapabilities *current, 69 const jvmtiCapabilities *prohibited, 70 jvmtiCapabilities *result); 71 static jvmtiError add_capabilities(const jvmtiCapabilities *current, 72 const jvmtiCapabilities *prohibited, 73 const jvmtiCapabilities *desired, 74 jvmtiCapabilities *result); 75 static void relinquish_capabilities(const jvmtiCapabilities *current, 76 const jvmtiCapabilities *unwanted, 77 jvmtiCapabilities *result); 78 static void copy_capabilities(const jvmtiCapabilities *from, jvmtiCapabilities *to); 79 80 #ifndef PRODUCT 81 static void print(const jvmtiCapabilities* caps); 82 #endif 83 }; 84 85 #endif // SHARE_VM_PRIMS_JVMTIMANAGECAPABILITIES_HPP |