OpenCoverage

async_posix.h

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/async/arch/async_posix.h
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 2015-2018 The OpenSSL Project Authors. All Rights Reserved.-
3 *-
4 * Licensed under the OpenSSL license (the "License"). You may not use-
5 * this file except in compliance with the License. You can obtain a copy-
6 * in the file LICENSE in the source distribution or at-
7 * https://www.openssl.org/source/license.html-
8 */-
9-
10#ifndef OPENSSL_ASYNC_ARCH_ASYNC_POSIX_H-
11#define OPENSSL_ASYNC_ARCH_ASYNC_POSIX_H-
12#include <openssl/e_os2.h>-
13-
14#if defined(OPENSSL_SYS_UNIX) \-
15 && defined(OPENSSL_THREADS) && !defined(OPENSSL_NO_ASYNC) \-
16 && !defined(__ANDROID__) && !defined(__OpenBSD__)-
17-
18# include <unistd.h>-
19-
20# if _POSIX_VERSION >= 200112L-
21-
22# include <pthread.h>-
23-
24# define ASYNC_POSIX-
25# define ASYNC_ARCH-
26-
27# include <ucontext.h>-
28# include <setjmp.h>-
29-
30typedef struct async_fibre_st {-
31 ucontext_t fibre;-
32 jmp_buf env;-
33 int env_init;-
34} async_fibre;-
35-
36static ossl_inline int async_fibre_swapcontext(async_fibre *o, async_fibre *n, int r)-
37{-
38 o->env_init = 1;-
39-
40 if (!r || !_setjmp(o->env)) {
!rDescription
TRUEnever evaluated
FALSEevaluated 32 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
!_setjmp(o->env)Description
TRUEevaluated 32 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 26 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
0-32
41 if (n->env_init)
n->env_initDescription
TRUEevaluated 26 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
6-26
42 _longjmp(n->env, 1);
executed 26 times by 1 test: _longjmp(n->env, 1);
Executed by:
  • libcrypto.so.1.1
26
43 else-
44 setcontext(&n->fibre);
executed 6 times by 1 test: setcontext(&n->fibre);
Executed by:
  • libcrypto.so.1.1
6
45 }-
46-
47 return 1;
executed 26 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
26
48}-
49-
50# define async_fibre_init_dispatcher(d)-
51-
52int async_fibre_makecontext(async_fibre *fibre);-
53void async_fibre_free(async_fibre *fibre);-
54-
55# endif-
56#endif-
57#endif /* OPENSSL_ASYNC_ARCH_ASYNC_POSIX_H */-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2