Skip to content
cccskills
FreePublished on GitHub

syzlang-ioctl-basics

Syzkaller syzlang syntax basics for describing ioctl syscalls

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md2.1 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Syzlang Ioctl Basics

Syzkaller's description language (syzlang) describes syscalls for fuzzing. Description files are located at /opt/syzkaller/sys/linux/*.txt.

Syscall Syntax

Basic form:

syscall_name(arg1 type1, arg2 type2, ...) return_type

Specialized syscalls use $ suffix:

syscall$VARIANT(args...) return_type

Common Type Patterns

PatternMeaning
const[VALUE]Fixed constant value
flags[flag_set, type]Bitfield from flag set
ptr[direction, type]Pointer (in, out, inout)
intptr[min:max]Integer pointer with range
int8, int16, int32Fixed-size integers
int16be, int32beBig-endian integers
array[type]Variable-length array
array[type, count]Fixed-length array

Ioctl Patterns

For ioctls with output:

ioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[out, int32])

For ioctls with input:

ioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, struct_type])

For simple value ioctls:

ioctl$CMD(fd fd_type, cmd const[CMD], arg intptr[0:1])

For ioctls using ifreq structure (from socket.txt):

ioctl$CMD(fd fd_type, cmd const[CMD], arg ptr[in, ifreq_t[flags[flag_set, int16]]])

Struct Definitions

Structs must have typed fields:

struct_name {
    field1    type1
    field2    type2
}

Flag Sets

Define reusable flag sets:

flag_set_name = FLAG1, FLAG2, FLAG3

Then use with flags[flag_set_name, int16].

Resources

File descriptor resources:

resource resource_name[fd]

Read/Write Syscalls

For specialized read/write:

read$suffix(fd fd_type, buf ptr[out, buffer_type], count len[buf])
write$suffix(fd fd_type, buf ptr[in, buffer_type], count len[buf])

Tips

  1. Check existing files for patterns (e.g., sys/linux/socket.txt)
  2. Run make descriptions after edits to validate syntax
  3. Some constants only exist on certain architectures
  4. Use ptr[in, ...] for input, ptr[out, ...] for output

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

Perform various data analysis on SEC 13-F and obtain some insights of fund activities such as number of holdings, AUM, and change of holdings between two quarters.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

AC branch pi-model power flow equations (P/Q and |S|) with transformer tap ratio and phase shift, matching `acopf-math-model.md` and MATPOWER branch fields. Use when computing branch flows in either direction, aggregating bus injections for nodal balance, checking MVA (rateA) limits, computing branch loading %, or debugging sign/units issues in AC power flow.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Redact text from PDF documents for blind review anonymization

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Use when checking simplified ADA-derived plan-view bathroom accessibility constraints such as turning space, door clear width, toilet centerline, grab bars, and lavatory knee/toe clearance.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Analyze failed GitHub Action jobs for a pull request.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

Use when extracting plan-view architectural geometry from DXF files with semantic CAD layers, especially when outputs must normalize rooms, doors, fixtures, clearances, and grab bars into machine-checkable JSON.

The English summary is being prepared. Showing the original description.

benchflow-ai/skillsbench1.9KUpdated Oct 13, 2026

See all skills by benchflow-ai

Report a problem with this skill