MCPcopy Create free account
hub / github.com/WasmEdge/WasmEdge / allocateAddrinfoArray

Function allocateAddrinfoArray

test/host/socket/wasi_socket.cpp:116–142  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

114}
115
116void allocateAddrinfoArray(WasmEdge::Runtime::Instance::MemoryInstance &MemInst,
117 uint32_t Base, uint32_t Length,
118 uint32_t CanonnameMaxSize) {
119 for (uint32_t Item = 0; Item < Length; Item++) {
120 // allocate addrinfo struct
121 auto *ResItemPtr = MemInst.getPointer<__wasi_addrinfo_t *>(Base);
122 Base += sizeof(__wasi_addrinfo_t);
123
124 // allocate sockaddr struct
125 ResItemPtr->ai_addr = Base;
126 ResItemPtr->ai_addrlen = sizeof(__wasi_sockaddr_t);
127 auto *Sockaddr =
128 MemInst.getPointer<__wasi_sockaddr_t *>(ResItemPtr->ai_addr);
129 Base += ResItemPtr->ai_addrlen;
130 // allocate sockaddr sa_data.
131 Sockaddr->sa_data = Base;
132 Sockaddr->sa_data_len = WasmEdge::Host::WASI::kMaxSaDataLen;
133 Base += Sockaddr->sa_data_len;
134 // allocate ai_canonname
135 ResItemPtr->ai_canonname = Base;
136 ResItemPtr->ai_canonname_len = CanonnameMaxSize;
137 Base += ResItemPtr->ai_canonname_len;
138 if (Item != (Length - 1)) {
139 ResItemPtr->ai_next = Base;
140 }
141 }
142}
143
144} // namespace
145

Callers 1

TESTFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected