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

4.104.115
Last change on this file since a9fa9b7 was a9fa9b7, checked in by Chris Johns <chrisj@…>, on 02/18/10 at 00:24:25

2010-02-18 Chris Johns <chrisj@…>

  • libfs/src/rfs/rtems-rfs-bitmaps.c, libfs/src/rfs/rtems-rfs-bitmaps.h, libfs/src/rfs/rtems-rfs-bitmaps-ut.c, libfs/src/rfs/rtems-rfs-block.c, libfs/src/rfs/rtems-rfs-block.h, libfs/src/rfs/rtems-rfs-block-pos.h, libfs/src/rfs/rtems-rfs-buffer-bdbuf.c, libfs/src/rfs/rtems-rfs-buffer.c, libfs/src/rfs/rtems-rfs-buffer-devio.c, libfs/src/rfs/rtems-rfs-buffer.h, libfs/src/rfs/rtems-rfs-data.h, libfs/src/rfs/rtems-rfs-dir.c, libfs/src/rfs/rtems-rfs-dir.h, libfs/src/rfs/rtems-rfs-dir-hash.c, libfs/src/rfs/rtems-rfs-dir-hash.h, libfs/src/rfs/rtems-rfs-file.c, libfs/src/rfs/rtems-rfs-file.h, libfs/src/rfs/rtems-rfs-file-system.c, libfs/src/rfs/rtems-rfs-file-system-fwd.h, libfs/src/rfs/rtems-rfs-file-system.h, libfs/src/rfs/rtems-rfs-format.c, libfs/src/rfs/rtems-rfs-format.h, libfs/src/rfs/rtems-rfs-group.c, libfs/src/rfs/rtems-rfs-group.h, libfs/src/rfs/rtems-rfs.h, libfs/src/rfs/rtems-rfs-inode.c, libfs/src/rfs/rtems-rfs-inode.h, libfs/src/rfs/rtems-rfs-link.c, libfs/src/rfs/rtems-rfs-link.h, libfs/src/rfs/rtems-rfs-mutex.c, libfs/src/rfs/rtems-rfs-mutex.h, libfs/src/rfs/rtems-rfs-rtems.c, libfs/src/rfs/rtems-rfs-rtems-dev.c, libfs/src/rfs/rtems-rfs-rtems-dir.c, libfs/src/rfs/rtems-rfs-rtems-file.c, libfs/src/rfs/rtems-rfs-rtems.h, libfs/src/rfs/rtems-rfs-rtems-utils.c, libfs/src/rfs/rtems-rfs-shell.c, libfs/src/rfs/rtems-rfs-shell.h, libfs/src/rfs/rtems-rfs-trace.c, libfs/src/rfs/rtems-rfs-trace.h: New.
  • Makefile.am, preinstall.am, libfs/Makefile.am, wrapup/Makefile.am: Updated with the RFS support.
  • libfs/README: Updated after 10 years.
  • libblock/src/flashdisk.c, libblock/src/nvdisk.c, libblock/src/ramdisk-driver.c: Updated to the new error reporting in libblock.
  • libmisc/shell/main_ls.c, libmisc/shell/print-ls.c: Fix printing the size in long mode.
  • libnetworking/nfs/bootp_subr.c, libnetworking/rtems/rtems_bootp.c, libnetworking/rtems/rtems_bsdnet_internal.h: Return the BOOTP/DHCP to the forever behaviour of 4.9 with the ability to call BOOTP and control the process if required.
  • Property mode set to 100644
