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