Home | History | Annotate | Download | only in rbug
      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 /*
     26  * This file holds structs decelerations and function prototypes for one of
     27  * the rbug extensions. Implementation of the functions is in the same folder
     28  * in the c file matching this file's name.
     29  *
     30  * The structs what is returned from the demarshal functions. The functions
     31  * starting rbug_send_* encodes a call to the write format and sends that to
     32  * the supplied connection, while functions starting with rbug_demarshal_*
     33  * demarshal data from the wire protocol.
     34  *
     35  * Structs and functions ending with _reply are replies to requests.
     36  */
     37 
     38 #ifndef _RBUG_PROTO_SHADER_H_
     39 #define _RBUG_PROTO_SHADER_H_
     40 
     41 #include "rbug_proto.h"
     42 #include "rbug_core.h"
     43 
     44 struct rbug_proto_shader_list
     45 {
     46 	struct rbug_header header;
     47 	rbug_context_t context;
     48 };
     49 
     50 struct rbug_proto_shader_info
     51 {
     52 	struct rbug_header header;
     53 	rbug_context_t context;
     54 	rbug_shader_t shader;
     55 };
     56 
     57 struct rbug_proto_shader_disable
     58 {
     59 	struct rbug_header header;
     60 	rbug_context_t context;
     61 	rbug_shader_t shader;
     62 	uint8_t disable;
     63 };
     64 
     65 struct rbug_proto_shader_replace
     66 {
     67 	struct rbug_header header;
     68 	rbug_context_t context;
     69 	rbug_shader_t shader;
     70 	uint32_t *tokens;
     71 	uint32_t tokens_len;
     72 };
     73 
     74 struct rbug_proto_shader_list_reply
     75 {
     76 	struct rbug_header header;
     77 	uint32_t serial;
     78 	rbug_shader_t *shaders;
     79 	uint32_t shaders_len;
     80 };
     81 
     82 struct rbug_proto_shader_info_reply
     83 {
     84 	struct rbug_header header;
     85 	uint32_t serial;
     86 	uint32_t *original;
     87 	uint32_t original_len;
     88 	uint32_t *replaced;
     89 	uint32_t replaced_len;
     90 	uint8_t disabled;
     91 };
     92 
     93 int rbug_send_shader_list(struct rbug_connection *__con,
     94                           rbug_context_t context,
     95                           uint32_t *__serial);
     96 
     97 int rbug_send_shader_info(struct rbug_connection *__con,
     98                           rbug_context_t context,
     99                           rbug_shader_t shader,
    100                           uint32_t *__serial);
    101 
    102 int rbug_send_shader_disable(struct rbug_connection *__con,
    103                              rbug_context_t context,
    104                              rbug_shader_t shader,
    105                              uint8_t disable,
    106                              uint32_t *__serial);
    107 
    108 int rbug_send_shader_replace(struct rbug_connection *__con,
    109                              rbug_context_t context,
    110                              rbug_shader_t shader,
    111                              uint32_t *tokens,
    112                              uint32_t tokens_len,
    113                              uint32_t *__serial);
    114 
    115 int rbug_send_shader_list_reply(struct rbug_connection *__con,
    116                                 uint32_t serial,
    117                                 rbug_shader_t *shaders,
    118                                 uint32_t shaders_len,
    119                                 uint32_t *__serial);
    120 
    121 int rbug_send_shader_info_reply(struct rbug_connection *__con,
    122                                 uint32_t serial,
    123                                 uint32_t *original,
    124                                 uint32_t original_len,
    125                                 uint32_t *replaced,
    126                                 uint32_t replaced_len,
    127                                 uint8_t disabled,
    128                                 uint32_t *__serial);
    129 
    130 struct rbug_proto_shader_list * rbug_demarshal_shader_list(struct rbug_proto_header *header);
    131 
    132 struct rbug_proto_shader_info * rbug_demarshal_shader_info(struct rbug_proto_header *header);
    133 
    134 struct rbug_proto_shader_disable * rbug_demarshal_shader_disable(struct rbug_proto_header *header);
    135 
    136 struct rbug_proto_shader_replace * rbug_demarshal_shader_replace(struct rbug_proto_header *header);
    137 
    138 struct rbug_proto_shader_list_reply * rbug_demarshal_shader_list_reply(struct rbug_proto_header *header);
    139 
    140 struct rbug_proto_shader_info_reply * rbug_demarshal_shader_info_reply(struct rbug_proto_header *header);
    141 
    142 #endif
    143