sub-rotina krs_op

Propósito

Executa um conjunto de operações em um ou dois conjuntos de recursos.

Sintaxe

#include <sys/rset.h>
int krs_op (command, rset1, rset2, flags, id)
unsigned int command;
rsethandle_t rset1, rset2;
unsigned int flags;
unsigned int id;

Descrição

O subroutine krs_op executa a operação especificada pelo parâmetro comando no conjunto de recursos rset1, ou ambos os conjuntos de recursos rset1 e rset2.

Parâmetros

Item Descrição
comando Especifica a operação a ser aplicada aos conjuntos de recursos identificados por rset1 e rset2. Um dos seguintes valores, definidos em rset.h, pode ser usado:
  • RS_UNIÃO: Os recursos contidos em rset1 ou rset2 são armazenados em rset2.
  • RS_INTERSECÇÃO: Os recursos que estão contidos em ambos rset1 e rset2 são armazenados em rset2.
  • RS_EXCLUSÃO: Os recursos em rset1 que também estão em rset2 são removidos de rset2. Na conclusão, rset2 contém todos os recursos que estavam contidos em rset2 mas que não estavam contidos em rset1.
  • RS_COPY: Todos os recursos em rset1 cujo tipo é bandeiras são armazenados em rset2. Se rset1 não contiver nenhum recurso deste tipo, rset2 estará vazio. O conteúdo anterior de rset2 é perdido, enquanto o conteúdo de rset1 fica inalterado.
  • RS_ISEMPTY: Teste se o conjunto de recursos rset1 estiver vazio.
  • RS_ISEQUAL: Teste se os conjuntos de recursos rset1 e rset2 são iguais.
  • RS_ISCONTIDOS: Teste se todos os recursos no conjunto de recursos rset1 também estão contidos no conjunto de recursos rset2.
  • RS_TESTRESOURCE: Teste se o recurso cujo tipo é bandeiras e o índice é id está contido no conjunto de recursos rset1.
  • RS_ENDEREOURCE: Adiciar o recurso cujo tipo é bandeiras e o índice é id para o conjunto de recursos rset1.
  • RS_DELRECURSO: Excluir o recurso cujo tipo é bandeiras e o índice é id do conjunto de recursos rset1.
  • RS_STSET: Construa um conjunto de recursos ST ao incluir apenas uma thread de hardware por processador físico incluído em rset1 e armazená-lo em rset2. Apenas os processadores disponíveis são considerados ao construir o conjunto de recursos ST.
rset1 Especifica a alça do conjunto de recursos para o primeiro dos conjuntos de recursos envolvidos na operação comando .
rset2 Especifica a alça do conjunto de recursos para o segundo dos conjuntos de recursos envolvidos na operação comando . Esse conjunto de recursos também é usado, no retorno, para armazenar o resultado da operação, e seu conteúdo anterior é perdido. O parâmetro rset2 é ignorado nos comandos RS_ISEMPTY, RS_TESTRESOURCE, RS_ENDEREOURCE e RS_DELRESOURCE.
sinalizadores Quando combinado com o comando RS_COPY, o parâmetro bandeiras especifica o tipo dos recursos que serão copiados de rset1 para rset2. Esse parâmetro é construído por ORing logicamente um ou mais dos seguintes valores, definidos em rset.h:
  • R_PROCS: processadores
  • R_MEMPS: conjuntos de memória
  • R_ALL_RECURSOS: processadores e conjuntos de memória

Se nenhum dos anteriores for especificado para bandeiras, o R_ALL_RESOURCES será assumido.

id Nos comandos RS_TESTRESOURCE, RS_ENDEREOURCE e RS_DELRESOURCE, o parâmetro id especifica o índice do recurso a ser testado, adicionado ou excluído. Este parâmetro é ignorado nos outros comandos.

Valores De Retorno

Item Descrição
0 Conclusão bem-sucedida. A condição testada não é atendida para os comandos RS_ISEMPTY, RS_ISEQUAL, RS_ISCONTIDOS e RS_TESTRESOURCE.
1 Conclusão bem-sucedida. A condição testada é atendida para os comandos RS_ISEMPTY, RS_ISEQUAL, RS_ISCONTIDOS e RS_TESTRESOURCE.
-1 Conclusão mal sucedida. Uma ou mais das seguintes são verdadeiras:
  • rset1 identifica um conjunto de recursos inválido.
  • rset2 identifica um conjunto de recursos inválido.
  • comando identifica uma operação inválida.
  • bandeiras identifica um tipo de recurso inválido.
  • id especifica um índice de recursos que é muito grande.
  • Endereço inválido.