diff --git a/reference/ffi/ffi/addr.xml b/reference/ffi/ffi/addr.xml new file mode 100644 index 000000000..48fa50746 --- /dev/null +++ b/reference/ffi/ffi/addr.xml @@ -0,0 +1,63 @@ + + + + + FFI::addr + Cria um ponteiro não gerenciado para dado C + + + + &reftitle.description; + + public static FFI\CDataFFI::addr + FFI\CDataptr + + + Cria um ponteiro não gerenciado para o dado C representado pelo + FFI\CData informado. O ponteiro de origem ptr precisa sobreviver ao + ponteiro resultante. Esta função é útil principalmente para passar argumentos para funções C através de ponteiro. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do ponteiro para uma estrutura de dado C. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CData recentemente criado. + + + + + diff --git a/reference/ffi/ffi/alignof.xml b/reference/ffi/ffi/alignof.xml new file mode 100644 index 000000000..4a4da9142 --- /dev/null +++ b/reference/ffi/ffi/alignof.xml @@ -0,0 +1,63 @@ + + + + + FFI::alignof + Obtém o alinhamento + + + + &reftitle.description; + + public static intFFI::alignof + FFI\CDataFFI\CTypeptr + + + Obtém o alinhamento do objeto FFI\CData ou + FFI\CType informado. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do dado ou do tipo C. + + + + + + + + &reftitle.returnvalues; + + Retorna o alinhamento do objeto FFI\CData ou + FFI\CType informado. + + + + + diff --git a/reference/ffi/ffi/arraytype.xml b/reference/ffi/ffi/arraytype.xml new file mode 100644 index 000000000..2a7e24f68 --- /dev/null +++ b/reference/ffi/ffi/arraytype.xml @@ -0,0 +1,83 @@ + + + + + FFI::arrayType + Constrói dinamicamente um novo array tipo C + + + + &reftitle.description; + + public static FFI\CTypeFFI::arrayType + FFI\CTypetype + arraydimensions + + + Constrói dinamicamente um novo array tipo C com elementos do tipo definido por type + e dimensões especificadas por dimensions. No exemplo a seguir, $t1 + e $t2 são tipos de array equivalentes: + + + +]]> + + + + + + + &reftitle.parameters; + + + type + + + Uma declaração C válida como uma string ou como uma instância de FFI\CType + que já tenha sido criada. + + + + + dimensions + + + As dimensões do tipo como um array. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CType recentemente criado. + + + + + diff --git a/reference/ffi/ffi/cast.xml b/reference/ffi/ffi/cast.xml new file mode 100644 index 000000000..07c1f6c30 --- /dev/null +++ b/reference/ffi/ffi/cast.xml @@ -0,0 +1,100 @@ + + + + + FFI::cast + Realiza um conversão de tipo C + + + + &reftitle.description; + + public FFI\CDatanullFFI::cast + FFI\CTypestringtype + FFI\CDataintfloatboolnullptr + + + FFI::cast cria um novo objeto FFI\CData, + que referencia a mesma estrutura de dados C, mas é associado com um tipo diferente. + O objeto resultante não detém o dado C, e o ponteiro de origem ptr + precisa sobreviver ao resultado. O tipo C pode ser especificado como uma string com qualquer + declaração de tipo C válida ou como objeto FFI\CType, criado antes. + Qualquer tipo declarado para a instância é permitido. + + + + + &reftitle.parameters; + + + type + + + Uma declaração válida em C como uma string ou uma instância de FFI\CType + que já tenha sido criada. + + + + + ptr + + + O identificador do ponteiro para uma estrutura de dados C. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CData recentemente criado. + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + Chamar FFI::cast estaticamente agora foi descontinuado. + + + + + + + + + + diff --git a/reference/ffi/ffi/cdef.xml b/reference/ffi/ffi/cdef.xml new file mode 100644 index 000000000..9974bc777 --- /dev/null +++ b/reference/ffi/ffi/cdef.xml @@ -0,0 +1,108 @@ + + + + + FFI::cdef + Cria um novo objeto FFI + + + + &reftitle.description; + + public static FFIFFI::cdef + stringcode"" + stringnulllib&null; + + + Cria um novo objeto FFI. + + + + + &reftitle.parameters; + + + code + + + Uma string contendo uma sequência de declarações em liguagem C usual + (tipos, estruturas, funções, variáveis etc.). Na verdade, esta string pode ser + copiada e colada a partir de arquivos de cabeçalho C. + + + + As diretivas de pré-processamento C não são suportadas, ou seja, #include, + #define e macros CPP não funcionam. + + + + + + lib + + + O nome de um arquivo de biblioteca compartilhada, a ser carregado e conectado com + as definições. + + + + Se lib for omitido ou &null;, as plaraformas que suportam RTLD_DEFAULT + tentarão localizar símbolos declarados em code no escopo global + normal. Outros sistemas falharão ao tentar resolver estes símbolos. + + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI criado. + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + lib agora pode ser nulo. + + + + + + + + + diff --git a/reference/ffi/ffi/free.xml b/reference/ffi/ffi/free.xml new file mode 100644 index 000000000..c2ce932a0 --- /dev/null +++ b/reference/ffi/ffi/free.xml @@ -0,0 +1,61 @@ + + + + + FFI::free + Libera uma estrutura de dados não gerenciada + + + + &reftitle.description; + + public static voidFFI::free + FFI\CDataptr + + + Libera manualmente uma estrutura de dados não gerenciada criada anteriormente. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do ponteiro não gerenciado a um estrutura de dados C. + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/isnull.xml b/reference/ffi/ffi/isnull.xml new file mode 100644 index 000000000..e386df096 --- /dev/null +++ b/reference/ffi/ffi/isnull.xml @@ -0,0 +1,61 @@ + + + + + FFI::isNull + Verifica se um FFI\CData é um ponteiro nulo + + + + &reftitle.description; + + public static boolFFI::isNull + FFI\CDataptr + + + Verifica se um FFI\CData é um ponteiro nulo. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do ponteiro a uma estrutura de dados C. + + + + + + + + &reftitle.returnvalues; + + Retorna se FFI\CData é um ponteiro nulo. + + + + + diff --git a/reference/ffi/ffi/load.xml b/reference/ffi/ffi/load.xml new file mode 100644 index 000000000..e972444ba --- /dev/null +++ b/reference/ffi/ffi/load.xml @@ -0,0 +1,88 @@ + + + + + FFI::load + Carrega declarações C a partir de um arquivo de cabeçalho + + + + &reftitle.description; + + public static FFInullFFI::load + stringfilename + + + Carrega declarações C a partir de um arquivo de cabeçalho. É possível especificar bibliotecas compartilhadas que devem ser carregadas, + usando definições especiais FFI_LIB no arquivo de cabeçalho carregado. + + + + + &reftitle.parameters; + + + filename + + + O nome de um arquivo de cabeçalho C. + + + Diretivas de pré-processamento C não são suportadas, ou seja, #include, + #define e macros CPP não funcionam, exceto para casos especiais + listados abaixo. + + + O arquivo de cabeçalho deveria conter uma declaração #define para a + variável FFI_SCOPE, ex.: #define FFI_SCOPE "MYLIB". + Refira à introdução desta classe para detalhes. + + + O arquivo de cabeçalho pode conter uma declaração #define para a + variável FFI_LIB para especificar a biblioteca que a ser exposta. Se for + uma biblioteca de sistema, apenas o nome é necessário, ex.: #define FFI_LIB + "libc.so.6". Se for uma biblioteca customizada, um caminho relativo é necessário, + ex.: #define FFI_LIB "./mylib.so". + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI recém criado ou &null; em caso de falha. + + + + + &reftitle.seealso; + + + FFI::scope + + + + + + diff --git a/reference/ffi/ffi/memcmp.xml b/reference/ffi/ffi/memcmp.xml new file mode 100644 index 000000000..e6983b48c --- /dev/null +++ b/reference/ffi/ffi/memcmp.xml @@ -0,0 +1,85 @@ + + + + + FFI::memcmp + Compara áreas da memória + + + + &reftitle.description; + + public static intFFI::memcmp + stringFFI\CDataptr1 + stringFFI\CDataptr2 + intsize + + + Compara o número de bytes definido em size das áreas de memória ptr1 e + ptr2. Ambos ptr1 e ptr2 + podem ser quaisquer estruturas de dados nativas (FFI\CData) ou + strings PHP. + + + + + &reftitle.parameters; + + + ptr1 + + + O início de uma área de memória. + + + + + ptr2 + + + O início de outra área de memória. + + + + + size + + + O número de bytes a serem comparados. + + + + + + + + &reftitle.returnvalues; + + Retorna um valor menor que 0 se o conteúdo da área de memória iniciando em ptr1 + for considerado menor que o conteúdo da área de memória iniciando em ptr2, + um número maior que 0 se o conteúdo da primeira área de memória for considerado maior que o segundo, + e 0 se forem iguais. + + + + + diff --git a/reference/ffi/ffi/memcpy.xml b/reference/ffi/ffi/memcpy.xml new file mode 100644 index 000000000..bd2d1eed8 --- /dev/null +++ b/reference/ffi/ffi/memcpy.xml @@ -0,0 +1,80 @@ + + + + + FFI::memcpy + Copia uma área da memória para outra + + + + &reftitle.description; + + public static voidFFI::memcpy + FFI\CDatato + FFI\CDatastringfrom + intsize + + + Copia o número de bytes informado em size da área de memória from + para a área de memória to. + + + + + &reftitle.parameters; + + + to + + + O início da área de memória de destino da cópia. + + + + + from + + + O início da área de memória de origem da cópia. + + + + + size + + + O número de bytes a serem copiados. + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/memset.xml b/reference/ffi/ffi/memset.xml new file mode 100644 index 000000000..3c2462bbb --- /dev/null +++ b/reference/ffi/ffi/memset.xml @@ -0,0 +1,80 @@ + + + + + FFI::memset + Preenche uma área de memória + + + + &reftitle.description; + + public static voidFFI::memset + FFI\CDataptr + intvalue + intsize + + + Preenche, com o número de bytes informado em size, a área de memória apontada por + ptr com o valor de byte definido por value. + + + + + &reftitle.parameters; + + + ptr + + + O início da área de memória a ser preenchida. + + + + + value + + + O byte para preenchimento. + + + + + size + + + O número de bytes a serem preenchidos. + + + + + + + + &reftitle.returnvalues; + + &return.void; + + + + + diff --git a/reference/ffi/ffi/new.xml b/reference/ffi/ffi/new.xml new file mode 100644 index 000000000..042da578a --- /dev/null +++ b/reference/ffi/ffi/new.xml @@ -0,0 +1,111 @@ + + + + + FFI::new + Cria uma estrutura de dados C + + + + &reftitle.description; + + public FFI\CDatanullFFI::new + FFI\CTypestringtype + boolowned&true; + boolpersistent&false; + + + Cria uma estrutura de dados nativa do tipo C fornecido. + Qualquer tipo declarado para a instância é permitido. + + + + + &reftitle.parameters; + + + type + + + type é uma declaração C válida como uma string ou uma + instância de FFI\CType que já tenha sido criada. + + + + + owned + + + Define se serão criados dados próprios (ou seja, gerenciados) ou não gerenciados. Os dados gerenciados residem junto + com o objeto FFI\CData retornado e são liberados quando a + última referência a esse objeto é liberada pela contagem regular de referências do PHP ou pelo GC. + Dados não gerenciados devem ser liberados chamando FFI::free, + quando não forem mais necessários. + + + + + persistent + + + Define se a estrutura de dados C será alocada permanentemente na memória do sistema (usando + malloc) ou na memória de requisição do PHP (usando emalloc). + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CData recém criado + ou &null; em caso de falha. + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + Chamar FFI::new estaticamente agora foi descontinuado. + + + + + + + + + + diff --git a/reference/ffi/ffi/scope.xml b/reference/ffi/ffi/scope.xml new file mode 100644 index 000000000..6dc4a4d5d --- /dev/null +++ b/reference/ffi/ffi/scope.xml @@ -0,0 +1,74 @@ + + + + + FFI::scope + Instancia um objeto FFI com declarações C analisadas durante o pré-carregamento + + + + &reftitle.description; + + public static FFIFFI::scope + stringname + + + Instancia um objeto FFI com declarações C analisadas durante o pré-carregamento. + + + O método FFI::scope é seguro para ser chamado várias vezes para o mesmo escopo. Várias referências ao + mesmo escopo podem ser carregadas ao mesmo tempo. + + + + + &reftitle.parameters; + + + name + + + O nome do escopo definido por uma definição especial FFI_SCOPE. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI recém-criado. + + + + + &reftitle.seealso; + + + FFI::load + + + + + + diff --git a/reference/ffi/ffi/sizeof.xml b/reference/ffi/ffi/sizeof.xml new file mode 100644 index 000000000..80659bb1c --- /dev/null +++ b/reference/ffi/ffi/sizeof.xml @@ -0,0 +1,62 @@ + + + + + FFI::sizeof + Obtém o tamanho do dado ou tipo C + + + + &reftitle.description; + + public static intFFI::sizeof + FFI\CDataFFI\CTypeptr + + + Retorna o tamanho do objeto FFI\CData ou + FFI\CType fornecido. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do dado ou tipo C. + + + + + + + + &reftitle.returnvalues; + + O tamanho da área de memória apontada por ptr. + + + + + diff --git a/reference/ffi/ffi/string.xml b/reference/ffi/ffi/string.xml new file mode 100644 index 000000000..dce002566 --- /dev/null +++ b/reference/ffi/ffi/string.xml @@ -0,0 +1,96 @@ + + + + + FFI::string + Cria uma string PHP a partir de uma área de memória + + + + &reftitle.description; + + public static stringFFI::string + FFI\CDataptr + intnullsize&null; + + + Cria uma string PHP com o número de bytes informados em size a partir da área de + memória apontada por ptr. + + + + + &reftitle.parameters; + + + ptr + + + O início da área de memória a partir da qual será criada uma string. + + + + + size + + + O número de bytes a serem copiados para a string. + Se size for omitido ou &null;, ptr deverá ser um array de + char C terminado em zero. + + + + + + + + &reftitle.returnvalues; + + A string recém-criada do PHP. + + + + + &reftitle.changelog; + + + + + &Version; + &Description; + + + + + 8.0.0 + + size agora pode ser nulo; anteriormente seu padrão era + 0. + + + + + + + + + diff --git a/reference/ffi/ffi/type.xml b/reference/ffi/ffi/type.xml new file mode 100644 index 000000000..d1a01024a --- /dev/null +++ b/reference/ffi/ffi/type.xml @@ -0,0 +1,88 @@ + + + + + FFI::type + Cria um objeto FFI\CType a partir de uma declaração C + + + + &reftitle.description; + + public FFI\CTypenullFFI::type + stringtype + + + Esta função cria e retorna um objeto FFI\CType para a + string fornecida contendo uma declaração de tipo C. + Qualquer tipo declarado para a instância é permitido. + + + + + &reftitle.parameters; + + + type + + + Uma string com uma declaração C válida. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CType recém-criado + ou &null; em caso de falha. + + + + + &reftitle.changelog; + + + + + + &Version; + &Description; + + + + + 8.3.0 + + Chamar FFI::type estaticamente agora foi descontinuado. + + + + + + + + + + diff --git a/reference/ffi/ffi/typeof.xml b/reference/ffi/ffi/typeof.xml new file mode 100644 index 000000000..dcd1ad937 --- /dev/null +++ b/reference/ffi/ffi/typeof.xml @@ -0,0 +1,63 @@ + + + + + FFI::typeof + Obtém o FFI\CType de FFI\CData + + + + &reftitle.description; + + public static FFI\CTypeFFI::typeof + FFI\CDataptr + + + Obtém o objeto FFI\CType que representa o tipo do objeto + FFI\CData fornecido. + + + + + &reftitle.parameters; + + + ptr + + + O identificador do ponteiro para uma estrutura de dados C. + + + + + + + + &reftitle.returnvalues; + + Retorna o objeto FFI\CType que representa o tipo + do objeto FFI\CData fornecido. + + + + +