Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> ioctlのパラメータおよび詳細

ioctlのパラメータおよび詳細

  
 

のioctl

関数名:ioctlの

機能:コントロールI /Oデバイス

使用法:int型のioctl(int型ハンドル、int型CMD、[INT * argdx、INT argcx]);注意マクロ

/ASM /ioctl.h定義を含む:

ワードビット幅の#define _IOC_NRBITS 8 //序数(番号)フィールド、8ビットを

ワードビット幅の#define _IOC_TYPEBITS 8 //マジックナンバー(タイプ)フィールド、ビット幅ワードの8ビット

の#define _IOC_SIZEBITS 14 //大きさ(サイズ)フィールド、14bits

ワードビット幅の#define _IOC_DIRBITS 2 //方向(方向)フィールド、2ビット

の#define _IOC_NRMASK((1<< _IOC_NRBITS)-1)//マスクシーケンス番号フィールド、0x000000FF

の#define _IOC_TYPEMASK((1<< _IOC_TYPEBITS)-1)//マジックナンバーフィールドマスク、0x000000FF

の#define _IOC_SIZEMASK((1<< _IOC_SIZEBITS)-1) //フィールドマスクのサイズ、0x00003FFF

_IOC_DIRMASKの#define((1<< _IOC_DIRBITS)-1)//マスク磁界方向、0x00000003

の#define _IOC_NRSHIFT 0 //序全分野におけるセグメントの変位、0

の#define _IOC_TYPESHIFT(_IOC_NRSHIFT + _IOC_NRBITS)//マジックナンバーフィールドの変位、8

の#define _IOC_SIZESHIFT(_IOC_TYPESHIFT + _IOC_TYPEBITS)//Sizeフィールド変位の変位、16

の#define _IOC_DIRSHIFT(_IOC_SIZESHIFT + _IOC_SIZEBITS)//磁界方向、30

/*

*方向ビット。

* /

に#define _IOC_NONE 0U //なしのデータ伝送

に#define _IOC_WRITE 1U //書き込みデータデバイスに、ドライバはユーザ空間から

データ
に読まなければなりません#define _IOC_READ 2U //デバイスからデータを読み取り、ドライバはユーザ空間に

に#define _IOC(DIR、タイプ、NR、サイズ)
書き込む必要があります\\

((( DIR)<< _IOC_DIRSHIFT)

Copyright © Windowsの知識 All Rights Reserved