LinuxÄÚºËÉ豸ģÐÍ(4)
ÒëÕߣº¹ùÉÙ±¯
2009/12/02
ÔÎÄ£ºlinux/Documentation/driver-model/class.txt
É豸Àà
½éÉÜ
~~~~
Ò»¸öÉ豸ÀàÃèÊöÁËÒ»ÀàµÄÉ豸£¬ÀýÈçÓïÒôÉ豸»òÕßÍøÂçÉ豸¡£ÏÂÃæÊÇÒѶ¨ÒåµÄÉ豸Àà:
<Insert List of Device Classes Here>
ÿ¸öÉ豸ÀඨÒåÁËÒ»Ì×Óï·¨ºÍÉ豸×ñѵıà³Ì½Ó¿Ú¡£É豸Çý¶¯¾ÍÊÇÎªÌØ¶¨×ÜÏßÉϵÄ
ÌØ¶¨É豸¶øÍê³ÉµÄÕâÌ×±à³Ì½Ó¿ÚʵÏÖ¡£
¶ÔÓÚÒ»¸öÉ豸פ×ãÔÚÄĸö×ÜÏßÉÏ£¬É豸ÀàÊDz»¿ÉÖªµÄ¡£
±à³Ì½Ó¿Ú
~~~~~~~~
É豸ÀàµÄÊý¾Ý½á¹¹ÈçÏ£º
typedef int (*devclass_add)(struct device *);
typedef void (*devclass_remove)(struct device *);
struct device_class {
char * name;
rwlock_t lock;
u32 devnum;
struct list_head node;
struct list_head drivers;
struct list_head intf_list;
struct driver_dir_entry dir;
struct driver_dir_entry device_dir;
struct driver_dir_entry driver_dir;
devclass_add add_device;
devclass_remove remove_device;
};
Ò»¸öµäÐ͵ÄÉ豸ÀàÀàËÆÈç϶¨Ò壺
struct device_class input_devclass = {
.name = "input",
.add_device = input_add_device,
.remove_device = input_remove_device,
};
ÿ¸öÉ豸ÀàÊý¾Ý½á¹¹·ÅÔÚÒ»¸öÍ·ÎļþÀïµ¼³ö£¬Òò´ËËüÄܹ»±»Çý¶¯£¬À©Õ¹³ÌÐòºÍ½Ó¿Ú
ʹÓá£
ÄÚºËÀïÉ豸ÀàµÄ×¢²áºÍ×¢Ïúº¯Êý½Ó¿ÚÈçÏÂËùʾ£º
int devclass_register(struct device_class * cls);
void devclass_unregister(struct device_class * cls);
É豸
~~~~
µ±É豸°ó¶¨µ½Çý¶¯ÉÏ£¬Ëü¾Í»á±»Ìí¼Ó
Ïà¹ØÎĵµ£º
£¨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·þÎñºÍËüÃǵÄÌØÕ÷µÄ·½·¨¡£ ......
wcÃüÁî
¡¡¡¡wcÃüÁîµÄ¹¦ÄÜΪͳ¼ÆÖ¸¶¨ÎļþÖеÄ×Ö½ÚÊý¡¢×ÖÊý¡¢ÐÐÊý, ²¢½«Í³¼Æ½á¹ûÏÔʾÊä³ö¡£
¡¡¡¡Óï·¨£ºwc [Ñ¡Ïî] Îļþ…
¡¡¡¡ËµÃ÷£º¸ÃÃüÁîͳ¼Æ¸ø¶¨ÎļþÖеÄ×Ö½ÚÊý¡¢×ÖÊý¡¢ÐÐÊý¡£Èç¹ûûÓиø³öÎļþÃû£¬
Ôò´Ó±ê×¼ÊäÈë¶ÁÈ¡¡£wcͬʱҲ¸ø³öËùÓÐÖ¸¶¨ÎļþµÄ×Üͳ¼ÆÊý¡£×ÖÊÇÓɿոñ×Ö·ûÇø·Ö¿ªµÄ×î´ó×Ö·û´®¡£
¡¡¡¡¸ÃÃüÁî¸÷Ñ¡Ïî ......
#include <sys/types.h>
#include <unistd.h>
#include <stdio.h>
int main()
{
pid_t pid;
static int n = 0;
printf("fork!\n"); /*printf("fork!")*/
switch (pid = fork())
{
&nbs ......
µ½½ñÈÕ£¬ÔÚandroidƽ̨Éϵ÷ÊÔÉùÒôµÄ·½ÃæÖÕÓÚÓÐÁ˽øÕ¹£¬ÔÀ´ÊÇÐèÒª¸ÄÒ»¸öÅäÖÃÎļþ£¬Ä¿Ç°Ö»Êǽâ¾öÁËÎÊÌ⣬¾ßÌåÔÒòÒÔºóÔÙ·ÖÎö¡£Ó²¼þƽ̨ÊÇ6410+WM9714£¬Èí¼þƽ̨ÊÇANDROID¡£ÏÖÔÚÓÉÓÚandroidϵͳÆô¶¯Ê±£¬¼ÓÔØÒôƵ·þÎñ²»³É¹¦£¬´¦ÓÚÒ»¸öËÀÑ»·ÖУ¬ÀÏÍ£Ôڵǽ½çÃæ¡£´Ëʱ´òÓ¡µÄLogcatÐÅÏ¢ÈçÏ£º
......