1 ---------------------------------------------------------------------------
4 -- This hand-written interface file allows you to bring into scope the
5 -- primitive operations and types that GHC knows about.
6 ---------------------------------------------------------------------------
11 __interface "std" PrelGHC 1 0 where
20 -- Magical assert thingy
33 -- Concurrency primitives
39 blockAsyncExceptionszh
40 unblockAsyncExceptionszh
216 #ifdef SUPPORT_LONG_LONGS
233 sameMutableByteArrayzh
246 indexStablePtrArrayzh
250 #ifdef SUPPORT_LONG_LONGS
256 #ifdef SUPPORT_LONG_LONGS
272 #ifdef SUPPORT_LONG_LONGS
278 #ifdef SUPPORT_LONG_LONGS
290 writeStablePtrArrayzh
294 #ifdef SUPPORT_LONG_LONGS
300 #ifdef SUPPORT_LONG_LONGS
305 indexWideCharOffAddrzh
311 indexStablePtrOffAddrzh
315 #ifdef SUPPORT_LONG_LONGS
321 #ifdef SUPPORT_LONG_LONGS
326 readWideCharOffAddrzh
332 readStablePtrOffAddrzh
336 #ifdef SUPPORT_LONG_LONGS
342 #ifdef SUPPORT_LONG_LONGS
347 writeWideCharOffAddrzh
351 writeForeignObjOffAddrzh
354 writeStablePtrOffAddrzh
358 #ifdef SUPPORT_LONG_LONGS
364 #ifdef SUPPORT_LONG_LONGS
369 indexCharOffForeignObjzh
370 indexWideCharOffForeignObjzh
371 indexIntOffForeignObjzh
372 indexWordOffForeignObjzh
373 indexAddrOffForeignObjzh
374 indexFloatOffForeignObjzh
375 indexDoubleOffForeignObjzh
376 indexStablePtrOffForeignObjzh
377 indexInt8OffForeignObjzh
378 indexInt16OffForeignObjzh
379 indexInt32OffForeignObjzh
380 #ifdef SUPPORT_LONG_LONGS
381 indexInt64OffForeignObjzh
383 indexWord8OffForeignObjzh
384 indexWord16OffForeignObjzh
385 indexWord32OffForeignObjzh
386 #ifdef SUPPORT_LONG_LONGS
387 indexWord64OffForeignObjzh
390 unsafeFreezzeArrayzh -- Note zz in the middle
391 unsafeFreezzeByteArrayzh -- Ditto
395 sizzeofByteArrayzh -- Ditto
396 sizzeofMutableByteArrayzh -- Ditto
428 reallyUnsafePtrEqualityzh
438 -- Export PrelErr.error, so that others do not have to import PrelErr
439 __export PrelErr error ;
442 --------------------------------------------------
443 instance {CCallable Charzh} = zdfCCallableCharzh;
444 instance {CCallable Doublezh} = zdfCCallableDoublezh;
445 instance {CCallable Floatzh} = zdfCCallableFloatzh;
446 instance {CCallable Intzh} = zdfCCallableIntzh;
447 instance {CCallable Addrzh} = zdfCCallableAddrzh;
448 instance {CCallable Int64zh} = zdfCCallableInt64zh;
449 instance {CCallable Word64zh} = zdfCCallableWord64zh;
450 instance {CCallable Wordzh} = zdfCCallableWordzh;
451 instance {CCallable ByteArrayzh} = zdfCCallableByteArrayzh;
452 instance __forall s => {CCallable (MutableByteArrayzh s)} = zdfCCallableMutableByteArrayzh;
453 instance {CCallable ForeignObjzh} = zdfCCallableForeignObjzh;
454 instance __forall s => {CCallable (StablePtrzh s)} = zdfCCallableStablePtrzh;
455 -- CCallable and CReturnable have kind (Type AnyBox) so that
456 -- things like Int# can be instances of CCallable.
457 1 class CCallable a :: ? ;
458 1 class CReturnable a :: ? ;
460 1 assert :: __forall a => PrelBase.Bool -> a -> a ;
462 -- These guys do not really exist:
464 1 zdfCCallableCharzh :: {CCallable Charzh} ;
465 1 zdfCCallableDoublezh :: {CCallable Doublezh} ;
466 1 zdfCCallableFloatzh :: {CCallable Floatzh} ;
467 1 zdfCCallableIntzh :: {CCallable Intzh} ;
468 1 zdfCCallableAddrzh :: {CCallable Addrzh} ;
469 1 zdfCCallableInt64zh :: {CCallable Int64zh} ;
470 1 zdfCCallableWord64zh :: {CCallable Word64zh} ;
471 1 zdfCCallableWordzh :: {CCallable Wordzh} ;
472 1 zdfCCallableByteArrayzh :: {CCallable ByteArrayzh} ;
473 1 zdfCCallableMutableByteArrayzh :: __forall s => {CCallable (MutableByteArrayzh s)} ;
474 1 zdfCCallableForeignObjzh :: {CCallable ForeignObjzh} ;
475 1 zdfCCallableStablePtrzh :: __forall a => {CCallable (StablePtrzh a)} ;