ba_list_classes() - 指定されたクラスの子クラスを取得します。
#include <netinet/ba_stat.h> int ba_list_classes ( const char *interface_suffix, /* interface name */ const char *classname, /* class name */ ba_class_pair_t **classes /* array containing information requested */ );
ba_list_classes() 関数は、 指定されたクラスの親クラスと子クラスの名前のリストを取得します。これらは親子ペアの配列で返され、指定されたクラス名を含みます。root クラスの親は root です。
ba_list_classes() 関数には次の引数を渡します。
|
interface |
le0_suffix、hme0_suffix など、管理されているインタフェース名が入った文字列を指すポインタ。suffix は、インタフェースが着信トラフィックを処理することを示す in、または発信トラフィックを処理することを示す out のどちらか |
|
classname |
情報を必要としているクラス名が入った文字列を指すポインタ |
|
classes |
親クラスと子クラスの名前が入った、ba_class_pair_t 型の構造体の配列を指すポインタ。親子ペアごとに構造体が 1 つ存在する メモリーは自動的に割り当てられる。メモリーが不要になった時点で ba_free() を呼び出す必要がある |
ba_class_pair_t 型の構造体は次のように定義されています。
typedef struct {
ba_name_t parent; /* name of the parent */
ba_name_t child; /* name of the class */
} ba_class_pair_t;
|
ba_class_pair_t 型の構造体には、次のように定義される ba_name_t 型の構造体のペアが入ります。
typedef struct {
char name[BA_NAMES_LEN + 1];
char padding[3];
u_short namelen;
char padding2[2];
} ba_name_t;
|
ba_list_classes() 関数は、正常に終了した場合にはクラス数、エラー時には -1 を返します。
ba_list_classes() 呼び出しの際にエラーが発生すると、変数 ba_errno は表 4-2 に示したエラーコードの 1 つに設定されます。