| { |
| "description": "Schema for the list of Zircon syscalls", |
| "type": "object", |
| "properties": { |
| "syscalls": { |
| "description": "The Zircon syscall methods", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/syscall" |
| } |
| } |
| }, |
| "required": [ |
| "syscalls" |
| ], |
| "additionalProperties": false, |
| "definitions": { |
| "syscall": { |
| "description": "A syscall method", |
| "type": "object", |
| "properties": { |
| "name": { |
| "description": "The method name, which is a valid C identifier", |
| "type": "string" |
| }, |
| "attributes": { |
| "description": "Metadata about the method", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/methodAttribute" |
| } |
| }, |
| "arguments": { |
| "description": "The method's parameters", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/argument" |
| } |
| }, |
| "return_type": { |
| "description": "Return type of the method", |
| "$ref": "#/definitions/objectType" |
| } |
| }, |
| "required": [ |
| "name", |
| "attributes", |
| "arguments", |
| "return_type" |
| ], |
| "additionalProperties": false |
| }, |
| "methodAttribute": { |
| "description": "A method attribute", |
| "type": "string", |
| "enum": [ |
| "blocking", |
| "const", |
| "deprecated", |
| "internal", |
| "noreturn", |
| "test_category1", |
| "test_category2", |
| "vdsocall", |
| "*" |
| ] |
| }, |
| "argument": { |
| "description": "A method parameter", |
| "type": "object", |
| "properties": { |
| "name": { |
| "description": "The parameter's name", |
| "type": "string" |
| }, |
| "type": { |
| "description": "The object type of this parameter", |
| "$ref": "#/definitions/objectType" |
| }, |
| "is_array": { |
| "description": "Whether the parameter is an array of objects", |
| "type": "boolean" |
| }, |
| "array_multipliers": { |
| "description": "For an array, the parameters to multiply in order to compute the array's size", |
| "type": "array", |
| "items": { |
| "type": "string" |
| } |
| }, |
| "array_count": { |
| "description": "An array's size", |
| "type": "integer" |
| }, |
| "attributes": { |
| "description": "Some metadata about the parameter", |
| "type": "array", |
| "items": { |
| "$ref": "#/definitions/parameterAttribute" |
| } |
| } |
| }, |
| "required": [ |
| "name", |
| "type", |
| "is_array", |
| "attributes" |
| ], |
| "additionalProperties": false |
| }, |
| "objectType": { |
| "description": "An object's type", |
| "type": "string", |
| "enum": [ |
| "any", |
| "bool", |
| "char", |
| "int", |
| "int32_t", |
| "int64_t", |
| "size_t", |
| "uint16_t", |
| "uint32_t", |
| "uint64_t", |
| "uint8_t", |
| "uintptr_t", |
| "void", |
| "zx_channel_call_args_t", |
| "zx_duration_t", |
| "zx_futex_t", |
| "zx_handle_info_t", |
| "zx_handle_t", |
| "zx_paddr_t", |
| "zx_pci_bar_t", |
| "zx_pci_init_arg_t", |
| "zx_pcie_device_info_t", |
| "zx_port_packet_t", |
| "zx_profile_info_t", |
| "zx_rights_t", |
| "zx_signals_t", |
| "zx_status_t", |
| "zx_system_powerctl_arg_t", |
| "zx_time_t", |
| "zx_vaddr_t", |
| "zx_wait_item_t" |
| ] |
| }, |
| "parameterAttribute": { |
| "description": "A parameter attribute", |
| "type": "string", |
| "enum": [ |
| "features", |
| "handle_acquire", |
| "handle_release", |
| "handle_release_always", |
| "optional", |
| "IN", |
| "INOUT", |
| "OUT" |
| ] |
| } |
| } |
| } |