Ò׽ؽØͼÈí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

[ת]linux Äں˷ÖÎöÖ®list_head

linux Äں˷ÖÎöÖ®list_head
 
 
±¾ÎÄÏêϸ·ÖÎöÁË 2.6.x ÄÚºËÖÐÁ´±í½á¹¹µÄʵÏÖ£¬²¢Í¨¹ýʵÀý¶Ôÿ¸öÁ´±í²Ù×÷½Ó¿Ú½øÐÐÁËÏ꾡µÄ½²½â¡£
Ò»¡¢ Á´±íÊý¾Ý½á¹¹¼ò½é
Á´±íÊÇÒ»ÖÖ³£ÓõÄ×éÖ¯ÓÐÐòÊý¾ÝµÄÊý¾Ý½á¹¹£¬Ëüͨ¹ýÖ¸Õ뽫һϵÁÐÊý¾Ý½ÚµãÁ¬½Ó³ÉÒ»ÌõÊý¾ÝÁ´£¬ÊÇÏßÐÔ±íµÄÒ»ÖÖÖØҪʵÏÖ·½Ê½¡£Ïà¶ÔÓÚÊý×飬Á´±í¾ßÓиüºÃµÄ¶¯Ì¬ÐÔ£¬½¨Á¢Á´±íʱÎÞÐèÔ¤ÏÈÖªµÀÊý¾Ý×ÜÁ¿£¬¿ÉÒÔËæ»ú·ÖÅä¿Õ¼ä£¬¿ÉÒÔ¸ßЧµØÔÚÁ´±íÖеÄÈÎÒâλÖÃʵʱ²åÈë»òɾ³ýÊý¾Ý¡£Á´±íµÄ¿ªÏúÖ÷ÒªÊÇ·ÃÎʵÄ˳ÐòÐÔºÍ×éÖ¯Á´µÄ¿Õ¼äËðʧ¡£
ͨ³£Á´±íÊý¾Ý½á¹¹ÖÁÉÙÓ¦°üº¬Á½¸öÓò£ºÊý¾ÝÓòºÍÖ¸ÕëÓò£¬Êý¾ÝÓòÓÃÓÚ´æ´¢Êý¾Ý£¬Ö¸ÕëÓòÓÃÓÚ½¨Á¢ÓëÏÂÒ»¸ö½ÚµãµÄÁªÏµ¡£°´ÕÕÖ¸ÕëÓòµÄ×éÖ¯ÒÔ¼°¸÷¸ö½ÚµãÖ®¼äµÄÁªÏµÐÎʽ£¬Á´±íÓÖ¿ÉÒÔ·ÖΪµ¥Á´±í¡¢Ë«Á´±í¡¢Ñ­»·Á´±íµÈ¶àÖÖÀàÐÍ£¬ÏÂÃæ·Ö±ð¸ø³öÕ⼸Àà³£¼ûÁ´±íÀàÐ͵ÄʾÒâͼ£º
1£® µ¥Á´±í
ͼ1 µ¥Á´±í
 
µ¥Á´±íÊÇ×î¼òµ¥µÄÒ»ÀàÁ´±í£¬ËüµÄÌصãÊǽöÓÐÒ»¸öÖ¸ÕëÓòÖ¸Ïòºó¼Ì½Úµã£¨next£©£¬Òò´Ë£¬¶Ôµ¥Á´±íµÄ±éÀúÖ»ÄÜ´ÓÍ·ÖÁβ£¨Í¨³£ÊÇNULL¿ÕÖ¸Õ룩˳Ðò½øÐС£
2£® Ë«Á´±í
ͼ2 Ë«Á´±í
 
