[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7BV8MFV2DP05BHHW6VT3Q1G":3,"skill-same:01M7BV8MFV2DP05BHHW6VT3Q1G":45},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":27,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7BV8MFV2DP05BHHW6VT3Q1G","syzlang-ioctl-basics",null,"Syzkaller syzlang syntax basics for describing ioctl syscalls","linyouxue\u002Fskill-repair-benchmark","linyouxue","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F216151464?v=4","01M7BJEVCXKD74KH6FG9CBVSQB","林宥学","01M7BJEVE02NP217V93BKZFC0J",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FMMG2Skill-GPT52-Gold31-20260923\u002Ftasks\u002Fsyzkaller-ppdev-syzlang\u002Frepaired_run\u002Finputs\u002Fskills\u002Fsyzlang-ioctl-basics\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: syzlang-ioctl-basics\ndescription: Syzkaller syzlang syntax basics for describing ioctl syscalls\n---\n\n# Syzlang Ioctl Basics\nSyzkaller's description language (syzlang) describes syscalls for fuzzing.\nDescription files are located at `\u002Fopt\u002Fsyzkaller\u002Fsys\u002Flinux\u002F*.txt`.\n## Syscall Syntax\nBasic form:\n```\nsyscall_name(arg1 type1, arg2 type2, ...) return_type\n```\nSpecialized syscalls use `$` suffix:\n```\nsyscall$VARIANT(args...) return_type\n```\n## Common Type Patterns\n| Pattern | Meaning |\n|---------|---------|\n| `const[VALUE]` | Fixed constant value |\n| `flags[flag_set, type]` | Bitfield from flag set |\n| `ptr[direction, type]` | Pointer (in, out, inout) |\n| `intptr[min:max]` | Integer pointer with range |\n| `int8`, `int16`, `int32` | Fixed-size integers |\n| `int16be`, `int32be` | Big-endian integers |\n| `array[type]` | Variable-length array |\n| `array[type, count]` | Fixed-length array |\n## Ioctl Patterns\nFor ioctls with output:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[out, int32])\n```\nFor ioctls with input:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, struct_type])\n```\nFor simple value ioctls:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg intptr[0:1])\n```\nFor ioctls using ifreq structure (from socket.txt):\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, ifreq_t[flags[flag_set, int16]]])\n```\n## Struct Definitions\nStructs must have typed fields:\n```\nstruct_name {\n    field1    type1\n    field2    type2\n}\n```\n## Flag Sets\nDefine reusable flag sets:\n```\nflag_set_name = FLAG1, FLAG2, FLAG3\n```\nThen use with `flags[flag_set_name, int16]`.\n## Resources\nFile descriptor resources:\n```\nresource resource_name[fd]\n```\n## Read\u002FWrite Syscalls\nFor specialized read\u002Fwrite:\n```\nread$suffix(fd fd_type, buf ptr[out, buffer_type], count len[buf])\nwrite$suffix(fd fd_type, buf ptr[in, buffer_type], count len[buf])\n```\n## Tips\n1. Check existing files for patterns (e.g., `sys\u002Flinux\u002Fsocket.txt`)\n2. Run `make descriptions` after edits to validate syntax\n3. Some constants only exist on certain architectures\n4. Use `ptr[in, ...]` for input, `ptr[out, ...]` for output\n## Tutorial (source of truth)\n(tutorial body omitted per config)\n","# Syzlang Ioctl Basics\nSyzkaller's description language (syzlang) describes syscalls for fuzzing.\nDescription files are located at `\u002Fopt\u002Fsyzkaller\u002Fsys\u002Flinux\u002F*.txt`.\n## Syscall Syntax\nBasic form:\n```\nsyscall_name(arg1 type1, arg2 type2, ...) return_type\n```\nSpecialized syscalls use `$` suffix:\n```\nsyscall$VARIANT(args...) return_type\n```\n## Common Type Patterns\n| Pattern | Meaning |\n|---------|---------|\n| `const[VALUE]` | Fixed constant value |\n| `flags[flag_set, type]` | Bitfield from flag set |\n| `ptr[direction, type]` | Pointer (in, out, inout) |\n| `intptr[min:max]` | Integer pointer with range |\n| `int8`, `int16`, `int32` | Fixed-size integers |\n| `int16be`, `int32be` | Big-endian integers |\n| `array[type]` | Variable-length array |\n| `array[type, count]` | Fixed-length array |\n## Ioctl Patterns\nFor ioctls with output:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[out, int32])\n```\nFor ioctls with input:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, struct_type])\n```\nFor simple value ioctls:\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg intptr[0:1])\n```\nFor ioctls using ifreq structure (from socket.txt):\n```\nioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, ifreq_t[flags[flag_set, int16]]])\n```\n## Struct Definitions\nStructs must have typed fields:\n```\nstruct_name {\n    field1    type1\n    field2    type2\n}\n```\n## Flag Sets\nDefine reusable flag sets:\n```\nflag_set_name = FLAG1, FLAG2, FLAG3\n```\nThen use with `flags[flag_set_name, int16]`.\n## Resources\nFile descriptor resources:\n```\nresource resource_name[fd]\n```\n## Read\u002FWrite Syscalls\nFor specialized read\u002Fwrite:\n```\nread$suffix(fd fd_type, buf ptr[out, buffer_type], count len[buf])\nwrite$suffix(fd fd_type, buf ptr[in, buffer_type], count len[buf])\n```\n## Tips\n1. Check existing files for patterns (e.g., `sys\u002Flinux\u002Fsocket.txt`)\n2. Run `make descriptions` after edits to validate syntax\n3. Some constants only exist on certain architectures\n4. Use `ptr[in, ...]` for input, `ptr[out, ...]` for output\n## Tutorial (source of truth)\n(tutorial body omitted per config)\n",{"name":5,"description":7},"main","cdcb6d230f3b15c3c33f8a2bdd16439f43602cbe","evaluation\u002Fresults\u002FMMG2Skill-GPT52-Gold31-20260923\u002Ftasks\u002Fsyzkaller-ppdev-syzlang\u002Frepaired_run\u002Finputs\u002Fskills\u002Fsyzlang-ioctl-basics",1,"https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark","https:\u002F\u002Fgithub.com\u002Flinyouxue","2026-11-14 20:28:35",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add linyouxue\u002Fskill-repair-benchmark --skill syzlang-ioctl-basics",{"tool":37,"command":38},"bunx","bunx skills add linyouxue\u002Fskill-repair-benchmark --skill syzlang-ioctl-basics",{"tool":40,"command":41},"pnpm","pnpm dlx skills add linyouxue\u002Fskill-repair-benchmark --skill syzlang-ioctl-basics","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fevaluation\u002Fresults\u002FMMG2Skill-GPT52-Gold31-20260923\u002Ftasks\u002Fsyzkaller-ppdev-syzlang\u002Frepaired_run\u002Finputs\u002Fskills\u002Fsyzlang-ioctl-basics\u002FSKILL.md",true,[],[46,53,60,67,72,77],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":19},"01M7E1HGVRY73NBJ022CJG13X6","video-frame-extraction","Extract frames from video files and save them as images using OpenCV","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":19},"01M7E1HAG5R7CJ9C8NYJS771MB","openai-vision","Analyze images and multi-frame sequences using OpenAI GPT vision models","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":19},"01M7E1H7DADKB6QBWKC2KQ63SZ","image-ocr","Extract text content from images using Tesseract OCR via Python, including structured field extraction from receipts and forms","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_03\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[],{"skillNo":68,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":19},"01M7E1H0WBNT43TENGQY7AVZHD","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fvideo-frame-extraction\u002FSKILL.md",[],[],{"skillNo":73,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":19},"01M7E1GTC7D4N4Q2EF03875J9E","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fopenai-vision\u002FSKILL.md",[],[],{"skillNo":78,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":81,"publishedAt":19},"01M7E1GQ92CWFMGH53KSSE4WER","https:\u002F\u002Fgithub.com\u002Flinyouxue\u002Fskill-repair-benchmark\u002Fblob\u002Fmain\u002Fjpg-ocr-stat\u002Fresult\u002Fskilltta-claude4.7\u002Fgroup_03\u002Frun_02\u002Finputs\u002Fskills\u002Fimage-ocr\u002FSKILL.md",[],[]]