2016-04-16 14:55:10 +05:30
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
< html xmlns = "http://www.w3.org/1999/xhtml" >
< head >
< meta http-equiv = "Content-Type" content = "text/xhtml;charset=UTF-8" />
< meta http-equiv = "X-UA-Compatible" content = "IE=9" />
< meta name = "generator" content = "Doxygen 1.8.6" />
2016-04-19 22:44:58 +05:30
< title > HIP: Heterogenous-computing Interface for Portability: /home/mangupta/hip_git/release_0.84.00/include/hcc_detail/trace_helper.h Source File</ title >
2016-04-16 14:55:10 +05:30
< link href = "tabs.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "jquery.js" ></ script >
< script type = "text/javascript" src = "dynsections.js" ></ script >
< link href = "search/search.css" rel = "stylesheet" type = "text/css" />
< script type = "text/javascript" src = "search/search.js" ></ script >
< script type = "text/javascript" >
$ ( document ). ready ( function () { searchBox . OnSelectItem ( 0 ); });
</ script >
< link href = "doxygen.css" rel = "stylesheet" type = "text/css" />
</ head >
< body >
< div id = "top" > <!-- do not remove this div, it is closed by doxygen! -->
< div id = "titlearea" >
< table cellspacing = "0" cellpadding = "0" >
< tbody >
< tr style = "height: 56px;" >
< td style = "padding-left: 0.5em;" >
< div id = "projectname" > HIP: Heterogenous-computing Interface for Portability
</ div >
</ td >
</ tr >
</ tbody >
</ table >
</ div >
<!-- end header part -->
<!-- Generated by Doxygen 1.8.6 -->
< script type = "text/javascript" >
var searchBox = new SearchBox ( "searchBox" , "search" , false , 'Search' );
</ script >
< div id = "navrow1" class = "tabs" >
< ul class = "tablist" >
< li >< a href = "index.html" >< span > Main  Page</ span ></ a ></ li >
< li >< a href = "pages.html" >< span > Related  Pages</ span ></ a ></ li >
< li >< a href = "modules.html" >< span > Modules</ span ></ a ></ li >
< li >< a href = "annotated.html" >< span > Classes</ span ></ a ></ li >
< li class = "current" >< a href = "files.html" >< span > Files</ span ></ a ></ li >
< li >
< div id = "MSearchBox" class = "MSearchBoxInactive" >
< span class = "left" >
< img id = "MSearchSelect" src = "search/mag_sel.png"
onmouseover = "return searchBox.OnSearchSelectShow()"
onmouseout = "return searchBox.OnSearchSelectHide()"
alt = "" />
< input type = "text" id = "MSearchField" value = "Search" accesskey = "S"
onfocus = "searchBox.OnSearchFieldFocus(true)"
onblur = "searchBox.OnSearchFieldFocus(false)"
onkeyup = "searchBox.OnSearchFieldChange(event)" />
</ span >< span class = "right" >
< a id = "MSearchClose" href = "javascript:searchBox.CloseResultsWindow()" >< img id = "MSearchCloseImg" border = "0" src = "search/close.png" alt = "" /></ a >
</ span >
</ div >
</ li >
</ ul >
</ div >
< div id = "navrow2" class = "tabs2" >
< ul class = "tablist" >
< li >< a href = "files.html" >< span > File  List</ span ></ a ></ li >
< li >< a href = "globals.html" >< span > File  Members</ span ></ a ></ li >
</ ul >
</ div >
<!-- window showing the filter options -->
< div id = "MSearchSelectWindow"
onmouseover = "return searchBox.OnSearchSelectShow()"
onmouseout = "return searchBox.OnSearchSelectHide()"
onkeydown = "return searchBox.OnSearchSelectKey(event)" >
< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(0)" >< span class = "SelectionMark" >   </ span > All</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(1)" >< span class = "SelectionMark" >   </ span > Classes</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(2)" >< span class = "SelectionMark" >   </ span > Files</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(3)" >< span class = "SelectionMark" >   </ span > Functions</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(4)" >< span class = "SelectionMark" >   </ span > Variables</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(5)" >< span class = "SelectionMark" >   </ span > Typedefs</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(6)" >< span class = "SelectionMark" >   </ span > Enumerations</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(7)" >< span class = "SelectionMark" >   </ span > Enumerator</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(8)" >< span class = "SelectionMark" >   </ span > Macros</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(9)" >< span class = "SelectionMark" >   </ span > Groups</ a >< a class = "SelectItem" href = "javascript:void(0)" onclick = "searchBox.OnSelectItem(10)" >< span class = "SelectionMark" >   </ span > Pages</ a ></ div >
<!-- iframe showing the search results (closed by default) -->
< div id = "MSearchResultsWindow" >
< iframe src = "javascript:void(0)" frameborder = "0"
name = "MSearchResults" id = "MSearchResults" >
</ iframe >
</ div >
< div id = "nav-path" class = "navpath" >
< ul >
< li class = "navelem" >< a class = "el" href = "dir_d44c64559bbebec7f509842c48db8b23.html" > include</ a ></ li >< li class = "navelem" >< a class = "el" href = "dir_6d8604cb65fa6b83549668eb0ce09cac.html" > hcc_detail</ a ></ li > </ ul >
</ div >
</ div > <!-- top -->
< div class = "header" >
< div class = "headertitle" >
< div class = "title" > trace_helper.h</ div > </ div >
</ div > <!--header-->
< div class = "contents" >
< div class = "fragment" >< div class = "line" >< a name = "l00001" ></ a >< span class = "lineno" > 1</ span >   < span class = "comment" > /*</ span ></ div >
< div class = "line" >< a name = "l00002" ></ a >< span class = "lineno" > 2</ span >   < span class = "comment" > Copyright (c) 2015-2016 Advanced Micro Devices, Inc. All rights reserved.</ span ></ div >
< div class = "line" >< a name = "l00003" ></ a >< span class = "lineno" > 3</ span >   < span class = "comment" > Permission is hereby granted, free of charge, to any person obtaining a copy</ span ></ div >
< div class = "line" >< a name = "l00004" ></ a >< span class = "lineno" > 4</ span >   < span class = "comment" > of this software and associated documentation files (the " Software" ), to deal</ span ></ div >
< div class = "line" >< a name = "l00005" ></ a >< span class = "lineno" > 5</ span >   < span class = "comment" > in the Software without restriction, including without limitation the rights</ span ></ div >
< div class = "line" >< a name = "l00006" ></ a >< span class = "lineno" > 6</ span >   < span class = "comment" > to use, copy, modify, merge, publish, distribute, sublicense, and/or sell</ span ></ div >
< div class = "line" >< a name = "l00007" ></ a >< span class = "lineno" > 7</ span >   < span class = "comment" > copies of the Software, and to permit persons to whom the Software is</ span ></ div >
< div class = "line" >< a name = "l00008" ></ a >< span class = "lineno" > 8</ span >   < span class = "comment" > furnished to do so, subject to the following conditions:</ span ></ div >
< div class = "line" >< a name = "l00009" ></ a >< span class = "lineno" > 9</ span >   < span class = "comment" > The above copyright notice and this permission notice shall be included in</ span ></ div >
< div class = "line" >< a name = "l00010" ></ a >< span class = "lineno" > 10</ span >   < span class = "comment" > all copies or substantial portions of the Software.</ span ></ div >
< div class = "line" >< a name = "l00011" ></ a >< span class = "lineno" > 11</ span >   < span class = "comment" > THE SOFTWARE IS PROVIDED " AS IS" , WITHOUT WARRANNTY OF ANY KIND, EXPRESS OR</ span ></ div >
< div class = "line" >< a name = "l00012" ></ a >< span class = "lineno" > 12</ span >   < span class = "comment" > IMPLIED, INNCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,</ span ></ div >
< div class = "line" >< a name = "l00013" ></ a >< span class = "lineno" > 13</ span >   < span class = "comment" > FITNNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE</ span ></ div >
< div class = "line" >< a name = "l00014" ></ a >< span class = "lineno" > 14</ span >   < span class = "comment" > AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANNY CLAIM, DAMAGES OR OTHER</ span ></ div >
< div class = "line" >< a name = "l00015" ></ a >< span class = "lineno" > 15</ span >   < span class = "comment" > LIABILITY, WHETHER INN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,</ span ></ div >
< div class = "line" >< a name = "l00016" ></ a >< span class = "lineno" > 16</ span >   < span class = "comment" > OUT OF OR INN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN</ span ></ div >
< div class = "line" >< a name = "l00017" ></ a >< span class = "lineno" > 17</ span >   < span class = "comment" > THE SOFTWARE.</ span ></ div >
< div class = "line" >< a name = "l00018" ></ a >< span class = "lineno" > 18</ span >   < span class = "comment" > */</ span ></ div >
< div class = "line" >< a name = "l00019" ></ a >< span class = "lineno" > 19</ span >   < span class = "comment" > //#pragma once</ span ></ div >
< div class = "line" >< a name = "l00020" ></ a >< span class = "lineno" > 20</ span >   </ div >
< div class = "line" >< a name = "l00021" ></ a >< span class = "lineno" > 21</ span >   < span class = "preprocessor" > #ifndef TRACE_HELPER_H</ span ></ div >
< div class = "line" >< a name = "l00022" ></ a >< span class = "lineno" > 22</ span >   < span class = "preprocessor" ></ span >< span class = "preprocessor" > #define TRACE_HELPER_H</ span ></ div >
< div class = "line" >< a name = "l00023" ></ a >< span class = "lineno" > 23</ span >   < span class = "preprocessor" ></ span ></ div >
< div class = "line" >< a name = "l00024" ></ a >< span class = "lineno" > 24</ span >   < span class = "preprocessor" > #include < iostream> </ span ></ div >
< div class = "line" >< a name = "l00025" ></ a >< span class = "lineno" > 25</ span >   < span class = "preprocessor" > #include < iomanip> </ span ></ div >
< div class = "line" >< a name = "l00026" ></ a >< span class = "lineno" > 26</ span >   < span class = "preprocessor" > #include < string> </ span ></ div >
< div class = "line" >< a name = "l00027" ></ a >< span class = "lineno" > 27</ span >   </ div >
< div class = "line" >< a name = "l00028" ></ a >< span class = "lineno" > 28</ span >   < span class = "comment" > //---</ span ></ div >
< div class = "line" >< a name = "l00029" ></ a >< span class = "lineno" > 29</ span >   < span class = "comment" > // Helper functions to convert HIP function arguments into strings.</ span ></ div >
< div class = "line" >< a name = "l00030" ></ a >< span class = "lineno" > 30</ span >   < span class = "comment" > // Handles POD data types as well as enumerations (ie hipMemcpyKind).</ span ></ div >
< div class = "line" >< a name = "l00031" ></ a >< span class = "lineno" > 31</ span >   < span class = "comment" > // The implementation uses C++11 variadic templates and template specialization.</ span ></ div >
< div class = "line" >< a name = "l00032" ></ a >< span class = "lineno" > 32</ span >   < span class = "comment" > // The hipMemcpyKind example below is a good example that shows how to implement conversion for a new HSA type.</ span ></ div >
< div class = "line" >< a name = "l00033" ></ a >< span class = "lineno" > 33</ span >   </ div >
< div class = "line" >< a name = "l00034" ></ a >< span class = "lineno" > 34</ span >   </ div >
< div class = "line" >< a name = "l00035" ></ a >< span class = "lineno" > 35</ span >   < span class = "comment" > // Handy macro to convert an enumeration to a stringified version of same:</ span ></ div >
< div class = "line" >< a name = "l00036" ></ a >< span class = "lineno" > 36</ span >   < span class = "preprocessor" > #define CASE_STR(x) case x: return #x;</ span ></ div >
< div class = "line" >< a name = "l00037" ></ a >< span class = "lineno" > 37</ span >   < span class = "preprocessor" ></ span ></ div >
< div class = "line" >< a name = "l00038" ></ a >< span class = "lineno" > 38</ span >   </ div >
< div class = "line" >< a name = "l00039" ></ a >< span class = "lineno" > 39</ span >   < span class = "comment" > // Building block functions:</ span ></ div >
< div class = "line" >< a name = "l00040" ></ a >< span class = "lineno" > 40</ span >   < span class = "keyword" > template</ span > < < span class = "keyword" > typename</ span > T> </ div >
< div class = "line" >< a name = "l00041" ></ a >< span class = "lineno" > 41</ span >   < span class = "keyword" > inline</ span > std::string ToHexString(T v)</ div >
< div class = "line" >< a name = "l00042" ></ a >< span class = "lineno" > 42</ span >   {</ div >
< div class = "line" >< a name = "l00043" ></ a >< span class = "lineno" > 43</ span >   std::ostringstream ss;</ div >
< div class = "line" >< a name = "l00044" ></ a >< span class = "lineno" > 44</ span >   ss << < span class = "stringliteral" > " 0x" </ span > << std::hex << v;</ div >
< div class = "line" >< a name = "l00045" ></ a >< span class = "lineno" > 45</ span >   < span class = "keywordflow" > return</ span > ss.str();</ div >
< div class = "line" >< a name = "l00046" ></ a >< span class = "lineno" > 46</ span >   };</ div >
< div class = "line" >< a name = "l00047" ></ a >< span class = "lineno" > 47</ span >   </ div >
< div class = "line" >< a name = "l00048" ></ a >< span class = "lineno" > 48</ span >   </ div >
< div class = "line" >< a name = "l00049" ></ a >< span class = "lineno" > 49</ span >   < span class = "comment" > //---</ span ></ div >
< div class = "line" >< a name = "l00050" ></ a >< span class = "lineno" > 50</ span >   < span class = "comment" > // Template overloads for ToString to handle specific types</ span ></ div >
< div class = "line" >< a name = "l00051" ></ a >< span class = "lineno" > 51</ span >   </ div >
< div class = "line" >< a name = "l00052" ></ a >< span class = "lineno" > 52</ span >   < span class = "comment" > // This is the default which works for most types:</ span ></ div >
< div class = "line" >< a name = "l00053" ></ a >< span class = "lineno" > 53</ span >   < span class = "keyword" > template</ span > < < span class = "keyword" > typename</ span > T> </ div >
< div class = "line" >< a name = "l00054" ></ a >< span class = "lineno" > 54</ span >   < span class = "keyword" > inline</ span > std::string ToString(T v) </ div >
< div class = "line" >< a name = "l00055" ></ a >< span class = "lineno" > 55</ span >   {</ div >
< div class = "line" >< a name = "l00056" ></ a >< span class = "lineno" > 56</ span >   std::ostringstream ss;</ div >
< div class = "line" >< a name = "l00057" ></ a >< span class = "lineno" > 57</ span >   ss << v;</ div >
< div class = "line" >< a name = "l00058" ></ a >< span class = "lineno" > 58</ span >   < span class = "keywordflow" > return</ span > ss.str();</ div >
< div class = "line" >< a name = "l00059" ></ a >< span class = "lineno" > 59</ span >   };</ div >
< div class = "line" >< a name = "l00060" ></ a >< span class = "lineno" > 60</ span >   </ div >
< div class = "line" >< a name = "l00061" ></ a >< span class = "lineno" > 61</ span >   </ div >
< div class = "line" >< a name = "l00062" ></ a >< span class = "lineno" > 62</ span >   < span class = "comment" > // hipEvent_t specialization. TODO - maybe add an event ID for debug?</ span ></ div >
< div class = "line" >< a name = "l00063" ></ a >< span class = "lineno" > 63</ span >   < span class = "keyword" > template</ span > <> </ div >
< div class = "line" >< a name = "l00064" ></ a >< span class = "lineno" > 64</ span >   < span class = "keyword" > inline</ span > std::string ToString(< a class = "code" href = "structhipEvent__t.html" > hipEvent_t</ a > v) </ div >
< div class = "line" >< a name = "l00065" ></ a >< span class = "lineno" > 65</ span >   {</ div >
< div class = "line" >< a name = "l00066" ></ a >< span class = "lineno" > 66</ span >   < span class = "keywordflow" > return</ span > ToString(& v);</ div >
< div class = "line" >< a name = "l00067" ></ a >< span class = "lineno" > 67</ span >   };</ div >
< div class = "line" >< a name = "l00068" ></ a >< span class = "lineno" > 68</ span >   </ div >
< div class = "line" >< a name = "l00069" ></ a >< span class = "lineno" > 69</ span >   </ div >
< div class = "line" >< a name = "l00070" ></ a >< span class = "lineno" > 70</ span >   </ div >
< div class = "line" >< a name = "l00071" ></ a >< span class = "lineno" > 71</ span >   < span class = "comment" > // hipStream_t</ span ></ div >
< div class = "line" >< a name = "l00072" ></ a >< span class = "lineno" > 72</ span >   < span class = "keyword" > template</ span > <> </ div >
< div class = "line" >< a name = "l00073" ></ a >< span class = "lineno" > 73</ span >   < span class = "keyword" > inline</ span > std::string ToString(hipStream_t v) </ div >
< div class = "line" >< a name = "l00074" ></ a >< span class = "lineno" > 74</ span >   {</ div >
< div class = "line" >< a name = "l00075" ></ a >< span class = "lineno" > 75</ span >   std::ostringstream ss;</ div >
< div class = "line" >< a name = "l00076" ></ a >< span class = "lineno" > 76</ span >   < span class = "keywordflow" > if</ span > (v == NULL) {</ div >
< div class = "line" >< a name = "l00077" ></ a >< span class = "lineno" > 77</ span >   ss << < span class = "stringliteral" > " stream:< null>" </ span > ;</ div >
< div class = "line" >< a name = "l00078" ></ a >< span class = "lineno" > 78</ span >   } < span class = "keywordflow" > else</ span > {</ div >
< div class = "line" >< a name = "l00079" ></ a >< span class = "lineno" > 79</ span >   ss << *v;</ div >
< div class = "line" >< a name = "l00080" ></ a >< span class = "lineno" > 80</ span >   }</ div >
< div class = "line" >< a name = "l00081" ></ a >< span class = "lineno" > 81</ span >   </ div >
< div class = "line" >< a name = "l00082" ></ a >< span class = "lineno" > 82</ span >   < span class = "keywordflow" > return</ span > ss.str();</ div >
< div class = "line" >< a name = "l00083" ></ a >< span class = "lineno" > 83</ span >   };</ div >
< div class = "line" >< a name = "l00084" ></ a >< span class = "lineno" > 84</ span >   </ div >
< div class = "line" >< a name = "l00085" ></ a >< span class = "lineno" > 85</ span >   < span class = "comment" > // hipMemcpyKind specialization</ span ></ div >
< div class = "line" >< a name = "l00086" ></ a >< span class = "lineno" > 86</ span >   < span class = "keyword" > template</ span > <> </ div >
< div class = "line" >< a name = "l00087" ></ a >< span class = "lineno" > 87</ span >   < span class = "keyword" > inline</ span > std::string ToString(< a class = "code" href = "group__GlobalDefs.html#ga232e222db36b1fc672ba98054d036a18" > hipMemcpyKind</ a > v) </ div >
< div class = "line" >< a name = "l00088" ></ a >< span class = "lineno" > 88</ span >   {</ div >
< div class = "line" >< a name = "l00089" ></ a >< span class = "lineno" > 89</ span >   < span class = "keywordflow" > switch</ span > (v) {</ div >
< div class = "line" >< a name = "l00090" ></ a >< span class = "lineno" > 90</ span >   CASE_STR(< a class = "code" href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18a9d66b705aa85a9c83f0f533cef70d0af" > hipMemcpyHostToHost</ a > );</ div >
< div class = "line" >< a name = "l00091" ></ a >< span class = "lineno" > 91</ span >   CASE_STR(< a class = "code" href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18aff32175ecb0c7113200286eff8211008" > hipMemcpyHostToDevice</ a > );</ div >
< div class = "line" >< a name = "l00092" ></ a >< span class = "lineno" > 92</ span >   CASE_STR(< a class = "code" href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18aba2505e9ce1e5382f17730bc670917d1" > hipMemcpyDeviceToHost</ a > );</ div >
< div class = "line" >< a name = "l00093" ></ a >< span class = "lineno" > 93</ span >   CASE_STR(< a class = "code" href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18abd05a09d3105e0ce25b34dd91cf83f88" > hipMemcpyDeviceToDevice</ a > );</ div >
< div class = "line" >< a name = "l00094" ></ a >< span class = "lineno" > 94</ span >   CASE_STR(< a class = "code" href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18a4e37107e416f79a2edf2b6534163c823" > hipMemcpyDefault</ a > );</ div >
< div class = "line" >< a name = "l00095" ></ a >< span class = "lineno" > 95</ span >   < span class = "keywordflow" > default</ span > : < span class = "keywordflow" > return</ span > ToHexString(v);</ div >
< div class = "line" >< a name = "l00096" ></ a >< span class = "lineno" > 96</ span >   };</ div >
< div class = "line" >< a name = "l00097" ></ a >< span class = "lineno" > 97</ span >   };</ div >
< div class = "line" >< a name = "l00098" ></ a >< span class = "lineno" > 98</ span >   </ div >
< div class = "line" >< a name = "l00099" ></ a >< span class = "lineno" > 99</ span >   </ div >
< div class = "line" >< a name = "l00100" ></ a >< span class = "lineno" > 100</ span >   < span class = "keyword" > template</ span > <> </ div >
< div class = "line" >< a name = "l00101" ></ a >< span class = "lineno" > 101</ span >   < span class = "keyword" > inline</ span > std::string ToString(< a class = "code" href = "group__GlobalDefs.html#gadf5010f6e140a53ecbdf949e73e87594" > hipError_t</ a > v) </ div >
< div class = "line" >< a name = "l00102" ></ a >< span class = "lineno" > 102</ span >   {</ div >
< div class = "line" >< a name = "l00103" ></ a >< span class = "lineno" > 103</ span >   < span class = "keywordflow" > return</ span > ihipErrorString(v);</ div >
< div class = "line" >< a name = "l00104" ></ a >< span class = "lineno" > 104</ span >   };</ div >
< div class = "line" >< a name = "l00105" ></ a >< span class = "lineno" > 105</ span >   </ div >
< div class = "line" >< a name = "l00106" ></ a >< span class = "lineno" > 106</ span >   </ div >
< div class = "line" >< a name = "l00107" ></ a >< span class = "lineno" > 107</ span >   < span class = "comment" > // Catch empty arguments case</ span ></ div >
< div class = "line" >< a name = "l00108" ></ a >< span class = "lineno" > 108</ span >   < span class = "keyword" > inline</ span > std::string ToString() </ div >
< div class = "line" >< a name = "l00109" ></ a >< span class = "lineno" > 109</ span >   {</ div >
< div class = "line" >< a name = "l00110" ></ a >< span class = "lineno" > 110</ span >   < span class = "keywordflow" > return</ span > (< span class = "stringliteral" > "" </ span > );</ div >
< div class = "line" >< a name = "l00111" ></ a >< span class = "lineno" > 111</ span >   }</ div >
< div class = "line" >< a name = "l00112" ></ a >< span class = "lineno" > 112</ span >   </ div >
< div class = "line" >< a name = "l00113" ></ a >< span class = "lineno" > 113</ span >   </ div >
< div class = "line" >< a name = "l00114" ></ a >< span class = "lineno" > 114</ span >   < span class = "comment" > //---</ span ></ div >
< div class = "line" >< a name = "l00115" ></ a >< span class = "lineno" > 115</ span >   < span class = "comment" > // C++11 variadic template - peels off first argument, converts to string, and calls itself again to peel the next arg.</ span ></ div >
< div class = "line" >< a name = "l00116" ></ a >< span class = "lineno" > 116</ span >   < span class = "comment" > // Strings are automatically separated by comma+space.</ span ></ div >
< div class = "line" >< a name = "l00117" ></ a >< span class = "lineno" > 117</ span >   < span class = "keyword" > template</ span > < < span class = "keyword" > typename</ span > T, < span class = "keyword" > typename</ span > ... Args> </ div >
< div class = "line" >< a name = "l00118" ></ a >< span class = "lineno" > 118</ span >   < span class = "keyword" > inline</ span > std::string ToString(T first, Args... args) </ div >
< div class = "line" >< a name = "l00119" ></ a >< span class = "lineno" > 119</ span >   {</ div >
< div class = "line" >< a name = "l00120" ></ a >< span class = "lineno" > 120</ span >   < span class = "keywordflow" > return</ span > ToString(first) + < span class = "stringliteral" > " , " </ span > + ToString(args...) ;</ div >
< div class = "line" >< a name = "l00121" ></ a >< span class = "lineno" > 121</ span >   }</ div >
< div class = "line" >< a name = "l00122" ></ a >< span class = "lineno" > 122</ span >   </ div >
< div class = "line" >< a name = "l00123" ></ a >< span class = "lineno" > 123</ span >   < span class = "preprocessor" > #endif</ span ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gga232e222db36b1fc672ba98054d036a18aff32175ecb0c7113200286eff8211008" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18aff32175ecb0c7113200286eff8211008" > hipMemcpyHostToDevice</ a ></ div >< div class = "ttdoc" > Host-to-Device Copy. </ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:131</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gga232e222db36b1fc672ba98054d036a18aba2505e9ce1e5382f17730bc670917d1" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18aba2505e9ce1e5382f17730bc670917d1" > hipMemcpyDeviceToHost</ a ></ div >< div class = "ttdoc" > Device-to-Host Copy. </ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:132</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gadf5010f6e140a53ecbdf949e73e87594" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gadf5010f6e140a53ecbdf949e73e87594" > hipError_t</ a ></ div >< div class = "ttdeci" > hipError_t</ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:142</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_ga232e222db36b1fc672ba98054d036a18" >< div class = "ttname" >< a href = "group__GlobalDefs.html#ga232e222db36b1fc672ba98054d036a18" > hipMemcpyKind</ a ></ div >< div class = "ttdeci" > hipMemcpyKind</ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:129</ div ></ div >
< div class = "ttc" id = "structhipEvent__t_html" >< div class = "ttname" >< a href = "structhipEvent__t.html" > hipEvent_t</ a ></ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:47</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gga232e222db36b1fc672ba98054d036a18abd05a09d3105e0ce25b34dd91cf83f88" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18abd05a09d3105e0ce25b34dd91cf83f88" > hipMemcpyDeviceToDevice</ a ></ div >< div class = "ttdoc" > Device-to-Device Copy. </ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:133</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gga232e222db36b1fc672ba98054d036a18a4e37107e416f79a2edf2b6534163c823" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18a4e37107e416f79a2edf2b6534163c823" > hipMemcpyDefault</ a ></ div >< div class = "ttdoc" > Runtime will automatically determine copy-kind based on virtual addresses. </ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:134</ div ></ div >
< div class = "ttc" id = "group__GlobalDefs_html_gga232e222db36b1fc672ba98054d036a18a9d66b705aa85a9c83f0f533cef70d0af" >< div class = "ttname" >< a href = "group__GlobalDefs.html#gga232e222db36b1fc672ba98054d036a18a9d66b705aa85a9c83f0f533cef70d0af" > hipMemcpyHostToHost</ a ></ div >< div class = "ttdoc" > Host-to-Host Copy. </ div >< div class = "ttdef" >< b > Definition:</ b > hip_runtime_api.h:130</ div ></ div >
</ div > <!-- fragment --> </ div > <!-- contents -->
<!-- start footer part -->
< hr class = "footer" />< address class = "footer" >< small >
2016-04-19 22:44:58 +05:30
Generated on Tue Apr 19 2016 22:44:02 for HIP: Heterogenous-computing Interface for Portability by   < a href = "http://www.doxygen.org/index.html" >
2016-04-16 14:55:10 +05:30
< img class = "footer" src = "doxygen.png" alt = "doxygen" />
</ a > 1.8.6
</ small ></ address >
</ body >
</ html >