コード例 #1
0
ファイル: elf_tls.cpp プロジェクト: looncraz/haiku
DynamicThreadVector::DynamicThreadVector()
	:
	fVector((TLSBlock**)tls_address(TLS_DYNAMIC_THREAD_VECTOR)),
	fGeneration(NULL)
{
	if (*fVector != NULL)
		fGeneration = (Generation*)*(void**)*fVector;
}
コード例 #2
0
status_t
on_exit_thread(void (*callback)(void *), void *data)
{
	callback_node **head = (callback_node **)tls_address(TLS_ON_EXIT_THREAD_SLOT);

	callback_node *node = malloc(sizeof(callback_node));
	if (node == NULL)
		return B_NO_MEMORY;

	node->function = callback;
	node->argument = data;

	// add this node to the list
	node->next = *head;
	*head = node;

	return B_OK;
}
コード例 #3
0
ファイル: r5_compatibility.cpp プロジェクト: mmanley/Antares
int *
_h_errnop(void)
{
	return (int *)tls_address(__gHErrnoTLS);
}
コード例 #4
0
ファイル: errno.c プロジェクト: SummerSnail2014/haiku
int *
_errnop(void)
{
	return (int *)tls_address(TLS_ERRNO_SLOT);
}