Lines Matching +full:a +full:- +full:phandle
5 // You may obtain a copy of the License at
7 // http://www.apache.org/licenses/LICENSE-2.0
30 // This is a base abstract class for all external semaphore implementations
37 // Initialize new instance with a given initial state.
61 virtual VkResult exportHandle(zx_handle_t *pHandle) in exportHandle() argument
94 // Create a new instance. The external instance will be allocated only
95 // the pCreateInfo->pNext chain indicates it needs to be exported.
98 for(const auto *nextInfo = reinterpret_cast<const VkBaseInStructure *>(pCreateInfo->pNext); in SemaphoreCreateInfo()
99 nextInfo != nullptr; nextInfo = nextInfo->pNext) in SemaphoreCreateInfo()
101 switch(nextInfo->sType) in SemaphoreCreateInfo()
107 exportHandleTypes = exportInfo->handleTypes; in SemaphoreCreateInfo()
110 UNSUPPORTED("exportInfo->handleTypes 0x%X (supports 0x%X)", in SemaphoreCreateInfo()
119 semaphoreType = tlsInfo->semaphoreType; in SemaphoreCreateInfo()
120 initialPayload = tlsInfo->initialValue; in SemaphoreCreateInfo()
124 WARN("nextInfo->sType = %s", vk::Stringify(nextInfo->sType).c_str()); in SemaphoreCreateInfo()
146 if(!ext->tryWait()) in wait()
148 // Dispatch the ext wait to a background thread. in wait()
149 // Even if this creates a new thread on each in wait()
155 ext->wait(); in wait()
164 tempExternal = ext->previous; in wait()
181 // Assumes that signalling an external semaphore is non-blocking, in signal()
182 // so it can be performed directly either from a fiber or thread. in signal()
183 ext->signal(); in signal()
207 tempExternal = ext->previous; in destroy()
234 ext->~External(); in deallocateExternal()
263 ext->previous = tempExternal; in importPayload()
277 // Sanity check, do not try to export a semaphore that has a temporary import. in exportPayload()
280 TRACE("Cannot export semaphore with a temporary import!"); in exportPayload()
287 VkResult result = ext->init(internal.isSignalled()); in exportPayload()
307 return ext->importOpaqueFd(fd); in importFd()
324 return ext->exportOpaqueFd(pFd); in exportFd()
338 return ext->importHandle(handle); in importHandle()
342 VkResult BinarySemaphore::exportHandle(zx_handle_t *pHandle) in exportHandle() argument
354 [pHandle](External *ext) { in exportHandle()
355 return ext->exportHandle(pHandle); in exportHandle()