source: rtems/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h @ d8dbdc0

4.104.114.84.95
Last change on this file since d8dbdc0 was d8dbdc0, checked in by Ralf Corsepius <ralf.corsepius@…>, on 03/29/04 at 22:11:51

2004-03-29 Ralf Corsepius <ralf_corsepius@…>

  • libnetworking/lib/ftpfs.c, libnetworking/lib/rtems_bsdnet_ntp.c, libnetworking/lib/tftpDriver.c, libnetworking/machine/endian.h, libnetworking/net/if_ppp.c, libnetworking/rtems/rtems_bsdnet.h, libnetworking/rtems/rtems_bsdnet_internal.h, libnetworking/rtems/rtems_glue.c, libnetworking/rtems/rtems_syscall.c: Convert to using c99 fixed size types.
  • Property mode set to 100644
File size: 5.1 KB
Line 
1/*
2 * Declarations to fit FreeBSD to RTEMS.
3 *
4 *******************************************************************
5 *                            WARNING                              *
6 * This file should *never* be included by any application program *
7 *******************************************************************
8 *
9 *  $Id$
10 */
11
12#ifndef _RTEMS_BSDNET_INTERNAL_H_
13#define _RTEMS_BSDNET_INTERNAL_H_
14
15#include <rtems.h>
16
17typedef unsigned int            vm_offset_t;
18typedef long long               vm_ooffset_t;
19typedef unsigned int            vm_pindex_t;
20typedef unsigned int            vm_size_t;
21
22#define _BSD_OFF_T_     int32_t 
23#define _BSD_PID_T_     rtems_id
24#define _BSD_VA_LIST_   char *
25
26/* make sure we get the network versions of these */
27#include <machine/types.h>
28#include <machine/param.h>
29#include <rtems/cdefs.h>
30
31#include <sys/time.h>
32/*
33struct  itimerval {
34  struct  timeval it_interval;
35  struct  timeval it_value;
36};
37*/
38struct mdproc {
39        int     md_flags;
40        int     *md_regs;
41};
42
43#define USHRT_MAX       65535
44
45/*
46 * Other RTEMS/BSD glue
47 */
48struct socket;
49extern int soconnsleep (struct socket *so);
50extern void soconnwakeup (struct socket *so);
51#define splnet()        0
52#define splimp()        0
53#define splx(_s)        do { (_s) = 0; } while(0)
54
55/* to avoid warnings */
56void *memcpy(void *dest, const void *src, size_t n);
57void *memset(void *s, int c, size_t n);
58
59#define ovbcopy(f,t,n) bcopy(f,t,n)
60#define copyout(f,t,n) (memcpy(t,f,n),0)
61#define copyin(f,t,n) (memcpy(t,f,n),0)
62
63#define random()        rtems_bsdnet_random()
64#define panic   rtems_panic
65#define suser(a,b)      0
66
67void    microtime (struct timeval *tv);
68#define hz rtems_bsdnet_ticks_per_second
69#define tick rtems_bsdnet_microseconds_per_tick
70
71#define log     rtems_bsdnet_log
72
73/*
74 * Since we can't have two sys/types.h files, we'll hack around
75 * and copy the contents of the BSD sys/types.h to here....
76 */
77#include <sys/cdefs.h>
78
79typedef u_int64_t       u_quad_t;       /* quads */
80typedef int64_t         quad_t;
81typedef quad_t *        qaddr_t;
82
83typedef void __sighandler_t __P((int));
84typedef __sighandler_t  *sig_t; /* type of pointer to a signal function */
85#define NSIG    32
86struct  sigaltstack {
87        char    *ss_sp;                 /* signal stack base */
88        int     ss_size;                /* signal stack length */
89        int     ss_flags;               /* SS_DISABLE and/or SS_ONSTACK */
90};
91
92#ifdef KERNEL
93typedef int             boolean_t;
94typedef struct vm_page  *vm_page_t;
95#endif
96
97#ifndef _POSIX_SOURCE
98/*
99 * minor() gives a cookie instead of an index since we don't want to
100 * change the meanings of bits 0-15 or waste time and space shifting
101 * bits 16-31 for devices that don't use them.
102 */
103#define major(x)        ((int)(((u_int)(x) >> 8)&0xff)) /* major number */
104#define minor(x)        ((int)((x)&0xffff00ff))         /* minor number */
105#define makedev(x,y)    ((dev_t)(((x) << 8) | (y)))     /* create dev_t */
106#endif
107
108#include <machine/endian.h>
109
110typedef quad_t          rlim_t;         /* resource limit */
111typedef u_int32_t       fixpt_t;        /* fixed point number */
112
113/*
114 * Forward structure declarations for function prototypes.  We include the
115 * common structures that cross subsystem boundaries here; others are mostly
116 * used in the same place that the structure is defined.
117 */
118struct  proc;
119struct  pgrp;
120struct  ucred;
121struct  rusage;
122struct  file;
123struct  buf;
124struct  tty;
125struct  uio;
126struct  rtems_bsdnet_ifconfig;
127
128/*
129 * Redo kernel memory allocation
130 */
131#define malloc rtems_bsdnet_malloc
132#define free rtems_bsdnet_free
133
134#define M_NOWAIT        0x0001
135void *rtems_bsdnet_malloc (unsigned long size, int type, int flags);
136void rtems_bsdnet_free (void *addr, int type);
137
138void rtems_bsdnet_semaphore_obtain (void);
139void rtems_bsdnet_semaphore_release (void);
140void rtems_bsdnet_schednetisr (int n);
141int rtems_bsdnet_parse_driver_name (const struct rtems_bsdnet_ifconfig *config, char **namep);
142
143unsigned long rtems_bsdnet_seconds_since_boot (void);
144unsigned long rtems_bsdnet_random (void);
145
146rtems_id rtems_bsdnet_newproc (
147  char  *name,
148  int   stacksize,
149  void  (*entry)(void *),
150  void  *arg
151);
152
153rtems_status_code rtems_bsdnet_event_receive (
154  rtems_event_set  event_in,
155  rtems_option     option_set,
156  rtems_interval   ticks,
157  rtems_event_set *event_out
158);
159
160/*
161 * Network configuration
162 */
163extern int rtems_bsdnet_ticks_per_second;
164extern int rtems_bsdnet_microseconds_per_tick;
165extern struct in_addr rtems_bsdnet_log_host_address;
166extern char *rtems_bsdnet_domain_name;
167extern struct in_addr rtems_bsdnet_nameserver[];
168extern int rtems_bsdnet_nameserver_count;
169
170/*
171 * Internal IOCTL command
172 */
173#define SIO_RTEMS_SHOW_STATS    _IO('i', 250)
174
175/*
176 * Some extra prototypes
177 */
178int sethostname (char *name, size_t namelen);
179void domaininit (void *);
180void ifinit (void *);
181void ipintr (void);
182void arpintr (void);
183void bootpc_init(int );
184int socket (int, int, int);
185int ioctl (int, int, ...);
186
187/*
188 * Events used by networking routines.
189 * Everything will break if the application
190 * tries to use these events or if the `sleep'
191 * events are equal to any of the NETISR * events.
192 */
193#define SBWAIT_EVENT   RTEMS_EVENT_24
194#define SOSLEEP_EVENT  RTEMS_EVENT_25
195#define NETISR_IP_EVENT                (1 << NETISR_IP)
196#define NETISR_ARP_EVENT       (1 << NETISR_ARP)
197#define NETISR_EVENTS  (NETISR_IP_EVENT|NETISR_ARP_EVENT)
198#if (SBWAIT_EVENT & SOSLEEP_EVENT & NETISR_EVENTS)
199# error "Network event conflict"
200#endif
201
202#endif /* _RTEMS_BSDNET_INTERNAL_H_ */
Note: See TracBrowser for help on using the repository browser.