source: rtems/cpukit/libnetworking/rtems/rtems_bsdnet_internal.h @ 4b60bd3

4.104.114.84.95
Last change on this file since 4b60bd3 was 4b60bd3, checked in by Joel Sherrill <joel.sherrill@…>, on 09/22/00 at 20:38:57

2000-09-22 Joel Sherrill <joel@…>

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