summaryrefslogtreecommitdiff
path: root/libcuda/cuobjdump.h
diff options
context:
space:
mode:
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__ */