summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Gamari <ben@smart-cactus.org>2019-10-20 16:11:42 -0400
committerBen Gamari <ben@smart-cactus.org>2022-11-16 21:46:49 -0500
commit443bfc76d062aed3f265a7cde1b2cc324dccf256 (patch)
tree232d0971b94195b8db04e0af9318087868cb4d53
parentd73379a5a3b2d6381ccd578d843aae7ba36799cd (diff)
downloadhaskell-443bfc76d062aed3f265a7cde1b2cc324dccf256.tar.gz
RtsAPI
-rw-r--r--rts/RtsAPI.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/rts/RtsAPI.c b/rts/RtsAPI.c
index 5cbea01496..a0050a5bc4 100644
--- a/rts/RtsAPI.c
+++ b/rts/RtsAPI.c
@@ -23,6 +23,7 @@
/* ----------------------------------------------------------------------------
Building Haskell objects from C datatypes.
------------------------------------------------------------------------- */
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkChar (Capability *cap, HsChar c)
{
@@ -38,6 +39,7 @@ rts_mkChar (Capability *cap, HsChar c)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkInt (Capability *cap, HsInt i)
{
@@ -53,6 +55,7 @@ rts_mkInt (Capability *cap, HsInt i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkInt8 (Capability *cap, HsInt8 i)
{
@@ -62,6 +65,7 @@ rts_mkInt8 (Capability *cap, HsInt8 i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkInt16 (Capability *cap, HsInt16 i)
{
@@ -71,6 +75,7 @@ rts_mkInt16 (Capability *cap, HsInt16 i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkInt32 (Capability *cap, HsInt32 i)
{
@@ -80,6 +85,7 @@ rts_mkInt32 (Capability *cap, HsInt32 i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkInt64 (Capability *cap, HsInt64 i)
{
@@ -89,6 +95,7 @@ rts_mkInt64 (Capability *cap, HsInt64 i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkWord (Capability *cap, HsWord i)
{
@@ -98,6 +105,7 @@ rts_mkWord (Capability *cap, HsWord i)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkWord8 (Capability *cap, HsWord8 w)
{
@@ -107,6 +115,7 @@ rts_mkWord8 (Capability *cap, HsWord8 w)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkWord16 (Capability *cap, HsWord16 w)
{
@@ -116,6 +125,7 @@ rts_mkWord16 (Capability *cap, HsWord16 w)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkWord32 (Capability *cap, HsWord32 w)
{
@@ -125,6 +135,7 @@ rts_mkWord32 (Capability *cap, HsWord32 w)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkWord64 (Capability *cap, HsWord64 w)
{
@@ -135,6 +146,7 @@ rts_mkWord64 (Capability *cap, HsWord64 w)
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkFloat (Capability *cap, HsFloat f)
{
@@ -144,6 +156,7 @@ rts_mkFloat (Capability *cap, HsFloat f)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkDouble (Capability *cap, HsDouble d)
{
@@ -153,6 +166,7 @@ rts_mkDouble (Capability *cap, HsDouble d)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkStablePtr (Capability *cap, HsStablePtr s)
{
@@ -162,6 +176,7 @@ rts_mkStablePtr (Capability *cap, HsStablePtr s)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkPtr (Capability *cap, HsPtr a)
{
@@ -171,6 +186,7 @@ rts_mkPtr (Capability *cap, HsPtr a)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkFunPtr (Capability *cap, HsFunPtr a)
{
@@ -180,6 +196,7 @@ rts_mkFunPtr (Capability *cap, HsFunPtr a)
return TAG_CLOSURE(1, p);
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkBool (Capability *cap STG_UNUSED, HsBool b)
{
@@ -190,12 +207,14 @@ rts_mkBool (Capability *cap STG_UNUSED, HsBool b)
}
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_mkString (Capability *cap, char *s)
{
return rts_apply(cap, (StgClosure *)unpackCString_closure, rts_mkPtr(cap,s));
}
+WARD_NEED(may_take_sm_lock)
HaskellObj
rts_apply (Capability *cap, HaskellObj f, HaskellObj arg)
{