[Ê®ÔÂÍùÎô]——LinuxÄÚºËÖеÄlist.hdz̸
ΪʲôҪ½Ð×ö“Ê®ÔÂÍùÎô”ÄØ£¬ÊÇΪÁ˼ÍÄîÎÒµÄÔ²©¿Í£¬http://www.casual0402.cn¡£
²»ÖªµÀΪʲô£¬Í»È»ÏëÀ´Ò»¸öеĿªÊ¼——¶øÄǸö²©¿Í´æ»îÖÁ½ñ¸ÕºÃÊ®¸öÔ£¬Ò²ÓÐÊ®¸öÔÂÀïµÄÎĵµ¡£
Ê®ÔÂÍùÎô£¬×ÜÓÐһЩ¾õµÃÕä¹óµÄ£¬ËùÒÔ°áǨµ½ÕâÀïÀ´¡£
¶øÕâƪÎÄÕÂÊÇÔÚ09.04.10ÀïдµÄ¡£
ÖÕ¹éÊÇÒ»¼Ò̸֮¡£
Jason Lee
————————————–cut-line
/*-------------------------------
include/linux/list.h -2.6.29
*/
¸ÃÎļþ°üº¬£º
1#ifndef _LINUX_LIST_H
2#define _LINUX_LIST_H
3
4#include <linux/stddef.h>
5#include <linux/poison.h>
6#include <linux/prefetch.h>
7#include <asm/system.h>
Á´±íµÄ³õʼ»¯
19struct list_head {
20 struct list_head *next, *prev;
21};
22
23#define LIST_HEAD_INIT(name) { &(name), &(name) }
24
25#define LIST_HEAD(name) \
26 struct list_head name = LIST_HEAD_INIT(name)
27
28static inline void INIT_LIST_HEAD(struct list_head *list)
29{
30 list->next = list;
31 list->prev = list;
32}
19-21
Ðж¨ÒåÁËÒ»¸ölist_head
½á¹¹£¬Ö»ÓÐÁ½¸öÖ¸Ïòlist_head
½á¹¹µÄÖ¸Õ룬һ¸önext
£¬Ò»¸öprev
£¬×÷ÓÃÏÔ¶øÒ×¼û¡£
23
ÐеĺêLIST_HEAD_INIT(name)
Óë25
ÐеĺêLIST_HEAD(name)
×éºÏ½øÐÐÁ´±íµÄ³õʼ»¯£¬¼´next
ºÍprev
¶¼Ö¸Ïò×ÔÉí¡£
25
Ðеľ²Ì¬ÄÚÁªº¯ÊýINIT_LIST_HEAD(struct list_head *list)
ͬÑùÊÇÓÃÀ´³õʼ»¯Á´±í£¬Ð§¹ûͬÉÏÊöÒ»µã¡£GNU
쵀C
ÓïÑÔ¶ÔC
½øÐÐÁËÀ©³ä£¬²»ÔÙÊÇANSI C
£¬ËüÀïÃæÔöÌíÁ˺ܶàC++
µÄÌØÐÔ£¬ËùÒÔ¶ÔÄں˽øÐбàÒëÖ»ÄÜÑ¡ÓÃÏàÓ¦µÄGCC
¡£
INIT_LIST_HEAD
ÔÚÓеÄÎÄÏ×ÖÐÊÇÒÔºêµÄÐÎʽ³öÏÖ£º
#define INIT_LIST_HEAD(ptr) do { \
(ptr)->next = (ptr); (ptr)->prev = (ptr); \
} while (0)
Á´±íµÄ²åÈë
34/*
35 * Insert a new entry between two known consecutive entries.
36 *
37 * This is only for internal list manipulation where we know
38 * the prev/next entries already!
39 */
40#ifndef CONFIG_DEBUG_LIST
41static inline void __list_add(struct list_head *new,
42 struct list_head *prev,
43 struct list_head *next)
Ïà¹ØÎĵµ£º
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖÐÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀÐÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
Ò» ¡¢LinuxÎļþ½á¹¹
¡¡¡¡Îļþ½á¹¹ÊÇÎļþ´æ·ÅÔÚ´ÅÅ̵ȴæÖüÉ豸ÉϵÄ×éÖ¯·½·¨¡£Ö÷ÒªÌåÏÖÔÚ¶ÔÎļþºÍĿ¼µÄ×éÖ¯ÉÏ¡£
¡¡¡¡Ä¿Â¼ÌṩÁ˹ÜÀíÎļþµÄÒ»¸ö·½±ã¶øÓÐЧµÄ;¾¶¡£
¡¡¡¡LinuxʹÓñê×¼µÄĿ¼½á¹¹£¬ÔÚ°²×°µÄʱºò£¬°²×°³ÌÐò¾ÍÒѾΪÓû§´´½¨ÁËÎļþϵͳºÍÍêÕû¶ø¹Ì¶¨µÄĿ¼×é³ÉÐÎʽ£¬²¢Ö¸¶¨ÁËÿ¸öĿ¼µÄ×÷ÓúÍÆäÖеÄÎļþ ......
ϵͳµ÷ÓÃÊÇÓ¦ÓóÌÐòºÍ²Ù×÷ϵͳÄÚºËÖ®¼äµÄ¹¦Äܽӿڡ£ÆäÖ÷ҪĿµÄÊÇʹµÃÓû§
¿ÉÒÔʹÓòÙ×÷ϵͳÌṩµÄÓйØÉ豸¹ÜÀí¡¢ÊäÈë/ÊäÈëϵͳ¡¢ÎļþϵͳºÍ½ø³Ì¿ØÖÆ¡¢
ͨÐÅÒÔ¼°´æ´¢¹ÜÀíµÈ·½ÃæµÄ¹¦ÄÜ£¬¶ø²»±ØÁ˽âϵͳ³ÌÐòµÄÄÚ²¿½á¹¹ºÍÓйØÓ²¼þϸ
½Ú£¬´Ó¶øÆðµ½¼õÇáÓû§¸ºµ£ºÍ±£»¤ÏµÍ³ÒÔ¼°Ìá¸ß×ÊÔ´ÀûÓÃÂʵÄ×÷Óá£
¡¡¡¡Linux²Ù×÷ϵͳ ......
debian lenny , my favorite
a. vim /etc/sysctl.conf:
modify net.ipv4.ip_forward = 1
b. flush route table:
iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
c. open NAT services:
&nb ......