summaryrefslogtreecommitdiff
path: root/libcuda/cuobjdump.h
diff options
context:
space:
mode:
authorTor Aamodt <[email protected]>2020-05-21 08:57:11 -0700
committerGitHub <[email protected]>2020-05-21 08:57:11 -0700
commit76217d80d9aa33126b4254f5e899f882bbc6f2fd (patch)
tree4f461a6f417f76956748fafcfb89b664f54bf6a9 /libcuda/cuobjdump.h
parente7fbfaa347c0acf8a6702c1e684a8e2ad8d3f733 (diff)
parente9e9fcf5957530ecb927aecb5ea238e4b78a4f45 (diff)
Merge pull request #178 from purdue-aalp/dev
Merging with the last few months of work at Purdue
Diffstat (limited to 'libcuda/cuobjdump.h')
-rw-r--r--libcuda/cuobjdump.h81
1 files changed, 81 insertions, 0 deletions
diff --git a/libcuda/cuobjdump.h b/libcuda/cuobjdump.h
new file mode 100644
index 0000000..38afa4c
--- /dev/null
+++ b/libcuda/cuobjdump.h
@@ -0,0 +1,81 @@
+#ifndef __cuobjdump_h__
+#define __cuobjdump_h__
+#include <iostream>
+#include <list>
+#include <string>
+
+typedef void *yyscan_t;
+struct cuobjdump_parser {
+ yyscan_t scanner;
+ int elfserial;
+ int ptxserial;
+ FILE *ptxfile;
+ FILE *elffile;
+ FILE *sassfile;
+ char filename[1024];
+};
+
+class cuobjdumpSection {
+ public:
+ // Constructor
+ cuobjdumpSection() {
+ arch = 0;
+ identifier = "";
+ }
+ virtual ~cuobjdumpSection() {}
+ unsigned getArch() { return arch; }
+ void setArch(unsigned a) { arch = a; }
+ std::string getIdentifier() { return identifier; }
+ void setIdentifier(std::string i) { identifier = i; }
+ virtual void print() {
+ std::cout << "cuobjdump Section: unknown type" << std::endl;
+ }
+
+ private:
+ unsigned arch;
+ std::string identifier;
+};
+
+class cuobjdumpELFSection : public cuobjdumpSection {
+ public:
+ cuobjdumpELFSection() {}
+ virtual ~cuobjdumpELFSection() {
+ elffilename = "";
+ sassfilename = "";
+ }
+ std::string getELFfilename() { return elffilename; }
+ void setELFfilename(std::string f) { elffilename = f; }
+ std::string getSASSfilename() { return sassfilename; }
+ void setSASSfilename(std::string f) { sassfilename = f; }
+ virtual void print() {
+ std::cout << "ELF Section:" << std::endl;
+ std::cout << "arch: sm_" << getArch() << std::endl;
+ std::cout << "identifier: " << getIdentifier() << std::endl;
+ std::cout << "elf filename: " << getELFfilename() << std::endl;
+ std::cout << "sass filename: " << getSASSfilename() << std::endl;
+ std::cout << std::endl;
+ }
+
+ private:
+ std::string elffilename;
+ std::string sassfilename;
+};
+
+class cuobjdumpPTXSection : public cuobjdumpSection {
+ public:
+ cuobjdumpPTXSection() { ptxfilename = ""; }
+ std::string getPTXfilename() { return ptxfilename; }
+ void setPTXfilename(std::string f) { ptxfilename = f; }
+ virtual void print() {
+ std::cout << "PTX Section:" << std::endl;
+ std::cout << "arch: sm_" << getArch() << std::endl;
+ std::cout << "identifier: " << getIdentifier() << std::endl;
+ std::cout << "ptx filename: " << getPTXfilename() << std::endl;
+ std::cout << std::endl;
+ }
+
+ private:
+ std::string ptxfilename;
+};
+
+#endif /* __cuobjdump_h__ */