File size: 5.2 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_RTEMS_BSDNET_INTERNAL_H
13#define _RTEMS_RTEMS_BSDNET_INTERNAL_H
14
15#ifdef __cplusplus
16extern "C" {
17#endif
18
19#include <rtems.h>
20
21typedef unsigned int            vm_offset_t;
22typedef long long               vm_ooffset_t;
23typedef unsigned int            vm_pindex_t;
24typedef unsigned int            vm_size_t;
25
26#ifndef __ioctl_command_defined
27typedef u_int32_t ioctl_command_t;
28#define __ioctl_command_defined
29#endif
30
31
32#define _BSD_OFF_T_     int32_t
33#define _BSD_PID_T_     rtems_id
34#define _BSD_VA_LIST_   char *
35
36/* make sure we get the network versions of these */
37#include <machine/types.h>
38#include <machine/param.h>
39#include <rtems/bsd/sys/cdefs.h>
40
41#include <sys/time.h>
42
43struct mdproc {
44        int     md_flags;
45        int     *md_regs;
46};
47
48/*
49 * Other RTEMS/BSD glue
50 */
51struct socket;
52extern int soconnsleep (struct socket *so);
53extern void soconnwakeup (struct socket *so);
54#define splnet()        0
55#define splimp()        0
56#define splx(_s)        do { (_s) = 0; } while(0)
57
58/* to avoid warnings */
59void *memcpy(void *dest, const void *src, size_t n);
60void *memset(void *s, int c, size_t n);
61
62#define ovbcopy(f,t,n) bcopy(f,t,n)
63#define copyout(f,t,n) (memcpy(t,f,n),0)
64#define copyin(f,t,n) (memcpy(t,f,n),0)
65
66#define random()        rtems_bsdnet_random()
67#define panic   rtems_panic
68#define suser(a,b)      0
69
70void    microtime (struct timeval *tv);
71#define hz rtems_bsdnet_ticks_per_second
72#define tick rtems_bsdnet_microseconds_per_tick
73
74#define log     rtems_bsdnet_log
75
76/*
77 * Since we can't have two sys/types.h files, we'll hack around
78 * and copy the contents of the BSD sys/types.h to here....
79 */
80
81typedef u_int64_t       u_quad_t;       /* quads */
82typedef int64_t         quad_t;
83typedef quad_t *        qaddr_t;
84
85typedef void __sighandler_t(int);
86typedef __sighandler_t  *sig_t; /* type of pointer to a signal function */
87#define NSIG    32
88struct  sigaltstack {
89        char    *ss_sp;                 /* signal stack base */
90        int     ss_size;                /* signal stack length */
91        int     ss_flags;               /* SS_DISABLE and/or SS_ONSTACK */
92};
93
94#ifdef _KERNEL
95typedef int             boolean_t;
96#endif
97
98#ifndef _POSIX_SOURCE
99/*
100 * minor() gives a cookie instead of an index since we don't want to
101 * change the meanings of bits 0-15 or waste time and space shifting
102 * bits 16-31 for devices that don't use them.
103 */
104#define major(x)        ((int)(((u_int)(x) >> 8)&0xff)) /* major number */
105#define minor(x)        ((int)((x)&0xffff00ff))         /* minor number */
106#define makedev(x,y)    ((dev_t)(((x) << 8) | (y)))     /* create dev_t */
107#endif
108
109#include <rtems/endian.h>
110
111typedef quad_t          rlim_t;         /* resource limit */
112typedef u_int32_t       fixpt_t;        /* fixed point number */
113
114/*
115 * Forward structure declarations for function prototypes.  We include the
116 * common structures that cross subsystem boundaries here; others are mostly
117 * used in the same place that the structure is defined.
118 */
119struct  proc;
120struct  pgrp;
121struct  ucred;
122struct  rusage;
123struct  buf;
124struct  tty;
125struct  uio;
126struct  rtems_bsdnet_ifconfig;
127
128/*
129 * Redo kernel memory allocation
130 */
131#define malloc(size,type,flags) rtems_bsdnet_malloc(size,type,flags)
132#define free(ptr,type) rtems_bsdnet_free(ptr,type)
133#define timeout(ftn,arg,ticks) rtems_bsdnet_timeout(ftn,arg,ticks)
134
135#define M_NOWAIT        0x0001
136void *rtems_bsdnet_malloc (size_t size, int type, int flags);
137void rtems_bsdnet_free (void *addr, int type);
138
139void rtems_bsdnet_semaphore_obtain (void);
140void rtems_bsdnet_semaphore_release (void);
141void rtems_bsdnet_schednetisr (int n);
142int rtems_bsdnet_parse_driver_name (const struct rtems_bsdnet_ifconfig *config, char **namep);
143
144unsigned long rtems_bsdnet_seconds_since_boot (void);
145unsigned long rtems_bsdnet_random (void);
146
147rtems_id rtems_bsdnet_newproc (
148  char  *name,
149  int   stacksize,
150  void  (*entry)(void *),
151  void  *arg
152);
153
154rtems_status_code rtems_bsdnet_event_receive (
155  rtems_event_set  event_in,
156  rtems_option     option_set,
157  rtems_interval   ticks,
158  rtems_event_set *event_out
159);
160
161/*
162 * Network configuration
163 */
164extern int rtems_bsdnet_ticks_per_second;
165extern int rtems_bsdnet_microseconds_per_tick;
166extern struct in_addr rtems_bsdnet_log_host_address;
167extern char *rtems_bsdnet_domain_name;
168
169/*
170 * Internal IOCTL command
171 */
172#define SIO_RTEMS_SHOW_STATS    _IO('i', 250)
173
174/*
175 * Some extra prototypes
176 */
177int sethostname (char *name, size_t namelen);
178void domaininit (void *);
179void ifinit (void *);
180void ipintr (void);
181void arpintr (void);
182bool bootpc_init(bool, bool);
183int socket (int, int, int);
184int ioctl (int, ioctl_command_t, ...);
185
186/*
187 * Events used by networking routines.
188 * Everything will break if the application
189 * tries to use these events or if the `sleep'
190 * events are equal to any of the NETISR * events.
191 */
192#define SBWAIT_EVENT   RTEMS_EVENT_24
193#define SOSLEEP_EVENT  RTEMS_EVENT_25
194#define NETISR_IP_EVENT        (1L << NETISR_IP)
195#define NETISR_ARP_EVENT       (1L << NETISR_ARP)
196#define NETISR_EVENTS  (NETISR_IP_EVENT|NETISR_ARP_EVENT)
197#if (SBWAIT_EVENT & SOSLEEP_EVENT & NETISR_EVENTS)
198# error "Network event conflict"
199#endif
200
201#ifdef __cplusplus
202}
203#endif
204
205#endif /* _RTEMS_RTEMS_BSDNET_INTERNAL_H */
Note: See TracBrowser for help on using the repository browser.