Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
parent.h
Go to the documentation of this file.
1 #ifndef __NOUVEAU_PARENT_H__
2 #define __NOUVEAU_PARENT_H__
3 
4 #include <core/device.h>
5 #include <core/object.h>
6 
7 struct nouveau_sclass {
11 };
12 
15 
18 
20  struct nouveau_object *);
22  struct nouveau_object *);
23 
25  struct nouveau_object *object, u32 name);
27 };
28 
29 static inline struct nouveau_parent *
30 nv_parent(void *obj)
31 {
32 #if CONFIG_NOUVEAU_DEBUG >= NV_DBG_PARANOIA
33  if (unlikely(!(nv_iclass(obj, NV_PARENT_CLASS))))
34  nv_assert("BAD CAST -> NvParent, %08x", nv_hclass(obj));
35 #endif
36  return obj;
37 }
38 
39 #define nouveau_parent_create(p,e,c,v,s,m,d) \
40  nouveau_parent_create_((p), (e), (c), (v), (s), (m), \
41  sizeof(**d), (void **)d)
42 #define nouveau_parent_init(p) \
43  nouveau_object_init(&(p)->base)
44 #define nouveau_parent_fini(p,s) \
45  nouveau_object_fini(&(p)->base, (s))
46 
48  struct nouveau_oclass *, u32 pclass,
49  struct nouveau_oclass *, u64 engcls,
50  int size, void **);
52 
54 #define _nouveau_parent_init _nouveau_object_init
55 #define _nouveau_parent_fini _nouveau_object_fini
56 
58  struct nouveau_object **pengine,
59  struct nouveau_oclass **poclass);
60 
61 #endif