1
0
mirror of https://github.com/danog/psalm.git synced 2024-12-12 09:19:40 +01:00
psalm/stubs/extensions/ffi.phpstub

499 lines
9.0 KiB
PHP
Raw Normal View History

2022-10-25 11:05:01 +02:00
<?php
namespace {
/**
* @since 7.4.0
*/
final class FFI
{
public static function cdef(string $code = "", ?string $lib = null): FFI
{
}
public static function load(string $filename): ?FFI
{
}
public static function scope(string $name): FFI
{
}
/**
2023-02-21 21:06:14 +01:00
* Note: Official docs say this could return `null`, but it throws exceptions instead.
2022-10-25 11:05:01 +02:00
* @param \FFI\CType|string $type
*/
2023-02-21 21:06:14 +01:00
public static function new($type, bool $owned = true, bool $persistent = false): \FFI\CData
2022-10-25 11:05:01 +02:00
{
}
public static function free(\FFI\CData $ptr): void
{
}
/**
* @param \FFI\CType $type
* @param \FFI\CData|int|float|bool|null $ptr
*/
public static function cast($type, &$ptr): ?\FFI\CData
{
}
public static function type(string $type): ?\FFI\CType
{
}
public static function typeof(\FFI\CData $ptr): \FFI\CType
{
}
/**
* @param array<int<0,max>> $dimensions
*/
public static function arrayType(\FFI\CType $type, array $dimensions): \FFI\CType
{
}
public static function addr(\FFI\CData $ptr): \FFI\CData
{
}
/**
* @param \FFI\CData|\FFI\CType $ptr
* @return int<0,max>
*/
public static function sizeof($ptr): int
{
}
/**
* @param \FFI\CData|\FFI\CType $ptr
* @return positive-int
*/
public static function alignof($ptr): int
{
}
/**
* @param \FFI\CData|string $from
* @param int<0,max> $size
*/
public static function memcpy(\FFI\CData $to, $from, int $size): void
{
}
/**
* @param string|\FFI\CData $ptr1
* @param string|\FFI\CData $ptr2
* @param int<0,max> $size
*/
public static function memcmp(&$ptr1, &$ptr2, int $size): int
{
}
/**
* @param int<0,max> $size
*/
public static function memset(\FFI\CData $ptr, int $value, int $size): void
{
}
/**
* @param int<0,max>|null $size
*/
public static function string(\FFI\CData $ptr, ?int $size = null): string
{
}
public static function isNull(\FFI\CData $ptr): bool
{
}
public function __call(...$values)
{
}
/**
* @param mixed $value
* @return mixed $value
*/
public function __set(string $key, $value)
{
}
/**
* @return string|int|float|\FFI\CData|null
*/
public function __get(string $key)
{
}
2022-10-25 11:05:01 +02:00
}
}
namespace FFI {
/**
* @since 7.4.0
*/
final class CData implements \Countable, \ArrayAccess, \Countable, \Traversable
2022-10-25 11:05:01 +02:00
{
/**
* @return bool
*/
public function offsetExists($offset)
{
}
/**
* @return mixed|null
*/
public function offsetGet($offset)
{
}
2022-10-25 11:05:01 +02:00
/**
* @param mixed|null $value
* @return void
*/
public function offsetSet($offset, $value)
{
}
/**
* @return void
*/
public function offsetUnset($offset)
{
}
2022-10-25 11:05:01 +02:00
}
/**
* @since 7.4.0
*/
final class CType
{
/**
* @since 8.1
*/
public const TYPE_VOID = 0;
/**
* @since 8.1
*/
public const TYPE_FLOAT = 1;
/**
* @since 8.1
*/
public const TYPE_DOUBLE = 2;
/**
* @since 8.1
*/
public const TYPE_LONGDOUBLE = 3;
/**
* @since 8.1
*/
public const TYPE_UINT8 = 4;
/**
* @since 8.1
*/
public const TYPE_SINT8 = 5;
/**
* @since 8.1
*/
public const TYPE_UINT16 = 6;
/**
* @since 8.1
*/
public const TYPE_SINT16 = 7;
/**
* @since 8.1
*/
public const TYPE_UINT32 = 8;
/**
* @since 8.1
*/
public const TYPE_SINT32 = 9;
/**
* @since 8.1
*/
public const TYPE_UINT64 = 10;
/**
* @since 8.1
*/
public const TYPE_SINT64 = 11;
/**
* @since 8.1
*/
public const TYPE_ENUM = 12;
/**
* @since 8.1
*/
public const TYPE_BOOL = 13;
/**
* @since 8.1
*/
public const TYPE_CHAR = 14;
/**
* @since 8.1
*/
public const TYPE_POINTER = 15;
/**
* @since 8.1
*/
public const TYPE_FUNC = 16;
/**
* @since 8.1
*/
public const TYPE_ARRAY = 17;
/**
* @since 8.1
*/
public const TYPE_STRUCT = 18;
/**
* @since 8.1
*/
public const ATTR_CONST = 1;
/**
* @since 8.1
*/
public const ATTR_INCOMPLETE_TAG = 2;
/**
* @since 8.1
*/
public const ATTR_VARIADIC = 4;
/**
* @since 8.1
*/
public const ATTR_INCOMPLETE_ARRAY = 8;
/**
* @since 8.1
*/
public const ATTR_VLA = 16;
/**
* @since 8.1
*/
public const ATTR_UNION = 32;
/**
* @since 8.1
*/
public const ATTR_PACKED = 64;
/**
* @since 8.1
*/
public const ATTR_MS_STRUCT = 128;
/**
* @since 8.1
*/
public const ATTR_GCC_STRUCT = 256;
/**
* @since 8.1
*/
public const ABI_DEFAULT = 0;
/**
* @since 8.1
*/
public const ABI_CDECL = 1;
/**
* @since 8.1
*/
public const ABI_FASTCALL = 2;
/**
* @since 8.1
*/
public const ABI_THISCALL = 3;
/**
* @since 8.1
*/
public const ABI_STDCALL = 4;
/**
* @since 8.1
*/
public const ABI_PASCAL = 5;
/**
* @since 8.1
*/
public const ABI_REGISTER = 6;
/**
* @since 8.1
*/
public const ABI_MS = 7;
/**
* @since 8.1
*/
public const ABI_SYSV = 8;
/**
* @since 8.1
*/
public const ABI_VECTORCALL = 9;
public function getName(): string
{
}
/**
* @since 8.1.0
* @return self::TYPE_*
*/
public function getKind(): int
{
}
/**
* @since 8.1.0
* @return int<0,max>
*/
public function getSize(): int
{
}
/**
* @since 8.1.0
* @return int<0,max>
*/
public function getAlignment(): int
{
}
/**
* @since 8.1.0
*/
public function getAttributes(): int
{
}
/**
* @since 8.1.0
* @return self::TYPE_UINT32|self::TYPE_UINT64
*/
public function getEnumKind(): int
{
}
/**
* @since 8.1.0
*/
public function getArrayElementType(): CType
{
}
/**
* @since 8.1.0
* @return int<0,max>
*/
public function getArrayLength(): int
{
}
/**
* @since 8.1.0
*/
public function getPointerType(): CType
{
}
/**
* @since 8.1.0
* @return string[]
*/
public function getStructFieldNames(): array
{
}
/**
* @since 8.1.0
* @return int<0,max>
*/
public function getStructFieldOffset(string $name): int
{
}
/**
* @since 8.1.0
*/
public function getStructFieldType(string $name): CType
{
}
/**
* @since 8.1.0
* @return self::ABI_*
*/
public function getFuncABI(): int
{
}
/**
* @since 8.1.0
*/
public function getFuncReturnType(): CType
{
}
/**
* @since 8.1.0
* @return int<0,max>
*/
public function getFuncParameterCount(): int
{
}
/**
* @param int<0,max> $index
* @since 8.1.0
*/
public function getFuncParameterType(int $index): CType
{
}
}
/**
* @since 7.4.0
*/
class Exception extends \Error
{
}
/**
* @since 7.4.0
*/
final class ParserException extends Exception
{
}
}