1f08c3bdfSopenharmony_ci/* Resembles include/linux/compiler_types.h */
2f08c3bdfSopenharmony_ci#define __kernel __attribute__((address_space(0)))
3f08c3bdfSopenharmony_ci#define __user __attribute__((address_space(1)))
4f08c3bdfSopenharmony_ci#define __iomem __attribute__((address_space(2)))
5f08c3bdfSopenharmony_ci#define __percpu __attribute__((address_space(3)))
6f08c3bdfSopenharmony_ci#define __rcu __attribute__((address_space(4)))
7f08c3bdfSopenharmony_ci
8f08c3bdfSopenharmony_ci
9f08c3bdfSopenharmony_citypedef unsigned long ulong;
10f08c3bdfSopenharmony_citypedef struct s obj_t;
11f08c3bdfSopenharmony_ci
12f08c3bdfSopenharmony_cistatic void expl(obj_t __kernel *k, obj_t __iomem *o,
13f08c3bdfSopenharmony_ci		 obj_t __user *p, obj_t __percpu *pc,
14f08c3bdfSopenharmony_ci		 obj_t __rcu *r)
15f08c3bdfSopenharmony_ci{
16f08c3bdfSopenharmony_ci	(ulong)(k); (__UINTPTR_TYPE__)(k);
17f08c3bdfSopenharmony_ci	(void *)(k);
18f08c3bdfSopenharmony_ci	(obj_t*)(k);
19f08c3bdfSopenharmony_ci	(obj_t __kernel*)(k);
20f08c3bdfSopenharmony_ci
21f08c3bdfSopenharmony_ci	(ulong)(o); (__UINTPTR_TYPE__)(o);
22f08c3bdfSopenharmony_ci	(void *)(o);
23f08c3bdfSopenharmony_ci	(obj_t*)(o);
24f08c3bdfSopenharmony_ci	(obj_t __iomem*)(o);
25f08c3bdfSopenharmony_ci
26f08c3bdfSopenharmony_ci	(ulong)(p); (__UINTPTR_TYPE__)(p);
27f08c3bdfSopenharmony_ci	(void *)(p);
28f08c3bdfSopenharmony_ci	(obj_t*)(p);
29f08c3bdfSopenharmony_ci	(obj_t __user*)(p);
30f08c3bdfSopenharmony_ci
31f08c3bdfSopenharmony_ci	(ulong)(pc); (__UINTPTR_TYPE__)(pc);
32f08c3bdfSopenharmony_ci	(void *)(pc);
33f08c3bdfSopenharmony_ci	(obj_t*)(pc);
34f08c3bdfSopenharmony_ci	(obj_t __percpu*)(pc);
35f08c3bdfSopenharmony_ci
36f08c3bdfSopenharmony_ci	(ulong)(r); (__UINTPTR_TYPE__)(r);
37f08c3bdfSopenharmony_ci	(void *)(r);
38f08c3bdfSopenharmony_ci	(obj_t*)(r);
39f08c3bdfSopenharmony_ci	(obj_t __rcu*)(r);
40f08c3bdfSopenharmony_ci}
41f08c3bdfSopenharmony_ci
42f08c3bdfSopenharmony_ci/*
43f08c3bdfSopenharmony_ci * check-name: Waddress-space-all-attr
44f08c3bdfSopenharmony_ci * check-command: sparse -Wcast-from-as -Wcast-to-as $file
45f08c3bdfSopenharmony_ci *
46f08c3bdfSopenharmony_ci * check-error-start
47f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:21:10: warning: cast removes address space '<asn:2>' of expression
48f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:21:22: warning: cast removes address space '<asn:2>' of expression
49f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:22:10: warning: cast removes address space '<asn:2>' of expression
50f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:23:10: warning: cast removes address space '<asn:2>' of expression
51f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:26:10: warning: cast removes address space '<asn:1>' of expression
52f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:26:22: warning: cast removes address space '<asn:1>' of expression
53f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:27:10: warning: cast removes address space '<asn:1>' of expression
54f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:28:10: warning: cast removes address space '<asn:1>' of expression
55f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:31:10: warning: cast removes address space '<asn:3>' of expression
56f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:31:23: warning: cast removes address space '<asn:3>' of expression
57f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:32:10: warning: cast removes address space '<asn:3>' of expression
58f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:33:10: warning: cast removes address space '<asn:3>' of expression
59f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:36:10: warning: cast removes address space '<asn:4>' of expression
60f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:36:22: warning: cast removes address space '<asn:4>' of expression
61f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:37:10: warning: cast removes address space '<asn:4>' of expression
62f08c3bdfSopenharmony_ciWaddress-space-all-attr.c:38:10: warning: cast removes address space '<asn:4>' of expression
63f08c3bdfSopenharmony_ci * check-error-end
64f08c3bdfSopenharmony_ci */
65