mirror of https://github.com/XS-MLVP/xcomm.git
new feat(comuse): add CString
This commit is contained in:
parent
7a5a9ffe81
commit
b807ba87d0
|
@ -185,6 +185,30 @@ namespace xspcomm {
|
|||
return (bool (*)(XData*, XData*, uint64_t))XDataCmp;
|
||||
}
|
||||
};
|
||||
|
||||
class CString {
|
||||
public:
|
||||
std::string str;
|
||||
CString(std::string val):str(val){}
|
||||
CString():str(""){}
|
||||
uint64_t CharAddress(){
|
||||
return (uint64_t)this->str.c_str();
|
||||
}
|
||||
void AssignTo(char * addr){
|
||||
addr = (char *)this->str.c_str();
|
||||
}
|
||||
void AssignTo(uint64_t addr){
|
||||
return this->AssignTo((char*)addr);
|
||||
}
|
||||
void AssignFrom(const char * val){
|
||||
this->str = std::string(val);
|
||||
}
|
||||
void AssignFrom(uint64_t val){
|
||||
return this->AssignFrom((const char*)val);
|
||||
}
|
||||
std::string Get(){return this->str;}
|
||||
void Set(std::string val){this->str = val;}
|
||||
};
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
|
@ -136,6 +136,12 @@ def test_xdata():
|
|||
cfg2 = XSignalCFG("tests/test_signal_cfg_map.yaml")
|
||||
assert cfg.String() == cfg2.String(), "%s != %s" % (cfg.String().strip(), cfg2.String().strip())
|
||||
|
||||
# test cstring
|
||||
cs1 = CString("cs1")
|
||||
cs2 = CString("------------")
|
||||
cs1.Set(cs2.Get())
|
||||
assert cs1.Get() == cs2.Get()
|
||||
|
||||
|
||||
async def test_async():
|
||||
clk = XClock(lambda a: 0)
|
||||
|
|
Loading…
Reference in New Issue