summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/include/machine/rtems-bsd-config.h.in
blob: 477a2cd1dbcdc86dfeb1d7fda3f9a5b6f3b7f4ff (plain) (blame)
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/**
 * @file
 *
 * @ingroup rtems_bsd_machine
 *
 * @brief TODO.
 */

/*
 * Copyright (c) 2009-2013 embedded brains GmbH.  All rights reserved.
 *
 *  embedded brains GmbH
 *  Dornierstr. 4
 *  82178 Puchheim
 *  Germany
 *  <rtems@embedded-brains.de>
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 * 1. Redistributions of source code must retain the above copyright
 *    notice, this list of conditions and the following disclaimer.
 * 2. Redistributions in binary form must reproduce the above copyright
 *    notice, this list of conditions and the following disclaimer in the
 *    documentation and/or other materials provided with the distribution.
 *
 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 * SUCH DAMAGE.
 */

#ifndef _RTEMS_BSD_MACHINE_RTEMS_BSD_CONFIG_H_
#define _RTEMS_BSD_MACHINE_RTEMS_BSD_CONFIG_H_

/* XXX hack so /opt.../machine/param.h can disable MSIZE and use this one */
#define __NEW_RTEMS_BSD__

/* General defines to activate BSD kernel parts */
#define _KERNEL 1

#include <sys/cdefs.h>
#include <sys/types.h>

/* Type set from the C standard */
#include <stdarg.h>
#include <stddef.h>
#include <stdint.h>
#include <limits.h>
#include <string.h>
#include <stdio.h>
#include <stdlib.h>

/* Ensure that we are RTEMS compatible and can use RTEMS */
#include <rtems.h>
#include <rtems/error.h>
#include <rtems/chain.h>
#include <rtems/libio.h>

/* Ensure that we can use POSIX threads */
#include <pthread.h>

/* The BSD kernel is not a POSIX source */
#undef _POSIX_SOURCE

/* Symbol undefines */
#undef MAXPATHLEN

/* Networking */
#define IPSEC 1
#define INET  1
#define INET6 1
#define TCP_SIGNATURE 1

/* Integer type definitions */

#define __float_t float
#define __double_t double

#define __clock_t clock_t
#define __cpumask_t unsigned int
#define __critical_t intptr_t
#define __ptrdiff_t ptrdiff_t
#define __time_t time_t

#define	_CLOCKID_T_DECLARED 1
#define	_TIMER_T_DECLARED 1
#define	_TIME_T_DECLARED 1
#define	_USECONDS_T_DECLARED 1
#define	_FSBLKCNT_T_DECLARED 1
#define	_BLKSIZE_T_DECLARED 1
#define	_BLKCNT_T_DECLARED 1

/* Symbol rename */

#include <machine/rtems-bsd-symbols.h>

#define gets _bsd_gets
#define realloc _bsd_realloc
#define reallocf _bsd_reallocf
#define setenv _bsd_setenv
#define abs _bsd_abs
#define labs _bsd_labs

#include <rtems/score/watchdogimpl.h>
#define ticks _Watchdog_Ticks_since_boot

/* Debug */

void rtems_bsd_assert_func(const char *file, int line, const char *func, const char *expr);

#define BSD_PRINTF(fmt, ...) printf("%s: " fmt, __func__, ##__VA_ARGS__)

#define BSD_PANIC(fmt, ...) panic("%s: " fmt "\n",  __func__, ##__VA_ARGS__)

#ifdef NDEBUG
# define BSD_ASSERT(expr) ((void) 0)
#else
# define BSD_ASSERT(expr) ((expr) ? (void) 0 : rtems_bsd_assert_func(__FILE__, __LINE__, __func__, #expr))
#endif

#define BSD_ASSERT_SC(sc) BSD_ASSERT((sc) == RTEMS_SUCCESSFUL)

#define BSD_ASSERT_RV(rv) BSD_ASSERT((rv) == 0)

/* General definitions */

#define M_RTEMS_HEAP 0

#define BSD_MAXIMUM_SLEEP_QUEUES 32

extern rtems_chain_control rtems_bsd_lock_chain;

extern rtems_chain_control rtems_bsd_mtx_chain;

extern rtems_chain_control rtems_bsd_sx_chain;

extern rtems_chain_control rtems_bsd_condvar_chain;

extern rtems_chain_control rtems_bsd_callout_chain;

extern rtems_chain_control rtems_bsd_malloc_chain;

/* CPU definitions */
#define cpu_spinwait()    /* nothing */

#endif /* _RTEMS_BSD_MACHINE_RTEMS_BSD_CONFIG_H_ */