LinuxÖеȴý¶ÓÁлúÖÆ·ÖÎö
LinuxÖеȴý¶ÓÁлúÖÆ·ÖÎö
ʲôÊǵȴý¶ÓÁУ¿
ÔÚÈí¼þ¿ª·¢ÖÐÈÎÎñ¾³£ÓÉÓÚijÖÖÌõ¼þûÓеõ½Âú×ã¶ø²»µÃ²»½øÈë˯Ãß״̬£¬È»ºóµÈ´ýÌõ¼þµÃµ½Âú×ãµÄʱºòÔÙ¼ÌÐøÔËÐУ¬½øÈëÔËÐÐ״̬¡£ÕâÖÖÐèÇóÐèÒªµÈ´ý¶ÓÁлúÖÆµÄÖ§³Ö¡£LinuxÖÐÌṩÁ˵ȴý¶ÓÁеĻúÖÆ£¬¸Ã»úÖÆÔÚÄÚºËÖÐÓ¦Óúܹ㷺¡£
ÔÚLinuxÄÚºËÖÐʹÓõȴý¶ÓÁеĹý³ÌºÜ¼òµ¥£¬Ê×Ïȶ¨ÒåÒ»¸öwait_queue_head£¬È»ºóÈç¹ûÒ»¸ötaskÏëµÈ´ýijÖÖʼþ£¬ÄÇôµ÷ÓÃwait_event£¨µÈ´ý¶ÓÁУ¬Ê¼þ£©¾Í¿ÉÒÔÁË¡£
LinuxÖеȴý¶ÓÁеÄʵÏÖ
µÈ´ý¶ÓÁÐÓ¦Óù㷺£¬µ«ÊÇÄÚºËʵÏÖÈ´Ê®·Ö¼òµ¥¡£ÆäÉæ¼°µ½Á½¸ö±È½ÏÖØÒªµÄÊý¾Ý½á¹¹£º
<!--[if !supportLists]-->1) <!--[endif]-->__wait_queue_head£¬¸Ã½á¹¹ÃèÊöÁ˵ȴý¶ÓÁеÄÁ´Í·£¬Æä°üº¬Ò»¸öÁ´±íºÍÒ»¸öÔ×ÓËø£¬½á¹¹¶¨ÒåÈçÏ£º
struct __wait_queue_head {
spinlock_t lock; /* ±£»¤µÈ´ý¶ÓÁеÄÔ×ÓËø */
struct list_head task_list; /* µÈ´ý¶ÓÁÐ */
};
<!--[if !supportLists]-->2) <!--[endif]-->__wait_queue£¬¸Ã½á¹¹ÊǶÔÒ»¸öµÈ´ýÈÎÎñµÄ³éÏó¡£Ã¿¸öµÈ´ýÈÎÎñ¶¼»á³éÏó³ÉÒ»¸öwait_queue£¬²¢ÇÒ¹ÒÔØµ½wait_queue_headÉÏ¡£¸Ã½á¹¹¶¨ÒåÈçÏ£º
struct __wait_queue {
unsigned int flags;
void *private; /* ͨ³£Ö¸Ïòµ±Ç°ÈÎÎñ¿ØÖÆ¿é */
/* ÈÎÎñ»½ÐѲÙ×÷·½·¨£¬¸Ã·½·¨ÔÚÄÚºËÖÐÌṩ£¬Í¨³£Îªautoremove_wake_function */
wait_queue_func_t func; &nb
Ïà¹ØÎĵµ£º
1. HCI²ãÐÒé¸ÅÊö£º
HCIÌṩһÌ×ͳһµÄ·½·¨À´·ÃÎÊBluetoothµ×²ã¡£ÈçͼËùʾ£º
´ÓͼÉÏ¿ÉÒÔ¿´³ö£¬Host Controller Interface(HCI) ¾ÍÊÇÓÃÀ´¹µÍ¨HostºÍModule¡£Hostͨ³£¾ÍÊÇPC£¬ ModuleÔòÊÇÒÔ¸÷ÖÖÎïÀíÁ¬½ÓÐÎʽ£¨USB,serial,pc-cardµÈ£©Á¬½Óµ½PCÉϵÄbluetooth Dongle¡£
ÔÚHostÕâÒ»¶Ë£ºapplication,SDP,L2capµÈÐÒé ......
£¨L2CAPÐÒé¼ò½é£¬L2CAPÔÚBlueZÖеÄʵÏÖÒÔ¼°L2CAP±à³Ì½Ó¿Ú£©
Ò»£ºL2CAPÐÒé¼ò½é£º
Logical Link Control and Adaptation Protocol(L2CAP)
Âß¼Á¬½Ó¿ØÖƺÍÊÊÅäÐÒé (L2CAP) ΪÉϲãÐÒéÌá¹©ÃæÏòÁ¬½ÓºÍÎÞÁ¬½ÓµÄÊý¾Ý·þÎñ£¬²¢Ìṩ¶àÐÒ鹦ÄܺͷָîÖØ×é²Ù×÷¡£L2CAP ³äÐíÉϲãÐÒéºÍÓ¦ÓÃÈí¼þ´«ÊäºÍ½ÓÊÕ×î´ó³¤¶ÈΪ 64K µÄ L2CAP Ê ......
µÚÒ»²½£º²Ã¼õÄÚºË
´ò¿ªÖÕ¶Ë£¬ÊäÈ룺cd /usr/src/linux2.4,È»ºóÊäÈëmake xconfig.ÏÖÔÚ±àÒëÄÚºËÕýʽ¿ªÊ¼ÁË
1.1 “code maturity level options”Ñ¡Ï´ú±í´úÂëµÄ³ÉÊìµÈ¼¶£¬ÒòΪÕâÊÇÒ»¸öÊÔÑéµÄ²¿·Ö£¬ÎÒÃDz»ÐèÒª£¬ËùÒԹرÕËü¡£
1.2 “Loadable module support”¿É¼ÓÔØÄ£¿éÖ§³Ö
¿É¼ÓÔØÄ£¿éÊÇÖ¸Äں˴ú ......
¸´ÖÆÎļþºÍĿ¼ÃüÁî cp
¸ñʽ£º cp [²ÎÊý] Ô´Îļþ»òĿ¼ Ä¿±êÎļþ»òĿ¼
˵Ã÷£º¸ÃÃüÁî°ÑÖ¸¶¨µÄÔ´Îļþ¸´ÖƵ½Ä¿±êÎļþ»ò°Ñ¶à¸öÔ´Îļþ¸´ÖƵ½Ä¿±êĿ¼ÖС£
³£ÓõIJÎÊý£º
- a ¸ÃÑ¡Ïîͨ³£ÔÚ¿½±´Ä¿Â¼Ê±Ê¹Óá£Ëü±£ÁôÁ´½Ó¡¢ÎļþÊôÐÔ£¬²¢µÝ¹éµØ¿½±´Ä¿Â¼£¬Æä×÷ÓõÈÓÚdpRÑ¡ÏîµÄ×éºÏ¡£
- d ¿½±´Ê±±£ÁôÁ´½Ó¡£
- f ɾ³ýÒѾ´æÔÚµÄÄ¿±ê ......
Ò»¡¢ ʲôÊÇϵͳµ÷ÓÃ
ÔÚLinuxµÄÊÀ½çÀÎÒÃǾ³£»áÓöµ½ÏµÍ³µ÷ÓÃÕâÒ»ÊõÓËùνϵͳµ÷Ó㬾ÍÊÇÄÚºËÌṩµÄ¡¢¹¦ÄÜÊ®·ÖÇ¿´óµÄһϵÁеĺ¯Êý¡£ÕâЩϵͳµ÷ÓÃÊÇÔÚÄÚºËÖÐʵÏֵģ¬ÔÙͨ¹ýÒ»¶¨µÄ·½Ê½°Ñϵͳµ÷ÓøøÓû§£¬Ò»°ã¶¼Í¨¹ýÃÅ(gate)ÏÝÈë(trap)ʵÏÖ¡£ÏµÍ³µ÷ÓÃÊÇÓû§³ÌÐòºÍÄں˽»»¥µÄ½Ó¿Ú¡£
¶þ¡¢ ϵͳµ÷ÓõÄ× ......