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
|
#ifndef XDEFS_H
#define XDEFS_H
/*
* Written by Oron Peled <oron@actcom.co.il>
* Copyright (C) 2004-2006, Xorcom
*
* All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*
*/
#include "xpp_version.h"
#ifdef __KERNEL__
#include <linux/kernel.h>
#include <linux/version.h>
#else
/* This is to enable user-space programs to include this. */
#include <stdint.h>
typedef uint8_t __u8;
typedef uint32_t __u32;
#include <stdio.h>
#define DBG(fmt, ...) printf("DBG: %s: " fmt, __FUNCTION__, ## __VA_ARGS__)
#define INFO(fmt, ...) printf("INFO: " fmt, ## __VA_ARGS__)
#define NOTICE(fmt, ...) printf("NOTICE: " fmt, ## __VA_ARGS__)
#define ERR(fmt, ...) printf("ERR: " fmt, ## __VA_ARGS__)
#define __user
struct list_head { struct list_head *next; struct list_head *prev; };
#endif
#define PACKED __attribute__((packed))
#define ALL_LINES ((lineno_t)-1)
#ifndef BIT /* added in 2.6.24 */
#define BIT(i) (1UL << (i))
#endif
#define BIT_SET(x,i) ((x) |= BIT(i))
#define BIT_CLR(x,i) ((x) &= ~BIT(i))
#define IS_SET(x,i) (((x) & BIT(i)) != 0)
#define BITMASK(i) (((u64)1 << (i)) - 1)
#define MAX_PROC_WRITE 100 /* Largest buffer we allow writing our /proc files */
#define CHANNELS_PERXPD 32 /* Depends on xpp_line_t and protocol fields */
#define MAX_SPANNAME 20 /* From dahdi/kernel.h */
#define MAX_SPANDESC 40 /* From dahdi/kernel.h */
#define MAX_CHANNAME 40 /* From dahdi/kernel.h */
#define XPD_NAMELEN 10 /* must be <= from maximal workqueue name */
#define XPD_DESCLEN 20
#define XBUS_NAMELEN 20 /* must be <= from maximal workqueue name */
#define XBUS_DESCLEN 40
#define LABEL_SIZE 20
#define UNIT_BITS 3 /* Bit for Astribank unit number */
#define SUBUNIT_BITS 3 /* Bit for Astribank subunit number */
#define MAX_UNIT (1 << UNIT_BITS) /* 1 FXS + 3 FXS/FXO | 1 BRI + 3 FXS/FXO */
#define MAX_SUBUNIT (1 << SUBUNIT_BITS) /* 8 port BRI */
/*
* Compile time sanity checks
*/
#if MAX_UNIT > BIT(UNIT_BITS)
#error "MAX_UNIT too large"
#endif
#if MAX_SUBUNIT > BIT(SUBUNIT_BITS)
#error "MAX_SUBUNIT too large"
#endif
#define MAX_XPDS (MAX_UNIT*MAX_SUBUNIT)
#define VALID_XPD_NUM(x) ((x) < MAX_XPDS && (x) >= 0)
#define CHAN_BITS 5 /* 0-31 for E1 */
typedef char *charp;
typedef unsigned char byte;
#ifdef __KERNEL__
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
#define KMEM_CACHE_T kmem_cache_t
#else
#define KMEM_CACHE_T struct kmem_cache
#endif
#define KZALLOC(size, gfp) my_kzalloc(size, gfp)
#define KZFREE(p) do { \
memset((p), 0, sizeof(*(p))); \
kfree(p); \
} while(0);
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
/* Also don't define this for later RHEL >= 5.2 . hex_asc is from the
* same linux-2.6-net-infrastructure-updates-to-mac80211-iwl4965.patch
* as is the bool typedef. */
#if LINUX_VERSION_CODE != KERNEL_VERSION(2,6,18) || ! defined(hex_asc)
typedef int bool;
#endif
#endif
#else
typedef int bool;
#endif
typedef struct xbus xbus_t;
typedef struct xpd xpd_t;
typedef struct xframe xframe_t;
typedef struct xpacket xpacket_t;
typedef struct xops xops_t;
typedef __u32 xpp_line_t; /* at most 31 lines for E1 */
typedef byte lineno_t;
typedef byte xportno_t;
#define PORT_BROADCAST 255
#endif /* XDEFS_H */
|