{"id":4967,"date":"2022-01-13T11:46:22","date_gmt":"2022-01-13T02:46:22","guid":{"rendered":"https:\/\/now0930.pe.kr\/wordpress\/?p=4967"},"modified":"2022-01-13T12:30:36","modified_gmt":"2022-01-13T03:30:36","slug":"linux-usb-driver-xbox3603","status":"publish","type":"post","link":"https:\/\/now0930.pe.kr\/wordpress\/linux-usb-driver-xbox3603\/","title":{"rendered":"linux usb driver xbox360(3)"},"content":{"rendered":"\n<h3 class=\"wp-block-heading\">IDA \uc0ac\uc6a9\ud558\uae30<\/h3>\n\n\n\n<p>\uace0\uc720\ud55c \ubc88\ud638\ub97c \ubd80\uc5ec\ud558\uae30 \uc704\ud558\uc5ec define_ida, ida_simple_get, ida_simple_remove \ud615\uc2dd\uc73c\ub85c \uc0ac\uc6a9\ud55c\ub2e4.<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"c\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">\/\/\uc0ac\uc6a9\ud560 \uad6c\uc870\uccb4 \uc120\uc5b8.\nstruct usb_xpad{\n        struct input_dev *dev;          \/* input device interface *\/\n        ...\n        int pad_nr;                     \/\/ order\n};\n...\nstatic DEFINE_IDA(xpad_pad_seq);\n\n\nstatic int xpad_led_probe(struct usb_xpad *xpad)\n{\n        \/\/ida \ud560\ub2f9\n        \/\/pad_nr\uc744 \uacc4\uc18d \uc99d\uac00..\n        \/\/led\uac00 \uba87\ubc88\uc5d0 \uc5f0\uacb0\ub418\uc5b4 \uc788\ub294\uc9c0 \uc54c \uc218 \uc788\uc74c.\n        \/\/0~0x8,000,000 - 1\uae4c\uc9c0 \uc99d\uac00\n        xpad->pad_nr = ida_simple_get(&amp;xpad_pad_seq, 0, 0, GFP_KERNEL);\n        if (xpad->pad_nr &lt; 0){\n                retval = xpad->pad_nr;\n                goto free_mem;\n        }\n\nfree_mem:\n        kfree(led);\n        return retval;\n}<\/pre>\n\n\n\n<p>xbox 360 \ud328\ub4dc\uac00 4\uac1c \ub7a8\ud504\ub97c \uac00\uc9c0\uace0 \uc788\ub2e4. \ud50c\ub808\uc774\uc5b4\uc5d0 \ub530\ub77c \ub7a8\ud504\ub97c \ub2ec\ub9ac \ucf1c\uc918\uc57c \ud558\ub294\ub370, xpad->pad_nr\uc744 ida \ubc88\ud638\ub97c \ubd80\uc5ec\ud558\uc5ec 4\ub85c \ub098\ub208 \ub098\uba38\uc9c0\uc5d0 2\ub97c \ub354\ud588\ub2e4. 5\ubc88\uc9f8 \ud328\ub4dc\ub97c \ubd99\uc5ec\ub3c4 \ubd88\uc744 \uac83 \uac19\uc9c0\ub9cc xpad_led5\uc774\ub7f0 \uc2dd\uc73c\ub85c \ucd94\uac00\ub420 \ub4ef \ud558\ub2e4. \ud50c\ub808\uc774\uc5b4 1\uacfc \uac19\uc740 \ub7a8\ud504\uac00 \ucf1c\uc9c8 \ub4ef \ud558\ub2e4.<\/p>\n\n\n\n<p>\uba54\ubaa8\ub9ac\uac00 \ubd80\uc871\ud558\uba74 ida\ub97c \ud560\ub2f9\ud558\uc9c0 \ubabb\ud55c\ub2e4. xpad.c\ub97c \ubcf4\uba74 \ub2e4\uc2dc \ud574\uc81c \ud558\ub3c4\ub85d \ud588\ub2e4.<\/p>\n\n\n\n<p>led+\uc22b\uc790\ub85c \ub4f1\ub85d\ud558\uc5ec usb_unregister\ub85c led \ub514\ubc14\uc774\uc2a4\ub97c \ud574\uc81c\ud558\uba74 \ub41c\ub2e4. \uc774\uc81c xbox \ucee8\ud2b8\ub864\ub7ec\ub97c \uc785\ub825\uc73c\ub85c \uc0ac\uc6a9\ud558\ub294 \ubc29\ubc95\uc73c\ub85c \ub118\uc5b4\uac00\ub3c4 \ub41c\ub2e4.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><a href=\"https:\/\/stackoverflow.com\/questions\/35338101\/what-does-define-ida-mean\">What does DEFINE_IDA mean?<\/a><\/li><li><a href=\"https:\/\/www.kernel.org\/doc\/htmldocs\/kernel-api\/API-ida-simple-get.html\">ida_simple_get<\/a><\/li><li><a href=\"https:\/\/lwn.net\/Articles\/103209\/\">lwn.nethttps:\/\/lwn.net\/Articles\/103209\/<\/a><\/li><li><a href=\"https:\/\/elixir.bootlin.com\/linux\/latest\/source\/include\/linux\/idr.h#L321\">idr.h<\/a><\/li><\/ul>\n","protected":false},"excerpt":{"rendered":"<p>IDA \uc0ac\uc6a9\ud558\uae30 \uace0\uc720\ud55c \ubc88\ud638\ub97c \ubd80\uc5ec\ud558\uae30 \uc704\ud558\uc5ec define_ida, ida_simple_get, ida_simple_remove \ud615\uc2dd\uc73c\ub85c \uc0ac\uc6a9\ud55c\ub2e4. xbox 360 \ud328\ub4dc\uac00 4\uac1c \ub7a8\ud504\ub97c \uac00\uc9c0\uace0 \uc788\ub2e4. \ud50c\ub808\uc774\uc5b4\uc5d0 \ub530\ub77c \ub7a8\ud504\ub97c \ub2ec\ub9ac \ucf1c\uc918\uc57c \ud558\ub294\ub370, xpad->pad_nr\uc744 ida \ubc88\ud638\ub97c \ubd80\uc5ec\ud558\uc5ec 4\ub85c \ub098\ub208 \ub098\uba38\uc9c0\uc5d0 2\ub97c \ub354\ud588\ub2e4. 5\ubc88\uc9f8 \ud328\ub4dc\ub97c \ubd99\uc5ec\ub3c4 \ubd88\uc744 \uac83 \uac19\uc9c0\ub9cc xpad_led5\uc774\ub7f0 \uc2dd\uc73c\ub85c \ucd94\uac00\ub420 \ub4ef \ud558\ub2e4. \ud50c\ub808\uc774\uc5b4 1\uacfc \uac19\uc740 \ub7a8\ud504\uac00 \ucf1c\uc9c8 \ub4ef \ud558\ub2e4. \uba54\ubaa8\ub9ac\uac00 \ubd80\uc871\ud558\uba74 ida\ub97c \ud560\ub2f9\ud558\uc9c0 [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[12],"tags":[775,949,1023,53,1022,950],"class_list":["post-4967","post","type-post","status-publish","format-standard","hentry","category-12","tag-c","tag-driver","tag-led","tag-linux","tag-skeleton","tag-usb"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4967","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/comments?post=4967"}],"version-history":[{"count":4,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4967\/revisions"}],"predecessor-version":[{"id":4977,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/posts\/4967\/revisions\/4977"}],"wp:attachment":[{"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/media?parent=4967"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/categories?post=4967"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/now0930.pe.kr\/wordpress\/wp-json\/wp\/v2\/tags?post=4967"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}