Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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. }
  158.