Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
PojavLauncherTeam
GitHub Repository: PojavLauncherTeam/openjdk-multiarch-jdk8u
Path: blob/aarch64-shenandoah-jdk8u272-b10/hotspot/agent/src/os/linux/hsearch/hcreate.c
38841 views
1
/*-
2
* SPDX-License-Identifier: BSD-2-Clause-FreeBSD
3
*
4
* Copyright (c) 2015 Nuxi, https://nuxi.nl/
5
*
6
* Redistribution and use in source and binary forms, with or without
7
* modification, are permitted provided that the following conditions
8
* are met:
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
14
*
15
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
16
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
17
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
18
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
19
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
20
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
21
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
22
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
23
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
24
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
25
* SUCH DAMAGE.
26
*/
27
28
#include <sys/cdefs.h>
29
__FBSDID("$FreeBSD: head/lib/libc/stdlib/hcreate.c 326193 2017-11-25 17:12:48Z pfg $");
30
31
#include "search.h"
32
#include <stdbool.h>
33
#include <stddef.h>
34
35
/*
36
* Thread unsafe interface: use a single process-wide hash table and
37
* forward calls to *_r() functions.
38
*/
39
40
static struct hsearch_data global_hashtable;
41
static bool global_hashtable_initialized = false;
42
43
int
44
hcreate(size_t nel)
45
{
46
47
return (1);
48
}
49
50
void
51
hdestroy(void)
52
{
53
54
/* Destroy global hash table if present. */
55
if (global_hashtable_initialized) {
56
hdestroy_r(&global_hashtable);
57
global_hashtable_initialized = false;
58
}
59
}
60
61
ENTRY *
62
hsearch(ENTRY item, ACTION action)
63
{
64
ENTRY *retval;
65
66
/* Create global hash table if needed. */
67
if (!global_hashtable_initialized) {
68
if (hcreate_r(0, &global_hashtable) == 0)
69
return (NULL);
70
global_hashtable_initialized = true;
71
}
72
if (hsearch_r(item, action, &retval, &global_hashtable) == 0)
73
return (NULL);
74
return (retval);
75
}
76
77