NeXTSTEPDRIVERKIT:Chapter5 TypesandConstants
- Types and Constants(타입과 상수)
정의된 타입(Defined Types)
IOAddressRange
정의된 위치 driverkit/IODeviceInspector.h
개요
- typedef struct IOAddressRange {
- unsigned start;
- unsigned length;
- } IOAddressRange
설명 Used to describe address ranges.
주소 범위를 설명하는 데 사용됩니다.
IOCache
정의된 위치 driverkit/driverTypes.h
개요
- typedef enum {
- IO_CacheOff,
- IO_WriteThrough,
- IO_CopyBack
- } IOCache
IOChannelCommand
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned int IOChannelCommand
설명 Used <<where?>> to specify caching. IO_CacheOff inhibits the cache.
<<where?>> 를 사용하여 캐싱을 지정합니다. IO_CacheOff는 캐시를 금지합니다.
IOChannelDequeueOption
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned int IOChannelDequeueOption
설명 없음
IOChannelEnqueueOption
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned int IOChannelEnqueueOption
설명 없음
IOCharParameter
정의된 위치 driverkit/driverTypes.h
개요 typedef char IOCharParameter[IO_MAX_PARAMETER_ARRAY_LENGTH]
설명 Standard type for a character parameter value, used by the get/set parameter functionality provided by IODevice and IODeviceMaster.
IODevice 및 IODeviceMaster 에서 제공하는 get/set 매개 변수 기능에 사용되는 문자 매개 변수 값의 표준 형식입니다.
IODDMMsg
정의된 위치 driverkit/debuggingMsg.h
개요
- typedef struct {
- msg_header_t header;
- msg_type_t argType;
- unsigned index;
- unsigned maskValue;
- unsigned status;
- unsigned timestampHighInt;
- unsigned timestampLowInt;
- int cpuNumber;
- msg_type_t stringType;
- char string[IO_DDM_STRING_LENGTH];
- } IODDMMsg
설명 The message format understood by the Driver Debugging Module. You don't usually have to use this message, as long as DDMViewer <<check>> is sufficient for your needs.
드라이버 디버깅 모듈에서 이해할 수 있는 메시지 형식입니다. DDMViewer <<check>> 로 충분하다면, 이 메시지를 사용할 필요는 없습니다.
IODescriptorCommand
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned char IODescriptorCommand
설명 없음
IODeviceNumber
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned int IODeviceNumber
설명 없음
IODeviceStyle
정의된 위치 driverkit/driverTypes.h
개요
- typedef enum {
- IO_DirectDevice,
- IO_IndirectDevice,
- IO_PseudoDevice
- } IODeviceStyle
설명 Returned by the deviceStyle method to specify whether the driver is a direct device driver (one that directly controls hardware), an indirect device driver (one that controls hardware using a direct device driver), or a pseudodriver (one that controls no hardware). The driver style determines how it's configured into the system, as described <<somewhere>>.
드라이버가 직접 장치 드라이버 (하드웨어를 직접 제어하는 장치 드라이버)인지 간접 장치 드라이버 (직접 장치 드라이버를 사용하여 하드웨어를 제어하는 장치 드라이버) 또는 의사 드라이버 (하드웨어를 제어하지 않는 장치 드라이버)인지 여부를 지정하려면 deviceStyle 메서드에서 반환됩니다. 드라이버 스타일은 <<somewhere>> 에서 설명한대로 시스템에 구성되는 방법을 결정합니다.
IODisplayInfo
정의된 위치 bsd/dev/i386/displayDefs.h <<to be moved to driverkit/>>
개요
- typedef struct{
- int width;
- int height;
- int totalWidth;
- int rowBytes;
- int refreshRate;
- void *frameBuffer;
- IOBitsPerPixel bitsPerPixel;
- IOColorSpace colorSpace;
- unsigned int flags;
- void *parameters;
- } IODisplayInfo;
설명 This structure describes a video display. Each linear mode supported by an IOFrameBufferDisplay has a corresponding IODisplayInfo. <<Tell when it's used.>> The structure's fields are
이 구조체(structure)는 비디오 디스플레이를 설명합니다. IOFrameBufferDisplay 가 지원하는 각 선형(linear) 모드에는 해당 IODisplayInfo 가 있습니다. <<Tell when it's used.>> 구조의 필드는 다음과 같습니다.
width | Width, in pixels 너비 (픽셀 단위) |
height | Height, in pixels 높이 (픽셀 단위) |
totalWidth | Width including undisplayed pixels 표시되지 않는 픽셀을 포함한 폭 |
rowBytes | The number of bytes to get from one scanline to next. To determine this value, determine how many 8-bit bytes each pixel occupies (rounding up to an integer) and multiply this by the value of totalWidth. For example, a color display mode that uses 15 bits per pixel and has a totalWidth of 1024 has a rowBytes value of 2048. 하나의 스캔 라인에서 다음 스캔 라인으로 가져올 바이트 수. 이 값을 결정하려면 각 픽셀이 차지하는 8 비트 바이트 수 (정수로 반올림)를 결정하고 totalWidth 값을 곱하십시오. 예를 들어 픽셀 당 15 비트를 사용하고 totalWidth 가 1024 인 색상 표시 모드는 2048 의 rowBytes 값을 가집니다. |
refreshRate | Monitor refresh setting, in Hz <<how do you decide this?>> 모니터 새로 고침 설정, <<how do you decide this?>> (Hz) |
frameBuffer | Pointer to origin of screen; untyped to force actual screen writes to be dependent on bitsPerPixel. The driver's initFromDeviceDescription: method should set this field to the value returned by mapFrameBufferAtPhysicalAddress:length:. 화면의 원점을 가리키는 포인터. 실제 화면 쓰기가 bitsPerPixel 에 종속되도록 하려면 유형이 지정되지 않음. 드라이버의 initFromDeviceDescription: 메소드는 이 필드를 mapFrameBufferAtPhysicalAddress:length: 에 의해 반환된 값으로 설정해야 합니다. |
bitsPerPixel | The memory space occupied by one pixel. 8-bit black and white display modes use the value IO_8BitsPerPixel, and "16-bit" color display modes that use 5 bits each for red, green, and blue use the value IO_15BitsPerPixel. See the documentation of the IOBitsPerPixel type for other values. 한 픽셀씩 차지하는 메모리 공간입니다. 8 비트 흑백 디스플레이 모드는 IO_8BitsPerPixel 값을 사용하고, 적색, 녹색 및 청색 각각 5 비트를 사용하는 "16비트" 컬러 디스플레이 모드는 IO_15BitsPerPixel 값을 사용합니다. 다른 값에 대해서는 IOBitsPerPixel 형식의 설명서를 참조하십시오. |
colorSpace | Specifies the sample-encoding format.<<what does that mean?>> Typically, this value is either IO_DISPLAY_ONEISWHITECOLORSPACE (for monochrome modes) or IO_DISPLAY_RGBCOLORSPACE (for color modes). See the documentation of the IOColorSpace type for other values. 샘플 인코딩 형식을 지정합니다. <<what does that mean?>> 일반적으로이 값은 IO_DISPLAY_ONEISWHITECOLORSPACE (단색 모드의 경우) 또는 IO_DISPLAY_RGBCOLORSPACE (컬러 모드의 경우) 중 하나입니다. 다른 값에 대해서는 IOColorSpace 형식의 설명서를 참조하십시오. |
flags | Flags used to indicate special requirements or conditions to DPS. Currently, this should always be zero. <<true? Or is it ignored?>> DPS 에 특별한 요구 사항 또는 조건을 나타내는 데 사용되는 플래그. 현재이 값은 항상 0 이어야합니다. <<true? Or is it ignored?>>. |
parameters | Driver-specific parameters. 드라이버 관련 매개 변수. |
Here's an array of IODisplayInfo structures for a driver that supports several monochrome and color modes:
다음은 여러 모노크롬 및 컬러 모드를 지원하는 드라이버용 IODisplayInfo 구조체의 배열입니다:
static const IODisplayInfo MyModes[MY_NUM_MODES] = {
{ 1024, 768, 1024, 1024, 66, 0,
IO_8BitsPerPixel, IO_DISPLAY_ONEISWHITECOLORSPACE, 0, 0 },
{ 1280, 1024, 2048, 2048, 68, 0,
IO_8BitsPerPixel, IO_DISPLAY_ONEISWHITECOLORSPACE, 0, 0 },
{ 800, 600, 800, 1600, 72, 0,
IO_15BitsPerPixel, IO_DISPLAY_RGBCOLORSPACE, 0, 0 },
{ 1024, 768, 1024, 2048, 72, 0,
IO_15BitsPerPixel, IO_DISPLAY_RGBCOLORSPACE, 0, 0 }
};
These structures correspond to the display modes specified in the device configuration bundle's Localizable.strings file:
이러한 구조는 장치 구성 번들(device configuration bundle)의 Localizable.strings 파일에 지정된 디스플레이 모드에 해당합니다.
"DisplayModes" = "Height:768 Width:1024 Refresh:66Hz ColorSpace: BW:8;
Height:1024 Width:1280 Refresh: 68Hz ColorSpace: BW:8;
Height: 768 Width:1024 Refresh: 72Hz ColorSpace: RGB:555/16;
Height: 600 Width: 800 Refresh: 72Hz ColorSpace: RGB:555/16";
IODMAAlignment
정의된 위치 driverkit/driverTypes.h
개요
- typedef struct {
- unsigned readStart;
- unsigned writeStart;
- unsigned readLength;
- unsigned writeLength;
- } IODMAAlignment
설명 Used <<by whom?>> to specify DMA alignment. A field value of 0 means that alignment isn't restricted for values corresponding to the field.
<<by whom?>> 를 사용해서 DMA 정렬을 지정합니다. 필드 값 0 은 해당 필드에 해당하는 값에 대해 정렬이 제한되지 않음을 의미합니다.
IODMABuffer
정의된 위치 driverkit/driverTypes.h
개요 typedef void *IODMABuffer
설명 Used as a machine-independent type for a machine-dependent DMA buffer.
머신 의존적인 DMA 버퍼를 위한 머신 독립적 타입(machine-independent type)으로 사용된다.
IOEISADMABuffer
IODMADirection
정의된 위치 driverkit/driverTypes.h
개요
- typedef enum {
- IO_DMARead,
- IO_DMAWrite
- } IODMADirection
설명 Used <<where?>> to specify the direction of DMA. IO_DMARead indicates a transfer from the device into system memory; IO_DMAWrite indicates a transfer from system memory to the device.
<<where?>> 를 사용해서 DMA 의 방향을 지정합니다. IO_DMARead 는 장치에서 시스템 메모리로의 전송을 나타냅니다. IO_DMAWrite 는 시스템 메모리에서 장치로의 전송을 나타냅니다.
IODMAStatus
정의된 위치 driverkit/driverTypes.h
개요
- typedef enum {
- IO_None,
- IO_Complete,
- IO_Running,
- IO_Underrun,
- IO_BusError,
- IO_BufferError,
- } IODMAStatus
설명 Used <<where?>> to specify machine-independent DMA channel status.
<<where?>> 를 사용해서 기기 독립적 DMA 채널 상태를 지정합니다.
- IO_None 적절한 상태가 없음(No appropriate status)
- IO_Complete DMA 채널 유휴 상태(DMA channel idle)
- IO_Running DMA 채널 실행 중(DMA channel running)
- IO_Underrun 언더런 또는 오버런(Underrun or overrun)
- IO_BusError 버스 에러(Bus error)
- IO_BufferError DMA 버퍼 에러(DMA buffer error)
IODMATransferMode
정의된 위치 driverkit/i386/directDevice.h
개요
- typedef enum {
- IO_Demand,
- IO_Single,
- IO_Block,
- IO_Cascade,
- } IODMATransferMode
설명 Used only in the setTransferMode:forChannel: method of the EISA/ISA category of IODirectDevice.
IODirectDevice 의 EISA/ISA 범주의 setTransferMode:forChannel: 메서드에서만 사용됩니다.
IOEISADMABuffer
정의된 위치 driverkit/i386/driverTypes.h
개요 typedef void *IOEISADMABuffer
설명 Used as a machine-dependent type for a DMA buffer.
DMA 버퍼에 대한 기계 종속 유형(machine-dependent type)으로 사용됩니다.
IOEISADMATiming
정의된 위치 driverkit/i386/directDevice.h
개요
- typedef enum {
- IO_Compatible,
- IO_TypeA,
- IO_TypeB,
- IO_Burst,
- } IOEISADMATiming
설명 Used only in the setDMATiming:forChannel: method of the EISA/ISA category of IODirectDevice.
IODirectDevice 의 EISA/ISA 범주의 setDMATiming:forChannel: 메서드에서만 사용됩니다.
IOEISADMATransferWidth
정의된 위치 driverkit/i386/directDevice.h
개요
- typedef enum {
- IO_8Bit,
- IO_16BitWordCount,
- IO_16BitByteCount,
- IO_32Bit,
- } IOEISADMATransferWidth
설명 Used only in the setDMATransferWidth:forChannel: method of the EISA/ISA category of IODirectDevice.
IODirectDevice 의 EISA/ISA 범주(category)의 setDMATransferWidth:forChannel: 메서드에서만 사용됩니다.
IOEISAInterruptHandler
정의된 위치 driverkit/i386/driverTypes.h
개요
- typedef void (*IOEISAInterruptHandler)
- (void *identity,
- void *state,
- unsigned int arg)
설명 없음
IOEISAPortAddress
정의된 위치 driverkit/i386/driverTypes.h
개요 typedef unsigned short IOEISAPortAddress
설명 없음
IOEISAStopRegisterMode
정의된 위치 driverkit/i386/directDevice.h
개요
- typedef enum {
- IO_StopRegisterEnable,
- IO_StopRegisterDisable,
- } IOEISAStopRegisterMode
설명 Used only in the setStopRegisterMode:forChannel: method of the EISA/ISA category of IODirectDevice.
IODirectDevice 의 EISA/ISA 범주(category)의 setStopRegisterMode:forChannel: 메서드에서만 사용됩니다.
IOIncrementMode
정의된 위치 driverkit/i386/directDevice.h
개요
- typedef enum {
- IO_Increment,
- IO_Decrement,
- } IOIncrementMode
설명 Used only in the setIncrementMode:forChannel: method of the EISA/ISA category of IODirectDevice.
IODirectDevice 의 EISA/ISA 범주(category)의 setIncrementMode:forChannel: 메서드에서만 사용됩니다.
IOInterruptHandler
정의된 위치 driverkit/driverTypes.h
개요
- typedef void (*IOInterruptHandler)
- (void *identity,
- void *state,
- unsigned int arg)
설명 없음
IOInterruptMsg
정의된 위치 driverkit/interruptMsg.h
개요
- typedef struct {
- msg_header_t header;
- } IOInterruptMsg
설명 The format of the message sent by the kernel to a driver's interrupt handler.
커널에 의해 드라이버의 인터럽트 핸들러로 보내지는 메시지의 형식.
IOIntParameter
정의된 위치 driverkit/driverTypes.h
개요 typedef int IOIntParameter[IO_MAX_PARAMETER_ARRAY_LENGTH]
설명 Standard type for an integer parameter value, used by the get/set parameter functionality provided by IODevice and IODeviceMaster.
IODevice 및 IODeviceMaster 에서 제공하는 get/set 매개 변수 기능에 사용되는 정수 매개 변수 값의 표준 형식입니다.
IOIPCSpace
정의된 위치 driverkit/kernelDriver.h
개요
- typedef enum {
- IO_Kernel,
- IO_KernelIOTask,
- IO_CurrentTask
- } IOIPCSpace
설명 Used only by the IOConvertPort() function to specify which space to convert the port from and to.
포트를 변환할 공간을 지정하기 위해 IOConvertPort() 함수에서만 사용됩니다.
IONamedValue
정의된 위치 driverkit/driverTypes.h
개요
- typedef struct {
- int value;
- const char *name;
- } IONamedValue
설명 Map between constants or enumerations and text description.
상수 또는 열거 형과 텍스트 설명 사이를 매핑합니다.
IOObjectNumber
정의된 위치 driverkit/driverTypes.h
개요 typedef unsigned int IOObjectNumber
설명 없음
IOParameterName
정의된 위치 driverkit/driverTypes.h
개요 typedef char IOParameterName[IO_MAX_PARAMETER_NAME_LENGTH]
설명 Standard type for a parameter name, used by the get/set parameter functionality provided by IODevice and IODeviceMaster.
IODevice 및 IODeviceMaster 에서 제공하는 get/set 매개 변수 기능에 사용되는 매개 변수 이름의 표준 유형입니다.
IORange
정의된 위치 driverkit/driverTypes.h
개요
- typedef struct range {
- unsigned int start;
- unsigned int size;
- } IORange
설명 Indicates a range of values. Used for memory regions, port regions, and so on.
값의 범위를 나타냅니다. 메모리 영역, 포트 영역 등에 사용됩니다.
IOReturn
정의된 위치 driverkit/return.h
개요 typedef int IOReturn
설명 IOReturn values are returned by many Driver Kit classes.
IOReturn 값은 많은 Driver Kit 클래스에서 반환됩니다.
IOSCSIRequest
정의된 위치 driverkit/scsiTypes.h
개요
- typedef struct {
- unsigned char target;
- unsigned char lun;
- cdb_t cdb;
- BOOL read;
- int maxTransfer;
- int timeoutLength;
- unsigned disconnect:1;
- unsigned pad:31;
- sc_status_t driverStatus;
- unsigned char scsiStatus;
- int bytesTransferred;
- ns_time_t totalTime;
- ns_time_t latentTime;
- esense_reply_t senseData;
- } IOSCSIRequest
설명 Used in the IOSCSIController protocol's executeRequest:buffer:client: method.
IOSCSIController 프로토콜의 executeRequest:buffer:client: 메소드에 사용됩니다.
IOString
정의된 위치 driverkit/driverTypes.h
개요 typedef char IOString[IO_STRING_LENGTH]
설명 Standard type for an ASCII name, such as a device's name or type.
장치 이름 또는 형식과 같은 ASCII 이름의 표준 형식입니다.
IOSwitchFunc
정의된 위치 driverkit/devsw.h
개요 typedef int (*IOSwitchFunc)()
설명 Used by IOAddToBdevsw() and IOAddToCdevsw() to specify UNIX-style entry points into a driver.
IOAddToBdevsw() 및 IOAddToCdevsw() 가 드라이버에 UNIX 스타일의 진입점을 지정하는데 사용합니다.
IOThread
정의된 위치 driverkit/generalFuncs.h
개요 typedef void *IOThread
설명 An opaque type used by the general-purpose functions to represent a thread.
thread 를 나타내야할 경우에 범용 함수에 의해 사용되는 불투명한 형태입니다.
IOThreadFunc
정의된 위치 driverkit/generalFuncs.h
개요
- typedef void (*IOThreadFunc)
- (void *arg)
설명 Used by the general-purpose functions to specify the function that a thread should execute.
스레드가 실행해야 하는 함수를 지정하기 위해 범용 함수에서 사용됩니다.
기호 상수(Symbolic Constants)
Length Constants
정의된 위치 driverkit/driverTypes.h
개요
- IO_STRING_LENGTH
- IO_MAX_PARAMETER_NAME_LENGTH
- IO_MAX_PARAMETER_ARRAY_LENGTH
설명 These constants are used to determine the maximum length of the following types:
이러한 상수는 다음 유형의 최대 길이를 결정하는데 사용됩니다.
- IO_STRING_LENGTH IOString
- IO_MAX_PARAMETER_NAME_LENGTH IOParameterName
- IO_MAX_PARAMETER_ARRAY_LENGTH IOIntParameter
- IOCharParameter
Debugging String Length
정의된 위치 driverkit/debuggingMsg.h
개요 IO_DDM_STRING_LENGTH
설명 The length of the string field in an IODebuggingMsg.
IODebuggingMsg 의 문자열 필드 길이.
Debugging Messages
정의된 위치 driverkit/debuggingMsg.h
개요
- Constant Meaning
- IO_DDM_MSG_BASE IODebuggingMsg가 가질 수있는 가장 낮은 ID(The lowest ID an IODebuggingMsg can have)
- IO_LOCK_DDM_MSG 드라이버 디버깅 모듈 (DDM) 잠금(Lock the Driver Debugging Module (DDM))
- IO_UNLOCK_DDM_MSG DDM 잠금 해제(Unlock the DDM)
- IO_GET_DDM_ENTRY_MSG DDM에서 항목 가져 오기(Get an entry from the DDM)
- IO_SET_DDM_MASK_MSG DDM에 대한 디버깅 마스크 설정(Set the debugging mask for the DDM)
- IO_CLEAR_DDM_MSG DDM의 모든 항목 지우기(Clear all entries from the DDM)
설명 Values for the header.msg_id field of an IODebuggingMsg. See the discussion of the DDM in Chapter 2 for more information on these messages. <<check>>
IODebuggingMsg 의 header.msg_id 필드 값입니다. 이러한 메시지에 대한 자세한 정보는 2 장의 DDM 에 대한 설명을 참조하십시오. <<check>>
Return Values from the DDM
정의된 위치 driverkit/debuggingMsg.h
개요
- Constant Meaning
- IO_DDM_SUCCESS 메시지를 받고 이해했습니다(The message was received and understood)
- IO_NO_DDM_BUFFER DDM 은 지정된 오프셋에 항목이 없습니다.(The DDM has no entry at the specified offset)
- IO_BAD_DDM_INDEX 지정된 색인이 유효하지 않습니다.(The specified index isn't valid)
설명 (Values for the status field of an IODebuggingMsg.
IODebuggingMsg의 상태 필드 값.
DDM Masks
정의된 위치 driverkit/debugging.h
개요 IO_NUM_DDM_MASKS
설명 This constant specifies the number of masks used by the Driver Debugging Module.
이 상수는 드라이버 디버깅 모듈에서 사용하는 마스크 수를 지정합니다.
Interrupt Messages
정의된 위치 driverkit/interruptMsg.h
개요
- Constant Meaning
- IO_INTERRUPT_MSG_ID_BASE IOInterruptMsg 가 가질 수있는 가장 낮은 ID(The lowest ID an IOInterruptMsg can have)
- IO_TIMEOUT_MSG
- IO_COMMAND_MSG
- IO_DEVICE_INTERRUPT_MSG 인터럽트가 발생할 때 커널에서 전송(Sent by the kernel when an interrupt occurs)
- IO_DMA_INTERRUPT_MSG
- IO_FIRST_UNRESERVED_INTERRUPT_MSG
설명 Values for the header.msg_id field of an IOInterruptMsg. See the discussion of interrupts in Chapter 2 for more information on interrupt messages. <<check. WHO USES everything except IO_DEVICE_INTERRUPT_MSG, and how?>>
IOInterruptMsg 의 header.msg_id 필드 값입니다. 인터럽트 메시지에 대한 자세한 내용은 2 장의 인터럽트에 대한 설명을 참조하십시오. <<체크. 누가 IO_DEVICE_INTERRUPT_MSG 를 제외한 모든 것을 사용합니까?>>
IOReturn Constants
정의된 위치 driverkit/return.h
개요
- Constant Meaning
- IO_R_SUCCESS 오류 발생 없음(No error occurred)
- IO_R_NO_MEMORY 메모리 할당 불가(Couldn't allocate memory)
- IO_R_RESOURCE 자원 부족(Resource shortage)
- IO_R_VM_FAILURE 기타 가상 메모리 오류(Miscellaneous virtual memory failure)
- IO_R_INTERNAL 내부 라이브러리 오류(Internal library error)
- IO_R_RLD 변동 가능 파일 로드 오류(Error in loading a relocatable file)
- IO_R_IPC_FAILURE IPC 중에 오류 발생(Error during IPC)[1]
- IO_R_NO_CHANNELS 사용할 수 있는 DMA 채널이 없음(No DMA channels are available)
- IO_R_NO_SPACE 매핑에 사용할 수 있는 주소 공간이 없음(No address space is available for mapping)
- IO_R_NO_DEVICE 해당 장치가 없음(No such device)
- IO_R_PRIVILEGE 권한/액세스 위반(Privilege/access violation)
- IO_R_INVALID_ARG 잘못된 인수(Invalid argument)
- IO_R_BAD_MSG_ID ???
- IO_R_UNSUPPORTED 지원하지 않는 함수(Unsupported function)
- IO_R_INVALID 볼 수 없음(Should never be seen)
- IO_R_LOCKED_READ 장치의 읽기가 잠겨있음(Device is read locked)
- IO_R_LOCKED_WRITE 장치의 쓰기가 잠겨있음(Device is write locked)
- IO_R_EXCLUSIVE_ACCESS 기기가 독점적으로 액세스 할 수 있으며 이미 열려 있다(Device is exclusive access and is already open)
- IO_R_CANT_LOCK 잠금 요청을 가져올 수 없다(Can't acquire requested lock)
- IO_R_NOT_OPEN 장치를 열 수 없음(Device not open)
- IO_R_OPEN 장치가 열려있음(Device is still open)
- IO_R_NOT_READABLE 읽기를 지원하지 않음(Reading not supported)
- IO_R_NOT_WRITABLE 쓰기를 지원하지 않음(Writing not supported)
- IO_R_IO 일반적인 I/O 에러(General I/O error)
- IO_R_BUSY 장치가 사용중(Device is busy)
- IO_R_NOT_READY 장치가 준비되지 않음(Device isn't ready)
- IO_R_OFFLINE 장치가 오프라인 상태임(Device is off line)
- IO_R_ALIGN DMA 정렬 오류(DMA alignment error)
- IO_R_MEDIA 미디어 오류(Media error)
- IO_R_DMA DMA 실패(DMA failure)
- IO_R_TIMEOUT I/O timeout
- IO_R_NOT_ATTACHED 장치 또는 채널이 연결되지 않았음(The device or channel isn't attached)
- IO_R_PORT_EXISTS 장치 포트가 이미 있음(The device port already exists)
- IO_R_CANT_WIRE 사용된 실제 메모리를 <<사용 된 실제 메모리를 연결 해제 할 수 없습니까? 물리적 메모리를 연결 해제 할 수 있습니까?>>(Can't wire down physical memory <<ever used? can you ever wire down physical memory?>>)
- IO_R_NO_INTERRUPT 인터럽트 포트가 연결되어 있지 않음(No interrupt port is attached)
- IO_R_NO_FRAMES DMA가 대기열에 추가되지 않음(No DMA is enqueued)
설명 Values for IOReturns.
IOReturns 값.
IODevice Parameter Names
정의된 위치 driverkit/IODevice.h
개요
- Constant Meaning
- IO_CLASS_NAME + name 반환값(The value returned by)
- IO_DEVICE_NAME - name 반환값(The value returned by)
- IO_DEVICE_KIND - deviceKind 반환값(The value returned by)
- IO_UNIT - unit 반환값(The value returned by)
설명 없음
Null Constants
정의된 위치 driverkit/driverTypes.h
개요
- define NULL 0
- define IO_NULL_VM_TASK ((vm_task_t)0)
설명 Standard null values, used in various places.
표준 NULL 값. 여러 위치에서 사용됩니다
Unused Constants
정의된 위치 driverkit/driverTypes.h
개요
- IO_CC_START_READ
- IO_CC_START_WRITE
- IO_CC_ABORT
- IO_CC_ENABLE_DEVICE_INTERRUPTS
- IO_CC_DISABLE_DEVICE_INTERRUPTS
- IO_CC_ENABLE_INTERRUPTS
- IO_CC_DISABLE_INTERRUPTS
- IO_CC_CONNECT_FRAME_LOOP
- IO_CC_DISCONNECT_FRAME_LOOP
- IO_CDO_DONE
- IO_CDO_ALL
- IO_CDO_ENABLE_INTERRUPTS
- IO_CDO_ENABLE_INTERRUPTS_IF_EMPTY
- IO_CEO_END_OF_RECORD
- IO_CEO_DESCRIPTOR_INTERRUPT
- IO_CEO_ENABLE_INTERRUPTS
- IO_CEO_DESCRIPTOR_COMMAND
- IO_CEO_ENABLE_CHANNEL
- IO_MAX_BOARD_SIZE
- IO_MAX_NRW_SLOT_SIZE
- IO_MAX_SLOT_SIZE
- IO_NATIVE_SLOT_ID
- IO_NO_CHANNEL
- IO_NULL_SLOT_ID
- IO_NULL_DEVICE_TYPE
- IO_NULL_DEVICE_INDEX
- IO_NULL_DMA_ID
- IO_SLOT_DEVICE_TYPE
설명 These constants aren't used by drivers for Intel-based computers.
이 상수들은 Intel 기반 컴퓨터의 드라이버에서는 사용되지 않습니다.
전역변수(Global Variables)
IODDMMasks
정의된 위치 driverkit/debugging.h
개요 unsigned int IODDMMasks[IO_NUM_DDM_MASKS]
설명 The bitmask used to filter storing of debugging events. See the discussion of the Driver Debugging Module in Chapter 2 for more information.
디버그 이벤트 저장을 필터링하는데 사용되는 비트 마스크입니다. 자세한 정보는 2 장의 드라이버 디버깅 모듈에 대한 설명을 참조하십시오.
IODMAStatusStrings
정의된 위치 driverkit/driverTypes.h
개요 const IONamedValue IODMAStatusStrings[]
정의된 위치 Used as an argument to IOFindNameForValue() to convert an IODMAStatus value into an error string.
IOFindNameForValue() 에 대한 인수로 사용되며 IODMAStatus 값을 오류 문자열로 변환합니다.
Notes
- ↑ 내부 프로 세스간 통신 - Inter Process Communication. https://www.joinc.co.kr/w/Site/system_programing/Book_LSP/ch08_IPC