Tizen 2.0 Release
[profile/ivi/osmesa.git] / src / gallium / auxiliary / rbug / rbug_demarshal.c
1 /*
2  * Copyright 2009 VMware, Inc.
3  * All Rights Reserved.
4  *
5  * Permission is hereby granted, free of charge, to any person obtaining a
6  * copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation
8  * on the rights to use, copy, modify, merge, publish, distribute, sub
9  * license, and/or sell copies of the Software, and to permit persons to whom
10  * the Software is furnished to do so, subject to the following conditions:
11  *
12  * The above copyright notice and this permission notice (including the next
13  * paragraph) shall be included in all copies or substantial portions of the
14  * Software.
15  *
16  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17  * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18  * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.  IN NO EVENT SHALL
19  * VMWARE AND/OR THEIR SUPPLIERS BE LIABLE FOR ANY CLAIM,
20  * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
21  * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
22  * USE OR OTHER DEALINGS IN THE SOFTWARE.
23  */
24
25 #include "rbug.h"
26
27 /**
28  * Small function that looks at the proto_header and selects the correct
29  * demarshal functions and return the result.
30  */
31 struct rbug_header * rbug_demarshal(struct rbug_proto_header *header)
32 {
33         switch(header->opcode) {
34         case RBUG_OP_NOOP:
35                 return (struct rbug_header *)rbug_demarshal_noop(header);
36         case RBUG_OP_PING:
37                 return (struct rbug_header *)rbug_demarshal_ping(header);
38         case RBUG_OP_ERROR:
39                 return (struct rbug_header *)rbug_demarshal_error(header);
40         case RBUG_OP_PING_REPLY:
41                 return (struct rbug_header *)rbug_demarshal_ping_reply(header);
42         case RBUG_OP_ERROR_REPLY:
43                 return (struct rbug_header *)rbug_demarshal_error_reply(header);
44         case RBUG_OP_TEXTURE_LIST:
45                 return (struct rbug_header *)rbug_demarshal_texture_list(header);
46         case RBUG_OP_TEXTURE_INFO:
47                 return (struct rbug_header *)rbug_demarshal_texture_info(header);
48         case RBUG_OP_TEXTURE_WRITE:
49                 return (struct rbug_header *)rbug_demarshal_texture_write(header);
50         case RBUG_OP_TEXTURE_READ:
51                 return (struct rbug_header *)rbug_demarshal_texture_read(header);
52         case RBUG_OP_TEXTURE_LIST_REPLY:
53                 return (struct rbug_header *)rbug_demarshal_texture_list_reply(header);
54         case RBUG_OP_TEXTURE_INFO_REPLY:
55                 return (struct rbug_header *)rbug_demarshal_texture_info_reply(header);
56         case RBUG_OP_TEXTURE_READ_REPLY:
57                 return (struct rbug_header *)rbug_demarshal_texture_read_reply(header);
58         case RBUG_OP_CONTEXT_LIST:
59                 return (struct rbug_header *)rbug_demarshal_context_list(header);
60         case RBUG_OP_CONTEXT_INFO:
61                 return (struct rbug_header *)rbug_demarshal_context_info(header);
62         case RBUG_OP_CONTEXT_DRAW_BLOCK:
63                 return (struct rbug_header *)rbug_demarshal_context_draw_block(header);
64         case RBUG_OP_CONTEXT_DRAW_STEP:
65                 return (struct rbug_header *)rbug_demarshal_context_draw_step(header);
66         case RBUG_OP_CONTEXT_DRAW_UNBLOCK:
67                 return (struct rbug_header *)rbug_demarshal_context_draw_unblock(header);
68         case RBUG_OP_CONTEXT_DRAW_RULE:
69                 return (struct rbug_header *)rbug_demarshal_context_draw_rule(header);
70         case RBUG_OP_CONTEXT_FLUSH:
71                 return (struct rbug_header *)rbug_demarshal_context_flush(header);
72         case RBUG_OP_CONTEXT_LIST_REPLY:
73                 return (struct rbug_header *)rbug_demarshal_context_list_reply(header);
74         case RBUG_OP_CONTEXT_INFO_REPLY:
75                 return (struct rbug_header *)rbug_demarshal_context_info_reply(header);
76         case RBUG_OP_CONTEXT_DRAW_BLOCKED:
77                 return (struct rbug_header *)rbug_demarshal_context_draw_blocked(header);
78         case RBUG_OP_SHADER_LIST:
79                 return (struct rbug_header *)rbug_demarshal_shader_list(header);
80         case RBUG_OP_SHADER_INFO:
81                 return (struct rbug_header *)rbug_demarshal_shader_info(header);
82         case RBUG_OP_SHADER_DISABLE:
83                 return (struct rbug_header *)rbug_demarshal_shader_disable(header);
84         case RBUG_OP_SHADER_REPLACE:
85                 return (struct rbug_header *)rbug_demarshal_shader_replace(header);
86         case RBUG_OP_SHADER_LIST_REPLY:
87                 return (struct rbug_header *)rbug_demarshal_shader_list_reply(header);
88         case RBUG_OP_SHADER_INFO_REPLY:
89                 return (struct rbug_header *)rbug_demarshal_shader_info_reply(header);
90         default:
91                 return NULL;
92         }
93 }
94
95 const char* rbug_proto_get_name(enum rbug_opcode opcode)
96 {
97         switch(opcode) {
98         case RBUG_OP_NOOP:
99                 return "RBUG_OP_NOOP";
100         case RBUG_OP_PING:
101                 return "RBUG_OP_PING";
102         case RBUG_OP_ERROR:
103                 return "RBUG_OP_ERROR";
104         case RBUG_OP_PING_REPLY:
105                 return "RBUG_OP_PING_REPLY";
106         case RBUG_OP_ERROR_REPLY:
107                 return "RBUG_OP_ERROR_REPLY";
108         case RBUG_OP_TEXTURE_LIST:
109                 return "RBUG_OP_TEXTURE_LIST";
110         case RBUG_OP_TEXTURE_INFO:
111                 return "RBUG_OP_TEXTURE_INFO";
112         case RBUG_OP_TEXTURE_WRITE:
113                 return "RBUG_OP_TEXTURE_WRITE";
114         case RBUG_OP_TEXTURE_READ:
115                 return "RBUG_OP_TEXTURE_READ";
116         case RBUG_OP_TEXTURE_LIST_REPLY:
117                 return "RBUG_OP_TEXTURE_LIST_REPLY";
118         case RBUG_OP_TEXTURE_INFO_REPLY:
119                 return "RBUG_OP_TEXTURE_INFO_REPLY";
120         case RBUG_OP_TEXTURE_READ_REPLY:
121                 return "RBUG_OP_TEXTURE_READ_REPLY";
122         case RBUG_OP_CONTEXT_LIST:
123                 return "RBUG_OP_CONTEXT_LIST";
124         case RBUG_OP_CONTEXT_INFO:
125                 return "RBUG_OP_CONTEXT_INFO";
126         case RBUG_OP_CONTEXT_DRAW_BLOCK:
127                 return "RBUG_OP_CONTEXT_DRAW_BLOCK";
128         case RBUG_OP_CONTEXT_DRAW_STEP:
129                 return "RBUG_OP_CONTEXT_DRAW_STEP";
130         case RBUG_OP_CONTEXT_DRAW_UNBLOCK:
131                 return "RBUG_OP_CONTEXT_DRAW_UNBLOCK";
132         case RBUG_OP_CONTEXT_DRAW_RULE:
133                 return "RBUG_OP_CONTEXT_DRAW_RULE";
134         case RBUG_OP_CONTEXT_FLUSH:
135                 return "RBUG_OP_CONTEXT_FLUSH";
136         case RBUG_OP_CONTEXT_LIST_REPLY:
137                 return "RBUG_OP_CONTEXT_LIST_REPLY";
138         case RBUG_OP_CONTEXT_INFO_REPLY:
139                 return "RBUG_OP_CONTEXT_INFO_REPLY";
140         case RBUG_OP_CONTEXT_DRAW_BLOCKED:
141                 return "RBUG_OP_CONTEXT_DRAW_BLOCKED";
142         case RBUG_OP_SHADER_LIST:
143                 return "RBUG_OP_SHADER_LIST";
144         case RBUG_OP_SHADER_INFO:
145                 return "RBUG_OP_SHADER_INFO";
146         case RBUG_OP_SHADER_DISABLE:
147                 return "RBUG_OP_SHADER_DISABLE";
148         case RBUG_OP_SHADER_REPLACE:
149                 return "RBUG_OP_SHADER_REPLACE";
150         case RBUG_OP_SHADER_LIST_REPLY:
151                 return "RBUG_OP_SHADER_LIST_REPLY";
152         case RBUG_OP_SHADER_INFO_REPLY:
153                 return "RBUG_OP_SHADER_INFO_REPLY";
154         default:
155                 return NULL;
156         }
157 }