kcred_genpagvalue 커널 서비스

용도

특정 PAG 유형에 대해 시스템 전체에 고유한 PAG 값을 생성합니다.

구문

int  kcred_genpagvalue(crp, pag_type, pag_value, pag_flags);
cred_t          *crp;
int            pag_type;
uint64_t  *   pag_value;
int            pag_flags;

설명

그만큼 kcred_genpag값 커널 서비스는 특정 PAG 유형에 대한 새로운 PAG 값을 생성합니다. 이 기능이 성공하려면 PAG 유형이 이전에 다음을 사용하여 운영 체제에 등록되어 있어야 합니다. kcred_setpagname 커널 서비스. 범위 kcred_genpag값 커널 서비스는 마지막으로 생성된 PAG 번호에 대한 정보를 유지하고 이에 따라 새 번호를 생성하는 것으로 제한됩니다. 이 서비스는 선택적으로 PAG 값을 신용 구조. 이는 다음에 저장된 PAG 값을 모니터링하지 않습니다. 신용 다른 방법으로 구조.

호출자는 다음을 사용하여 PAG 이름을 PAG 유형으로 변환해야 합니다. kcred_getpagid 호출하기 전에 커널 서비스 kcred_genpag값 커널 서비스.

그만큼 pag_flags 매개변수 PAG_SET_VALUE 값을 설정하면 생성된 값이 프로세스의 자격 증명에 원자적으로 저장됩니다.

반환된 PAG 값의 크기는 64비트입니다. 유효 비트 수는 요청된 PAG 유형에 따라 결정됩니다. 32비트 PAG에는 32개의 유효 비트가 있습니다. 64비트 PAG에는 62개의 유효 비트가 있습니다.

매개변수

항목 설명
pag_type 그만큼 pag_type 매개변수는 PAG 이름과 연관된 ID 값입니다.
pag_value 이 포인터는 OS가 새로 생성된 PAG 값을 반환할 버퍼를 가리킵니다.
pag_flags 이 매개변수는 다음과 같아야 합니다.0 또는 그 가치 PAG_SET_VALUE .

리턴 값

0 성공적으로 완료되면 반환됩니다. 실패하면 음수 값이 반환됩니다.

오류 코드

항목 설명
EINVAL 명명된 PAG 유형이 테이블의 일부로 존재하지 않으므로 PAG 값을 생성할 수 없습니다.
EPERM 명명된 PAG 유형은 32비트 PAG이며 호출자에게 SET_PROC_DAC 권한이 없습니다.