Oracle® Solaris 11.2 デバイスドライバの記述

印刷ビューの終了

更新: 2014 年 9 月
 
 

データ構造体

次の各セクションでは、ioctl を実装する前に PF ドライバで定義および初期化しておくべきデータ構造体を示します。

iov_param_ver_info 構造体

iov_param_ver_info 構造体は次のように定義されています。

#define IOV_IOCTL (('I' << 24) | ('O' << 16) | ('V' << 8))
#define IOV_GET_VER_INFO (IOV_IOCTL | 0)
#define IOV_GET_PARAM_INFO (IOV_IOCTL | 1)
#define IOV_VALIDATE_PARAM (IOV_IOCTL | 2)
#define IOV_PARAM_DESC_VERSION  1

iov_param_ver_info 構造体には次のフィールドが含まれています。

typedef struct iov_param_ver_info {
uint32_t version; 
uint32_t num_params; 
} iov_param_ver_info_t;

ここでは:

version

バージョン情報

num_params

パラメータの数

iov_param_validate 構造体

iov_param_validate 構造体は次のように定義されています。

  #define IOV_IOCTL (('I' << 24) | ('O' << 16) | ('V' << 8))
  #define IOV_GET_VER_INFO (IOV_IOCTL | 0)
  #define IOV_GET_PARAM_INFO (IOV_IOCTL | 1)
  #define IOV_VALIDATE_PARAM  (IOV_IOCTL | 2)
  #define IOV_PARAM_DESC_VERSION  1

iov_param_validate には次のフィールドが含まれています。

typedef struct iov_param_validate {
 	char pv_reason[MAX_REASON_LEN + 1];
 	int32_t pv_buflen;
 	/* encoded buffer containing params */
    char pv_buf[1];  /* size of buf is pv_buflen */          
} iov_param_validate_t;

ここでは:

pv_reason

ioctl コールが失敗した場合の失敗理由を説明する ASCII 文字列。

pv_buflen

バッファー pv_buf の長さ

pv_buf

パラメータを含むバッファー

iov_param_desc 構造体

iov_param_desc 構造体は次のように定義されています。

	 #define IOV_IOCTL  (('I' << 24) | ('O' << 16) | ('V' << 8))
  #define IOV_GET_VER_INFO (IOV_IOCTL | 0)
  #define IOV_GET_PARAM_INFO (IOV_IOCTL | 1)
  #define IOV_VALIDATE_PARAM (IOV_IOCTL | 2)
  #define IOV_PARAM_DESC_VERSION  1

構造体 iov_param_desc には次のフィールドが含まれています。

typedef struct iov_param_desc {
char pd_name[MAX_PARAM_NAME_SIZE];
char pd_desc[MAX_PARAM_DESC_SIZE];
int32_t pd_flag;   /* applicable for PF or VF or both */
int32_t pd_data_type; /* integer, string, plist */
/* Following 3 are applicable for integer data types */
uint64_t pd_default_value;
uint64_t pd_min64;	
uint64_t pd_max64;
char pd_default_string [MAX_PARAM_DEFAULT_STRING_SIZE];
} iov_param_desc_t; 

ここでは:

pd_name

ldm (1M) コマンド内または pci.conf ファイル内で、パラメータに値を割り当てるために使用されます。

pd_desc

パラメータの簡易説明。

pd_flag

パラメータの適用対象が、PF のみ、VF のみ、PF と VF の両方のいずれであるかを示します。

pd_default_value

ldm() コマンドや pci.conf ファイルでパラメータが指定されていない場合にドライバによって割り当てられる値。

pd_min64

整数パラメータの値の最小範囲を指定します。

pd_max64

整数パラメータの値の最大範囲を指定します。

pd_default_string

パラメータが文字列の場合に使用されるデフォルト文字列を指定します。