Move spv*TableGet() functions out of libspirv.h.
authorLei Zhang <antiagainst@google.com>
Wed, 11 Nov 2015 17:14:36 +0000 (12:14 -0500)
committerDavid Neto <dneto@google.com>
Thu, 12 Nov 2015 14:42:55 +0000 (09:42 -0500)
This is a part of the effort to clean up libspirv.h.

CMakeLists.txt
include/libspirv/libspirv.h
source/assembly_grammar.cpp
source/table.h [new file with mode: 0644]
source/validate.h

index f5c4b6a..b7dd5cb 100644 (file)
@@ -113,6 +113,7 @@ set(SPIRV_SOURCES
   ${CMAKE_CURRENT_SOURCE_DIR}/source/opcode.h
   ${CMAKE_CURRENT_SOURCE_DIR}/source/operand.h
   ${CMAKE_CURRENT_SOURCE_DIR}/source/print.h
+  ${CMAKE_CURRENT_SOURCE_DIR}/source/table.h
   ${CMAKE_CURRENT_SOURCE_DIR}/source/text.h
   ${CMAKE_CURRENT_SOURCE_DIR}/source/text_handler.h
   ${CMAKE_CURRENT_SOURCE_DIR}/source/validate.h
index 3f7f36a..18d4d80 100644 (file)
@@ -422,104 +422,43 @@ typedef spv_diagnostic_t* spv_diagnostic;
 
 // Platform API
 
-// Opcode API
-
-/// @brief Populate the Opcode table
-///
-/// @param[out] pOpcodeTable table to be populated
-///
-/// @return result code
-spv_result_t spvOpcodeTableGet(spv_opcode_table* pOpcodeTable);
-
-/// @brief Populate the operand table
-///
-/// @param[in] pOperandTable table to be populated
-///
-/// @return result code
-spv_result_t spvOperandTableGet(spv_operand_table* pOperandTable);
-
-/// @brief Populate the extended instruction table
-///
-/// @param pTable table to be populated
-///
-/// @return result code
-spv_result_t spvExtInstTableGet(spv_ext_inst_table* pTable);
-
-// Text API
-
-/// @brief Entry point to covert text form to binary form
-///
-/// @param[in] text input text
-/// @param[in] length of the input text
-/// @param[out] pBinary the binary module
-/// @param[out] pDiagnostic contains diagnostic on failure
-///
-/// @return result code
+// Encodes the given SPIR-V assembly text to its binary representation. The
+// length parameter specifies the number of bytes for text. Encoded binary will
+// be stored into *binary. Any error will be written into *diagnostic.
 spv_result_t spvTextToBinary(const char* text, const size_t length,
-                             spv_binary* pBinary, spv_diagnostic* pDiagnostic);
+                             spv_binary* binary, spv_diagnostic* diagnostic);
 
-/// @brief Free an allocated text stream
-///
-/// This is a no-op if the text parameter is a null pointer.
-///
-/// @param text the text object to be destored
+// @brief Frees an allocated text stream. This is a no-op if the text parameter
+// is a null pointer.
 void spvTextDestroy(spv_text text);
 
-// Binary API
-
-/// @brief Entry point to convert binary to text form
-///
-/// @param[in] binary the input binary
-/// @param[in] wordCount the number of input words
-/// @param[in] options bitfield of spv_binary_to_text_options_t values
-/// @param[out] pText the textual form
-/// @param[out] pDiagnostic contains diagnostic on failure
-///
-/// @return result code
-spv_result_t spvBinaryToText(const uint32_t* binary, const size_t wordCount,
-                             const uint32_t options, spv_text* pText,
-                             spv_diagnostic* pDiagnostic);
-
-/// @brief Free a binary stream from memory.
-///
-/// This is a no-op if binary is a null pointer.
-///
-/// @param binary stream to destroy
-void spvBinaryDestroy(spv_binary binary);
+// Decodes the given SPIR-V binary representation to its assembly text. The
+// word_count parameter specifies the number of words for binary. The options
+// parameter is a bit field of spv_binary_to_text_options_t. Decoded text will
+// be stored into *text. Any error will be written into *diagnostic.
+spv_result_t spvBinaryToText(const uint32_t* binary, const size_t word_count,
+                             const uint32_t options, spv_text* text,
+                             spv_diagnostic* diagnostic);
 