ͨ¹ýÉè¼ÆÇ°ÇýºÍºó¼ÌÁ½¸öÖ¸ÕëÓò£¬Ë«Á´±í¿ÉÒÔ´ÓÁ½¸ö·½Ïò±éÀú£¬ÕâÊÇËüÇø±ðÓÚµ¥Á´±íµÄµØ·½¡£Èç¹û´òÂÒÇ°Çý¡¢ºó¼ÌµÄÒÀÀµ¹Øϵ£¬¾Í¿ÉÒÔ¹¹³É"¶þ²æÊ÷"£»Èç¹ûÔÙÈÃÊ×½ÚµãµÄÇ°ÇýÖ¸ÏòÁ´±íβ½Úµã¡¢Î²½ÚµãµÄºó¼ÌÖ¸ÏòÊ׽ڵ㣨Èçͼ2ÖÐÐéÏß²¿·Ö£©£¬¾Í¹¹³ÉÁËÑ­»·Á´±í£»Èç¹ûÉè¼Æ¸ü¶àµÄÖ¸ÕëÓò£¬¾Í¿ÉÒÔ¹¹³É¸÷ÖÖ¸´ÔÓµÄÊ÷×´Êý¾Ý½á¹¹¡£
3£® Ñ­»·Á´±í
Ñ­»·Á´±íµÄÌصãÊÇβ½ÚµãµÄºó¼ÌÖ¸ÏòÊ׽ڵ㡣ǰÃæÒѾ­¸ø³öÁËË«Ñ­»·Á´±íµÄʾÒâͼ£¬ËüµÄÌصãÊÇ´ÓÈÎÒâÒ»¸ö½Úµã³ö·¢£¬ÑØÁ½¸ö·½ÏòµÄÈκÎÒ»¸ö£¬¶¼ÄÜÕÒµ½Á´±íÖеÄÈÎÒâÒ»¸öÊý¾Ý¡£Èç¹ûÈ¥µôÇ°ÇýÖ¸Õ룬¾ÍÊǵ¥Ñ­»·Á´±í¡£
ÔÚLinuxÄÚºËÖÐʹÓÃÁË´óÁ¿µÄÁ´±í½á¹¹À´×éÖ¯Êý¾Ý£¬°üÀ¨É豸ÁбíÒÔ¼°¸÷ÖÖ¹¦ÄÜÄ£¿éÖеÄÊý¾Ý×éÖ¯¡£ÕâЩÁ´±í´ó¶à²ÉÓÃÔÚ[include/linux/list.h]ʵÏÖµÄÒ»¸öÏ൱¾«²ÊµÄÁ´±íÊý¾Ý½á¹¹¡£±¾Îĵĺó¼Ì²¿·Ö¾Í½«Í¨¹ýʾÀýÏêϸ½éÉÜÕâÒ»Êý¾Ý½á¹¹µÄ×éÖ¯ºÍʹÓá£
¶þ¡¢ Linux 2.6ÄÚºËÁ´±íÊý¾Ý½á¹¹µÄʵÏÖ
¾¡¹ÜÕâÀïʹÓÃ2.6ÄÚºË×÷Ϊ½²½âµÄ»ù´¡£¬µ«Êµ¼ÊÉÏ2.4ÄÚºËÖеÄÁ´±í½á¹¹ºÍ2.6²¢Ã»ÓÐʲôÇø±ð¡£²»Í¬Ö®´¦ÔÚÓÚ2.6À©³äÁËÁ½ÖÖÁ´±íÊý¾Ý½á¹¹£ºÁ´±íµÄ¶Á¿½±´¸üУ¨rcu£©ºÍHASHÁ´±í£¨hlist£©¡£ÕâÁ½ÖÖÀ©Õ¹¶¼ÊÇ»ùÓÚ×î»ù±¾µÄlist½á¹¹£¬Òò´Ë£¬±¾ÎÄÖ÷Òª½éÉÜ»ù±¾Á´±í½á¹¹£¬È»ºóÔÙ¼òÒª½éÉÜÒ»ÏÂrcuºÍhlist¡£
Á´±íÊý¾Ý½á¹¹µÄ¶¨ÒåºÜ¼òµ¥£¨½ÚÑ¡×Ô[include/linux/list.h]£¬ÒÔÏÂËùÓдúÂ룬³ý·Ç¼ÓÒÔ˵Ã÷£¬ÆäÓà¾


Ïà¹ØÎĵµ£º

ʵսLinux Bluetooth±à³Ì£¨Èý£© HCI²ã±à³Ì

1. HCI²ãЭÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI)  ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈЭÒé ......

ʵսLinux Bluetooth±à³Ì£¨ËÄ£© L2CAP²ã±à³Ì

£¨L2CAPЭÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPЭÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼­Á¬½Ó¿ØÖƺÍÊÊÅäЭÒé (L2CAP) ΪÉϲãЭÒéÌṩÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àЭÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãЭÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......

ʵսLinux Bluetooth±à³Ì(Áù) L2CAP±à³ÌʵÀý

ÀýÒ»£º·¢ËÍSignaling Packet£º
Signaling CommandÊÇ2¸öBluetoothʵÌåÖ®¼äµÄL2CAP²ãÃüÁî´«Êä¡£ËùÒÔµÃSignaling CommandʹÓÃCID 0x0001.
¶à¸öCommand¿ÉÒÔÔÚÒ»¸öC-frame£¨control frame£©Öз¢ËÍ¡£
 Èç¹ûÒªÖ±½Ó·¢ËÍSignaling Command.ÐèÒª½¨Á¢SOCK_RAWÀàÐ͵ÄL2CAPÁ¬½ÓSocket¡£ÕâÑù²ÅÓлú»á×Ô¼ºÌî³äCommand Code£¬Identi ......

ʵսLinux Bluetooth±à³Ì (Æß) SDPЭÒé

Service Discovery Protocol(SDP)ÌṩһÖÖÄÜÁ¦£¬ÈÃÓ¦ÓóÌÐòÓз½·¨·¢ÏÖÄÄÖÖ·þÎñ¿ÉÓÃÒÔ¼°ÕâÖÖ·þÎñµÄÌØÐÔ¡£
·þÎñ·¢ÏÖЭÒé(SDP»òBluetooth SDP)ÔÚÀ¶ÑÀЭÒéÕ»ÖжÔÀ¶ÑÀ»·¾³ÖеÄÓ¦ÓóÌÐòÓÐÌØÊâµÄº¬Ò⣬·¢ÏÖÄĸö·þÎñÊÇ¿ÉÓõĺÍÈ·¶¨ÕâЩ¿ÉÓ÷þÎñµÄÌØÕ÷¡£SDP¶¨ÒåÁËbluetooth client·¢ÏÖ¿ÉÓÃbluetooth server·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......

linuxĿ¼¼Ü¹¹

linuxĿ¼¼Ü¹¹
/   ¸ùĿ¼
/bin    ³£ÓõÄÃüÁî binary file µÄÄ¿錄
/boot   ´æ·ÅϵͳÆô¶¯Ê±±ØÐë¶ÁÈ¡µÄµµ°¸£¬°üÀ¨ºËÐÄ (kernel) ÔÚÄÚ
     /boot/grub/menu.lst   GRUBÉèÖÃ
     /boot/vmlinuz   ÄÚºË
 & ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØͼ | ¸ÓICP±¸09004571ºÅ