Gleb Smirnoff 547d34736b Major overhaul.
List of functional changes:
   - Make a single device per single node with a single hook.
     This gives us parrallelizm, which can't be achieved on a single
     node with many devices/hooks. This also gives us flexibility - we
     can play with a particular device node, not affecting others.
   - Remove read queue as it is. Use struct ifqueue instead. This change
     removes a lot of extra memcpy()ing, m_devget()ting and m_copymem()ming.
     In ng_device_receivedata() we enqueue an mbuf and wake readers.
     In ngdread() we take one mbuf from qeueue and uiomove() it to
     userspace. If no mbuf is present we optionally block. [1]
   - In ngdwrite() we create an mbuf from uio using m_uiotombuf().
     This is faster then uiomove() into buffer, and then m_copydata(),
     and this is much better than huge m_pullup().
   - Perform locking of device
   - Perform locking of connection list.
   - Clear out _rcvmsg method, since it does nothing good yet.
   - Implement NGM_DEVICE_GET_DEVNAME message.
   - #if 0 ioctl method, while nothing is done here yet.
   - Return immediately from ngdwrite() if uio_resid == 0.

 List of tidyness changes:
   - Introduce device2priv(), to remove cut'n'paste.
   - Use MALLOC/FREE, instead of malloc/free.
   - Use unit2minor().
   - Use UID_ROOT/GID_WHEEL instead of 0/0.
   - Define NGD_DEVICE_DEVNAME, use it.
   - Use more nice macros for debugging. [2]
   - Return Exxx, not -1.

 style(9) changes:
   - No "#endif" after short block.
   - Break long lines.
   - Remove extra spaces, add needed spaces.

[1] Obtained from:      if_tun.c
[2] Obtained from:      ng_pppoe.c
Reviewed by:		marks
Approved by:		julian (mentor)
MFC after:		1 month
2004-10-18 20:13:57 +00:00
..
2004-08-30 03:35:17 +00:00
2004-08-22 15:14:44 +00:00
2003-03-25 05:19:18 +00:00
2004-03-18 09:45:17 +00:00
2004-04-22 02:22:18 +00:00
2003-06-23 17:02:43 +00:00
2003-06-30 05:25:36 +00:00
2004-09-08 08:44:14 +00:00
2004-08-16 15:24:03 +00:00
2002-10-04 20:35:02 +00:00
2004-09-04 03:32:15 +00:00
2004-10-13 05:41:09 +00:00
2004-10-13 05:41:09 +00:00
2004-06-09 08:27:05 +00:00
2004-07-12 13:13:17 +00:00
2002-11-06 13:41:40 +00:00
2004-03-15 11:27:39 +00:00
2004-01-11 07:01:30 +00:00
2003-03-29 13:40:41 +00:00
2002-08-12 15:27:17 +00:00
2004-06-09 08:27:05 +00:00
2002-10-31 19:39:23 +00:00
2002-04-16 20:40:06 +00:00
2004-10-18 20:13:57 +00:00
2003-03-05 08:16:29 +00:00
2004-09-01 07:39:12 +00:00
2003-08-30 08:01:05 +00:00
2003-03-05 08:16:29 +00:00
2003-07-21 21:47:47 +00:00
2003-04-13 06:27:13 +00:00
2002-11-05 09:37:32 +00:00
2004-07-16 04:00:08 +00:00
2003-03-29 10:01:03 +00:00
2002-06-17 05:40:49 +00:00
2004-01-19 12:36:08 +00:00
2002-11-06 13:41:40 +00:00
2002-10-13 18:44:26 +00:00
2004-07-12 21:59:06 +00:00
2004-06-09 21:52:12 +00:00