d05f15ec926c19404956f9af69c7734c25068e98
[linux-2.6.git] / support / patch-click-1.6.0-linux-2.6.27.10
1 --- click-1.6.0-27/lib/ino.cc.orig      2007-09-11 15:39:22.000000000 -0400
2 +++ click-1.6.0-27/lib/ino.cc   2009-01-20 22:34:50.000000000 -0500
3 @@ -34,6 +34,16 @@
4      _generation = 0;
5  }
6  
7 +#define DT_UNKNOWN      0
8 +#define DT_FIFO         1
9 +#define DT_CHR          2
10 +#define DT_DIR          4
11 +#define DT_BLK          6
12 +#define DT_REG          8
13 +#define DT_LNK          10
14 +#define DT_SOCK         12
15 +#define DT_WHT          14
16 +
17  void
18  ClickIno::cleanup()
19  {
20 --- click-1.6.0-27/include/clicknet/ip.h.orig   2007-07-16 19:47:50.000000000 -0400
21 +++ click-1.6.0-27/include/clicknet/ip.h        2009-01-19 16:01:43.000000000 -0500
22 @@ -5,6 +5,7 @@
23  #include <click/cxxprotect.h>
24  CLICK_CXX_PROTECT
25  #if CLICK_LINUXMODULE
26 +#include <linux/autoconf.h>
27  # include <net/checksum.h>
28  # include <linux/in.h>
29  #else
30 --- click-1.6.0-27/include/click/packet.hh.orig 2007-09-07 16:11:26.000000000 -0400
31 +++ click-1.6.0-27/include/click/packet.hh      2009-01-27 10:13:43.000000000 -0500
32 @@ -452,7 +452,7 @@
33  Packet::mac_header() const
34  {
35  #if CLICK_LINUXMODULE
36 -    return skb()->mac.raw;
37 +    return skb_mac_header(skb());
38  #else
39      return _mac;
40  #endif
41 @@ -462,7 +462,7 @@
42  Packet::network_header() const
43  {
44  #if CLICK_LINUXMODULE
45 -    return skb()->nh.raw;
46 +    return skb_network_header(skb());
47  #else
48      return _nh;
49  #endif
50 @@ -472,7 +472,7 @@
51  Packet::transport_header() const
52  {
53  #if CLICK_LINUXMODULE
54 -    return skb()->h.raw;
55 +    return skb_transport_header(skb());
56  #else
57      return _h;
58  #endif
59 @@ -567,7 +567,7 @@
60  # if LINUX_VERSION_CODE <= KERNEL_VERSION(2, 6, 13)
61      memcpy(&skb()->stamp, &timestamp, 8);
62  # else
63 -    skb_set_timestamp(skb(), &timestamp.timeval());
64 +    memcpy(&skb()->tstamp, &timestamp, 8);
65  # endif
66  #else
67      _timestamp = timestamp;
68 @@ -904,7 +904,7 @@
69  Packet::set_mac_header(const unsigned char *h)
70  {
71  #if CLICK_LINUXMODULE  /* Linux kernel module */
72 -    skb()->mac.raw = const_cast<unsigned char *>(h);
73 +    skb()->mac_header = const_cast<unsigned char *>(h);
74  #else                          /* User-space and BSD kernel module */
75      _mac = const_cast<unsigned char *>(h);
76  #endif
77 @@ -914,8 +914,8 @@
78  Packet::set_mac_header(const unsigned char *h, uint32_t len)
79  {
80  #if CLICK_LINUXMODULE  /* Linux kernel module */
81 -    skb()->mac.raw = const_cast<unsigned char *>(h);
82 -    skb()->nh.raw = const_cast<unsigned char *>(h) + len;
83 +    skb()->mac_header = const_cast<unsigned char *>(h);
84 +    skb()->network_header = const_cast<unsigned char *>(h) + len;
85  #else                          /* User-space and BSD kernel module */
86      _mac = const_cast<unsigned char *>(h);
87      _nh = const_cast<unsigned char *>(h) + len;
88 @@ -956,8 +956,8 @@
89  Packet::set_network_header(const unsigned char *h, uint32_t len)
90  {
91  #if CLICK_LINUXMODULE  /* Linux kernel module */
92 -    skb()->nh.raw = const_cast<unsigned char *>(h);
93 -    skb()->h.raw = const_cast<unsigned char *>(h) + len;
94 +    skb()->network_header = const_cast<unsigned char *>(h);
95 +    skb()->transport_header = const_cast<unsigned char *>(h) + len;
96  #else                          /* User-space and BSD kernel module */
97      _nh = const_cast<unsigned char *>(h);
98      _h = const_cast<unsigned char *>(h) + len;
99 @@ -968,7 +968,7 @@
100  Packet::set_network_header_length(uint32_t len)
101  {
102  #if CLICK_LINUXMODULE  /* Linux kernel module */
103 -    skb()->h.raw = skb()->nh.raw + len;
104 +    skb()->transport_header = skb()->network_header + len;
105  #else                          /* User-space and BSD kernel module */
106      _h = _nh + len;
107  #endif
108 @@ -1076,9 +1076,9 @@
109    _h += (_h ? shift : 0);
110  #else
111    struct sk_buff *mskb = skb();
112 -  mskb->mac.raw += (mskb->mac.raw ? shift : 0);
113 -  mskb->nh.raw += (mskb->nh.raw ? shift : 0);
114 -  mskb->h.raw += (mskb->h.raw ? shift : 0);
115 +  mskb->mac_header += (mskb->mac_header ? shift : 0);
116 +  mskb->network_header += (mskb->network_header ? shift : 0);
117 +  mskb->transport_header += (mskb->transport_header ? shift : 0);
118  #endif
119  }
120  
121 --- click-1.6.0-27/include/click/config-linuxmodule.h.orig      2009-01-19 15:07:24.000000000 -0500
122 +++ click-1.6.0-27/include/click/config-linuxmodule.h   2009-01-27 12:30:56.000000000 -0500
123 @@ -27,7 +27,7 @@
124  #define HAVE_FAST_CHECKSUM 1
125  
126  /* Define if 'int64_t' is typedefed to 'long' in linuxmodule. */
127 -#define HAVE_INT64_IS_LONG_LINUXMODULE 1
128 +/* #undef HAVE_INT64_IS_LONG_LINUXMODULE */
129  
130  /* Define if 'int64_t' is typedefed to 'long long' in linuxmodule. */
131  #define HAVE_INT64_IS_LONG_LONG_LINUXMODULE 1
132 @@ -87,12 +87,10 @@
133  #endif
134  
135  /* Include integer type definitions. */
136 -#if !HAVE_LINUXMODULE_2_6
137  # include <linux/autoconf.h>
138 -#endif
139  #include <linux/types.h>
140  typedef ptrdiff_t intptr_t;
141 -typedef unsigned long uintptr_t; /* XXX? */
142 +//typedef unsigned long uintptr_t; /* XXX? */
143  
144  /* Define HAVE_INT64_IS_LONG based on HAVE_INT64_IS_LONG_LINUXMODULE. */
145  #ifdef HAVE_INT64_IS_LONG_LINUXMODULE
146 --- click-1.6.0-27/linuxmodule/Makefile.orig    2009-01-19 15:15:55.000000000 -0500
147 +++ click-1.6.0-27/linuxmodule/Makefile 2009-01-27 12:21:58.000000000 -0500
148 @@ -5,12 +5,12 @@
149  subdir := linuxmodule
150  conf_auxdir = $(top_srcdir)
151  
152 -prefix = /usr/local
153 -exec_prefix = ${prefix}
154 -bindir = /usr/local/bin
155 -sbindir = /usr/local/sbin
156 -libdir = /usr/local/lib
157 -linuxdir = /d/kernels/linux-2.6.27.10-click
158 +prefix = /d/click/click-1.6.0-27/inst
159 +exec_prefix = /d/click/click-1.6.0-27/inst
160 +bindir = /d/click/click-1.6.0-27/inst/bin
161 +sbindir = /d/click/click-1.6.0-27/inst/sbin
162 +libdir = /d/click/click-1.6.0-27/inst/lib
163 +linuxdir = /d/kernels/linux-2.6.27.10-click/
164  
165  LIB_CXX_OBJS = string.o straccum.o nameinfo.o \
166         bitvector.o vectorv.o templatei.o bighashmap_arena.o \
167 @@ -53,7 +53,7 @@
168  ##########################################################################
169  ## LINUX 2.6                                                           ##
170  
171 -KERNELPATH = /d/kernels/linux-2.6.27.10-click
172 +KERNELPATH = /d/kernels/linux-2.6.27.10-click/
173  
174  ifeq ($(KBUILD_EXTMOD),)
175  top_srcdir := ..
176 @@ -95,7 +95,7 @@
177  
178  CLICKDEFS = -DHAVE_CONFIG_H 
179  CLICKINCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
180 -       -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include
181 +       -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include -I$(linuxdir)/include/asm/mach-default
182  
183  CXXCOMPILE = $(CLICKCXX) $(LINUXCFLAGS) $(CLICKCPPFLAGS) $(CLICKCFLAGS) \
184         $(CLICKCXXFLAGS) $(CLICKDEFS) $(CLICKINCLUDES) $(CLICKDEPCFLAGS)
185 @@ -270,7 +270,7 @@
186         @/bin/rm -f elements.conf
187         @$(MAKE) elements.conf
188  elements.conf: $(top_builddir)/config.status $(top_builddir)/click-buildtool
189 -       echo "linuxmodule  app aqm ethernet icmp ip standard tcpudp" | $(top_builddir)/click-buildtool findelem -r linuxmodule -p $(top_srcdir) > elements.conf
190 +       echo "linuxmodule  app aqm ethernet icmp ip standard tcpudp test" | $(top_builddir)/click-buildtool findelem -r linuxmodule -p $(top_srcdir) > elements.conf
191  $(ELEMENTSCONF).mk: $(ELEMENTSCONF).conf $(top_builddir)/click-buildtool
192         $(CLICK_ELEM2MAKE) -x "$(STD_ELEMENT_OBJS)" < $(ELEMENTSCONF).conf > $(ELEMENTSCONF).mk
193  $(ELEMENTSCONF).cc: $(ELEMENTSCONF).conf $(top_builddir)/click-buildtool
194 --- click-1.6.0-27/linuxmodule/sched.cc.orig    2007-08-28 19:01:58.000000000 -0400
195 +++ click-1.6.0-27/linuxmodule/sched.cc 2009-01-26 16:55:57.000000000 -0500
196 @@ -228,7 +228,7 @@
197    click_thread_priority = priority;
198    if (click_thread_pids)
199      for (int i = 0; i < click_thread_pids->size(); i++) {
200 -      struct task_struct *task = find_task_by_pid((*click_thread_pids)[i]);
201 +      struct task_struct *task = find_task_by_vpid((*click_thread_pids)[i]);
202        if (task)
203         TASK_PRIO(task) = priority;
204      }
205 @@ -429,7 +429,7 @@
206      SOFT_SPIN_LOCK(&click_thread_lock);
207      for (int i = 0; i < click_thread_pids->size(); i++) {
208        printk("<1>click:   router thread pid %d\n", (*click_thread_pids)[i]);
209 -      struct task_struct *ct = find_task_by_pid((*click_thread_pids)[i]);
210 +      struct task_struct *ct = find_task_by_vpid((*click_thread_pids)[i]);
211        if (ct)
212           printk("<1>click:   state %d, EIP %08x\n", (int) ct->state, KSTK_EIP(ct));
213      }
214 --- click-1.6.0-27/linuxmodule/proclikefs.c.orig        2007-07-16 19:47:50.000000000 -0400
215 +++ click-1.6.0-27/linuxmodule/proclikefs.c     2009-01-26 17:17:09.000000000 -0500
216 @@ -20,6 +20,7 @@
217  #undef CLICK_LINUXMODULE
218  #include <linux/version.h>
219  #include <linux/autoconf.h>
220 +#include <linux/list.h>
221  #ifndef EXPORT_SYMTAB
222  # define EXPORT_SYMTAB
223  #endif
224 @@ -73,7 +74,7 @@
225      char name[1];
226  };
227  
228 -static LIST_HEAD(fs_list);
229 +static struct list_head fs_list;
230  static spinlock_t fslist_lock;
231  extern spinlock_t inode_lock;
232  extern spinlock_t sb_lock;
233 @@ -357,7 +358,7 @@
234         fo->unlocked_ioctl = (void *) return_EIO;
235         fo->compat_ioctl = (void *) return_EIO;
236         fo->aio_fsync = (void *) return_EIO;
237 -       fo->sendfile = (void *) return_EIO;
238 +       //fo->sendfile = (void *) return_EIO;
239         fo->check_flags = (void *) return_EIO;
240         fo->flock = (void *) return_EIO;
241  #endif
242 @@ -533,10 +534,12 @@
243  int
244  init_module(void)
245  {
246 -    proclikefs_null_super_operations.read_inode = proclikefs_read_inode;
247 +    //proclikefs_null_super_operations.read_inode = proclikefs_read_inode;
248      proclikefs_null_super_operations.put_super = proclikefs_put_super;
249      proclikefs_null_root_inode_operations.lookup = proclikefs_null_root_lookup;
250      spin_lock_init(&fslist_lock);
251 +    INIT_LIST_HEAD(&fs_list);
252 +    printk (KERN_CRIT "Initializing module\n");
253      return 0;
254  }
255  
256 --- click-1.6.0-27/linuxmodule/Makefile.in.orig 2007-09-12 18:26:17.000000000 -0400
257 +++ click-1.6.0-27/linuxmodule/Makefile.in      2009-01-27 12:21:27.000000000 -0500
258 @@ -95,7 +95,7 @@
259  
260  CLICKDEFS = @DEFS@ 
261  CLICKINCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include \
262 -       -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include
263 +       -I$(srcdir) -I$(top_srcdir) -I$(linuxdir)/include -I$(linuxdir)/include/asm/mach-default
264  
265  CXXCOMPILE = $(CLICKCXX) $(LINUXCFLAGS) $(CLICKCPPFLAGS) $(CLICKCFLAGS) \
266         $(CLICKCXXFLAGS) $(CLICKDEFS) $(CLICKINCLUDES) $(CLICKDEPCFLAGS)
267 --- click-1.6.0-27/elements/linuxmodule/tohost.cc.orig  2007-08-31 11:21:55.000000000 -0400
268 +++ click-1.6.0-27/elements/linuxmodule/tohost.cc       2009-01-26 16:52:00.000000000 -0500
269 @@ -143,7 +143,7 @@
270  
271      // do not call eth_type_trans; it changes pkt_type! Instead, do its work
272      // directly.
273 -    skb->mac.raw = skb->data;
274 +    skb->mac_header = skb->data;
275      skb_pull(skb, 14);
276  
277  #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 0)
278 --- click-1.6.0-27/elements/linuxmodule/fromdevice.cc.orig      2007-08-29 04:01:48.000000000 -0400
279 +++ click-1.6.0-27/elements/linuxmodule/fromdevice.cc   2009-01-26 14:38:07.000000000 -0500
280 @@ -258,7 +258,7 @@
281         assert(skb_shared(skb) == 0); /* else skb = skb_clone(skb, GFP_ATOMIC); */
282  
283         /* Retrieve the MAC header. */
284 -       skb_push(skb, skb->data - skb->mac.raw);
285 +       skb_push(skb, skb->data - skb_mac_header(skb));
286  
287         Packet *p = Packet::make(skb);
288         _queue[_tail] = p; /* hand it to run_task */
289 --- click-1.6.0-27/elements/linuxmodule/fromhost.cc.orig        2007-07-16 19:47:50.000000000 -0400
290 +++ click-1.6.0-27/elements/linuxmodule/fromhost.cc     2009-01-26 15:16:05.000000000 -0500
291 @@ -121,7 +121,7 @@
292      used = this;
293      
294      // check for existing device
295 -    _dev = dev_get_by_name(_devname.c_str());
296 +    _dev = dev_get_by_name(&init_net, _devname.c_str());
297      if (_dev) {
298         if (_dev->open != fl_open) {
299             dev_put(_dev);
300 @@ -175,16 +175,16 @@
301  
302      ifr.ifr_hwaddr.sa_family = _dev->type;
303      memcpy(ifr.ifr_hwaddr.sa_data, _macaddr.data(), 6);
304 -    if ((res = dev_ioctl(SIOCSIFHWADDR, &ifr)) < 0)
305 +    if ((res = dev_ioctl(&init_net, SIOCSIFHWADDR, &ifr)) < 0)
306         errh->error("error %d setting hardware address for device '%s'", res, _devname.c_str());
307  
308      sin->sin_family = AF_INET;
309      sin->sin_addr = _destaddr;
310 -    if (res >= 0 && (res = devinet_ioctl(SIOCSIFADDR, &ifr)) < 0)
311 +    if (res >= 0 && (res = devinet_ioctl(&init_net,SIOCSIFADDR, &ifr)) < 0)
312         errh->error("error %d setting address for device '%s'", res, _devname.c_str());
313  
314      sin->sin_addr = _destmask;
315 -    if (res >= 0 && (res = devinet_ioctl(SIOCSIFNETMASK, &ifr)) < 0)
316 +    if (res >= 0 && (res = devinet_ioctl(&init_net,SIOCSIFNETMASK, &ifr)) < 0)
317         errh->error("error %d setting netmask for device '%s'", res, _devname.c_str());
318  
319      set_fs(oldfs);
320 @@ -202,9 +202,9 @@
321      mm_segment_t oldfs = get_fs();
322      set_fs(get_ds());
323  
324 -    (void) dev_ioctl(SIOCGIFFLAGS, &ifr);
325 +    (void) dev_ioctl(&init_net, SIOCGIFFLAGS, &ifr);
326      ifr.ifr_flags = (up > 0 ? ifr.ifr_flags | flags : ifr.ifr_flags & ~flags);
327 -    if ((res = dev_ioctl(SIOCSIFFLAGS, &ifr)) < 0 && errh)
328 +    if ((res = dev_ioctl(&init_net, SIOCSIFFLAGS, &ifr)) < 0 && errh)
329         errh->error("error %d bringing %s device '%s'", res, (up > 0 ? "up" : "down"), dev->name);
330  
331      set_fs(oldfs);
332 --- click-1.6.0-27/elements/linuxmodule/anydevice.cc.orig       2007-08-29 04:03:55.000000000 -0400
333 +++ click-1.6.0-27/elements/linuxmodule/anydevice.cc    2009-01-21 14:44:39.000000000 -0500
334 @@ -49,7 +49,7 @@
335  int
336  AnyDevice::find_device(AnyDeviceMap *adm, ErrorHandler *errh)
337  {
338 -    _dev = dev_get_by_name(_devname.c_str());
339 +    _dev = dev_get_by_name(&init_net,_devname.c_str());
340      _devname_exists = (bool) _dev;
341      if (!_dev)
342         _dev = dev_get_by_ether_address(_devname, this);
343 @@ -233,7 +233,7 @@
344         return 0;
345      read_lock(&dev_base_lock);
346      net_device *dev;
347 -    for (dev = dev_base; dev; dev = dev->next)
348 +    for_each_netdev(&init_net, dev)//for (dev = dev_base; dev; dev = dev->next)
349         if ((dev->type == ARPHRD_ETHER || dev->type == ARPHRD_80211)
350             && memcmp(en, dev->dev_addr, 6) == 0) {
351             dev_hold(dev);      // dev_get_by_name does dev_hold; so
352 --- click-1.6.0-27/elements/linuxmodule/todevice.cc.orig        2007-09-14 12:19:28.000000000 -0400
353 +++ click-1.6.0-27/elements/linuxmodule/todevice.cc     2009-01-26 16:50:39.000000000 -0500
354 @@ -21,6 +21,8 @@
355   * legally binding.
356   */
357  
358 +#include <linux/autoconf.h>
359 +#include <linux/version.h>
360  #include <click/config.h>
361  #include <click/glue.hh>
362  #include "polldevice.hh"
363 @@ -243,12 +245,12 @@
364      }
365  # else
366      local_bh_disable();
367 -    if (!spin_trylock(&_dev->xmit_lock)) {
368 +    if (!spin_trylock(&_dev->_tx[0]._xmit_lock)) {
369         local_bh_enable();
370         _task.fast_reschedule();
371         return false;
372      }
373 -    _dev->xmit_lock_owner = smp_processor_id();
374 +    _dev->_tx[0].xmit_lock_owner = smp_processor_id();
375  # endif
376  #endif
377  
378 @@ -316,7 +318,7 @@
379      // (or until Linux sends another packet) unless we poke
380      // net_bh(), which calls qdisc_restart(). We are not allowed
381      // to call qdisc_restart() ourselves, outside of net_bh().
382 -    if (is_polling && !busy && _dev->qdisc->q.qlen) {
383 +    if (is_polling && !busy && _dev->_tx[0].qdisc->q.qlen) {
384         _dev->tx_eob(_dev);
385         netif_wake_queue(_dev);
386      }
387 @@ -349,8 +351,8 @@
388  # if HAVE_NETIF_TX_LOCK
389      netif_tx_unlock_bh(_dev);
390  # else
391 -    _dev->xmit_lock_owner = -1;
392 -    spin_unlock(&_dev->xmit_lock);
393 +    _dev->_tx[0].xmit_lock_owner = -1;
394 +    spin_unlock(&_dev->_tx[0]._xmit_lock);
395      local_bh_enable();
396  # endif
397  #endif
398 --- click-1.6.0-27/elements/standard/addressinfo.cc.orig        2007-09-12 02:14:04.000000000 -0400
399 +++ click-1.6.0-27/elements/standard/addressinfo.cc     2009-01-21 13:08:40.000000000 -0500
400 @@ -272,7 +272,7 @@
401      // if it's a device name, return a primary IP address
402  #if CLICK_LINUXMODULE
403  # if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 4, 0)
404 -    net_device *dev = dev_get_by_name(s.c_str());
405 +    net_device *dev = dev_get_by_name(&init_net,s.c_str());
406      if (dev) {
407         bool found = false;
408         in_device *in_dev = in_dev_get(dev);
409 @@ -383,7 +383,7 @@
410  # if LINUX_VERSION_CODE < KERNEL_VERSION(2, 4, 0)
411  #  define dev_put(dev) /* nada */
412  # endif
413 -    net_device *dev = dev_get_by_name(s.c_str());
414 +    net_device *dev = dev_get_by_name(&init_net,s.c_str());
415      if (dev && (dev->type == ARPHRD_ETHER || dev->type == ARPHRD_80211)) {
416         memcpy(store, dev->dev_addr, 6);
417         dev_put(dev);
418 --- click-1.6.0-27/configure.in.orig    2007-09-18 16:40:01.000000000 -0400
419 +++ click-1.6.0-27/configure.in 2009-01-27 12:14:10.000000000 -0500
420 @@ -12,6 +12,7 @@
421  dnl legally binding.
422  
423  AC_INIT(click, 1.6.0)
424 +set +x +v
425  AC_PREREQ(2.50)
426  AC_CONFIG_HEADER(include/click/config.h:config.h.in include/click/pathvars.h:pathvars.h.in include/click/config-bsdmodule.h:config-bsdmodule.h.in include/click/config-linuxmodule.h:config-linuxmodule.h.in include/click/config-ns.h:config-ns.h.in include/click/config-userlevel.h:config-userlevel.h.in)
427  
428 @@ -848,8 +849,7 @@
429      SAVE_CXX="$CXX"
430      CXX="$KERNEL_CXX"
431      saveflags="$CPPFLAGS"
432 -    CPPFLAGS="$saveflags -D__KERNEL__ -I$linuxdir/include $LINUX_CFLAGS"
433 -
434 +    CPPFLAGS="$saveflags -D__KERNEL__ -I$linuxdir/include -I$linuxdir/include/asm/mach-default $LINUX_CFLAGS" 
435  
436      # CLICK_LINUXMODULE_PROLOGUE()
437      AC_DEFUN([CLICK_LINUXMODULE_PROLOGUE], [[#if HAVE_LINUXMODULE_2_6