aboutsummaryrefslogtreecommitdiff
path: root/scripts/coccinelle/tor-coccinelle.h
blob: ee709e2570f402bb2060330a7a11c07c5027e535 (plain)
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
/* Copyright (c) 2001 Matej Pfajfar.
 * Copyright (c) 2001-2004, Roger Dingledine.
 * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson.
 * Copyright (c) 2007-2019, The Tor Project, Inc. */
/* See LICENSE for licensing information */

/*
 * This file looks like a C header, but its purpose is a bit different.
 *
 * We never include it from our real C files; we only tell Coccinelle
 * about it in apply.sh.
 *
 * It tells the Coccinelle semantic patching tool how to understand
 * things that would otherwise not be good C syntax, or which would
 * otherwise not make sense to it as C.  It doesn't need to produce
 * semantically equivalent C, or even correct C: it only has to produce
 * syntactically valid C.
 */

#define MOCK_IMPL(a, b, c) a b c
#define CHECK_PRINTF(a, b)
#define STATIC static

#define STMT_BEGIN do {
#define STMT_END } while (0)

#define BUG(x) (x)
#define IF_BUG_ONCE(x) if (x)

#define ATTR_NORETURN
#define ATTR_UNUSED
#define ATTR_CONST
#define ATTR_MALLOC
#define ATTR_WUR

#define HT_ENTRY(x) void *
#define HT_HEAD(a,b) struct ht_head
#define HT_INITIALIZER() { }
#define X509 struct x509_st
#define STACK_OF(x) struct foo_stack_t