OpenCoverage

async_posix.c

Absolute File Name:/home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/async/arch/async_posix.c
Source codeSwitch to Preprocessed file
LineSourceCount
1/*-
2 * Copyright 2015-2016 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/* This must be the first #include file */-
11#include "../async_locl.h"-
12-
13#ifdef ASYNC_POSIX-
14-
15# include <stddef.h>-
16# include <unistd.h>-
17-
18#define STACKSIZE 32768-
19-
20int ASYNC_is_capable(void)-
21{-
22 ucontext_t ctx;-
23-
24 /*-
25 * Some platforms provide getcontext() but it does not work (notably-
26 * MacOSX PPC64). Check for a working getcontext();-
27 */-
28 return getcontext(&ctx) == 0;
executed 1 time by 1 test: return getcontext(&ctx) == 0;
Executed by:
  • libcrypto.so.1.1
1
29}-
30-
31void async_local_cleanup(void)-
32{-
33}-
34-
35int async_fibre_makecontext(async_fibre *fibre)-
36{-
37 fibre->env_init = 0;-
38 if (getcontext(&fibre->fibre) == 0) {
getcontext(&fibre->fibre) == 0Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-6
39 fibre->fibre.uc_stack.ss_sp = OPENSSL_malloc(STACKSIZE);-
40 if (fibre->fibre.uc_stack.ss_sp != NULL) {
fibre->fibre.u...!= ((void *)0)Description
TRUEevaluated 6 times by 1 test
Evaluated by:
  • libcrypto.so.1.1
FALSEnever evaluated
0-6
41 fibre->fibre.uc_stack.ss_size = STACKSIZE;-
42 fibre->fibre.uc_link = NULL;-
43 makecontext(&fibre->fibre, async_start_func, 0);-
44 return 1;
executed 6 times by 1 test: return 1;
Executed by:
  • libcrypto.so.1.1
6
45 }-
46 } else {
never executed: end of block
0
47 fibre->fibre.uc_stack.ss_sp = NULL;-
48 }
never executed: end of block
0
49 return 0;
never executed: return 0;
0
50}-
51-
52void async_fibre_free(async_fibre *fibre)-
53{-
54 OPENSSL_free(fibre->fibre.uc_stack.ss_sp);-
55 fibre->fibre.uc_stack.ss_sp = NULL;-
56}
executed 6 times by 1 test: end of block
Executed by:
  • libcrypto.so.1.1
6
57-
58#endif-
Source codeSwitch to Preprocessed file

Generated by Squish Coco 4.2.2