File: libraryexample.c

package info (click to toggle)
sollya 8.0%2Bds-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 17,540 kB
  • sloc: ansic: 124,655; yacc: 7,543; lex: 2,440; makefile: 888; cpp: 77
file content (44 lines) | stat: -rw-r--r-- 889 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <mpfi.h>
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sollya.h>
#include "lto-compat.h"

EXPORTED_FUNC_DEF(int, foo, mpfi_t rop, mpfi_t op, int n) {
  (void) n;
  (void) op;
  mpfi_interv_ui(rop, 0, 1);
  return 0;
}

/* Externalproc designed to test non-regression of bug #21283 */
EXPORTED_FUNC_DEF(int, takeyourtime) {
  if (fork() == 0) {
    sleep(5);
    printf("After\n");
    exit(0);
  }
  return 1;
}

/* Symbols and a function to test externaldata */

EXPORTED_SYMB_DEF(int magic = 17);

static int __printMagicDoit(sollya_obj_t obj) {
  void *data;
  int *magic;
  
  if (sollya_lib_decompose_externaldata(&data, NULL, obj)) {
    magic = (int *) data;
    printf("The magic is %d\n", *magic);
    *magic = *magic + 1;
  }

  return 1;
}

EXPORTED_FUNC_DEF(int, printMagic, void **args) {
  return __printMagicDoit((sollya_obj_t) (args[0]));
}