1 /* 2 * SPDX-License-Identifier: MIT 3 * 4 * Copyright © 2019 Intel Corporation 5 */ 6 7 #ifndef _I915_GLOBALS_H_ 8 #define _I915_GLOBALS_H_ 9 10 #include <linux/types.h> 11 12 typedef void (*i915_global_func_t)(void); 13 14 struct i915_global { 15 struct list_head link; 16 17 i915_global_func_t shrink; 18 i915_global_func_t exit; 19 }; 20 21 void i915_global_register(struct i915_global *global); 22 23 int i915_globals_init(void); 24 void i915_globals_park(void); 25 void i915_globals_unpark(void); 26 void i915_globals_exit(void); 27 28 /* constructors */ 29 int i915_global_active_init(void); 30 int i915_global_buddy_init(void); 31 int i915_global_context_init(void); 32 int i915_global_gem_context_init(void); 33 int i915_global_objects_init(void); 34 int i915_global_request_init(void); 35 int i915_global_scheduler_init(void); 36 int i915_global_vma_init(void); 37 38 #endif /* _I915_GLOBALS_H_ */ 39