-// Validation API
+// Frees a binary stream from memory. This is a no-op if binary is a null
+// pointer.
+void spvBinaryDestroy(spv_binary binary);
 
-/// @brief Validate a SPIR-V binary for correctness
-///
-/// @param[in] binary the input binary stream
-/// @param[in] options bitfield of spv_validation_options_t
-/// @param[out] pDiagnostic contains diagnostic on failure
-///
-/// @return result code
+// Validates a SPIR-V binary for correctness. The options parameter is a bit
+// field of spv_validation_options_t.
 spv_result_t spvValidate(const spv_const_binary binary, const uint32_t options,
                          spv_diagnostic* pDiagnostic);
 
-// Diagnostic API
-
-/// @brief Create a diagnostic object
-///
-/// @param position position in the text or binary stream
-/// @param message error message to display, is copied
-///
-/// @return the diagnostic object
+// Creates a diagnostic object. The position parameter specifies the location in
+// the text/binary stream. The message parameter, copied into the diagnostic
+// object, contains the error message to display.
 spv_diagnostic spvDiagnosticCreate(const spv_position position,
                                    const char* message);
 
-/// @brief Destroy a diagnostic object
-///
-/// @param diagnostic object to destory
+/// Destroys a diagnostic object.
 void spvDiagnosticDestroy(spv_diagnostic diagnostic);
 
-/// @brief Print the diagnostic to stderr
-///
-/// @param[in] diagnostic to print
-///
-/// @return result code
+// Prints the diagnostic to stderr.
 spv_result_t spvDiagnosticPrint(const spv_diagnostic diagnostic);
 
 #ifdef __cplusplus
index a437fb3..448d9dc 100644 (file)
@@ -33,6 +33,7 @@
 #include "ext_inst.h"
 #include "opcode.h"
 #include "operand.h"
+#include "table.h"
 
 namespace {
 
diff --git a/source/table.h b/source/table.h
new file mode 100644 (file)
index 0000000..c31e113
--- /dev/null
@@ -0,0 +1,53 @@
+// Copyright (c) 2015 The Khronos Group Inc.
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and/or associated documentation files (the
+// "Materials"), to deal in the Materials without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Materials, and to
+// permit persons to whom the Materials are furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be included
+// in all copies or substantial portions of the Materials.
+//
+// MODIFICATIONS TO THIS FILE MAY MEAN IT NO LONGER ACCURATELY REFLECTS
+// KHRONOS STANDARDS. THE UNMODIFIED, NORMATIVE VERSIONS OF KHRONOS
+// SPECIFICATIONS AND HEADER INFORMATION ARE LOCATED AT
+//    https://www.khronos.org/registry/
+//
+// THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.
+
+#ifndef LIBSPIRV_TABLE_H_
+#define LIBSPIRV_TABLE_H_
+
+#include <libspirv/libspirv.h>
+
+/// @brief Populate the Opcode table
+///
+/// @param[out] pOpcodeTable table to be populated
+///
+/// @return result code
+spv_result_t spvOpcodeTableGet(spv_opcode_table* pOpcodeTable);
+
+/// @brief Populate the operand table
+///
+/// @param[in] pOperandTable table to be populated
+///
+/// @return result code
+spv_result_t spvOperandTableGet(spv_operand_table* pOperandTable);
+
+/// @brief Populate the extended instruction table
+///
+/// @param pTable table to be populated
+///
+/// @return result code
+spv_result_t spvExtInstTableGet(spv_ext_inst_table* pTable);
+
+#endif  // LIBSPIRV_TABLE_H_
index 0c0c933..3ada98c 100644 (file)
@@ -29,6 +29,7 @@
 
 #include "instruction.h"
 #include <libspirv/libspirv.h>
+#include "table.h"
 
 // Structures