summaryrefslogtreecommitdiffstats
path: root/sys/dev/asr/i2obscsi.h
diff options
context:
space:
mode:
Diffstat (limited to 'sys/dev/asr/i2obscsi.h')
-rw-r--r--sys/dev/asr/i2obscsi.h278
1 files changed, 139 insertions, 139 deletions
diff --git a/sys/dev/asr/i2obscsi.h b/sys/dev/asr/i2obscsi.h
index 7e25ffa..06ee30c 100644
--- a/sys/dev/asr/i2obscsi.h
+++ b/sys/dev/asr/i2obscsi.h
@@ -81,7 +81,7 @@
****************************************************************/
#if !defined(I2O_BASE_SCSI_HDR)
-#define I2O_BASE_SCSI_HDR
+#define I2O_BASE_SCSI_HDR
#if ((defined(KERNEL) || defined(_KERNEL)) && defined(__FreeBSD__))
# if (KERN_VERSION < 3)
@@ -94,7 +94,7 @@
#endif
-#define I2OBSCSI_REV 1_5_1 /* Header file revision string */
+#define I2OBSCSI_REV 1_5_1 /* Header file revision string */
@@ -184,61 +184,61 @@ PRAGMA_PACK_PUSH
/* SCSI Device Completion Status Codes (defined by SCSI-2/3)*/
-#define I2O_SCSI_DEVICE_DSC_MASK 0x00FF
+#define I2O_SCSI_DEVICE_DSC_MASK 0x00FF
-#define I2O_SCSI_DSC_SUCCESS 0x0000
-#define I2O_SCSI_DSC_CHECK_CONDITION 0x0002
-#define I2O_SCSI_DSC_BUSY 0x0008
-#define I2O_SCSI_DSC_RESERVATION_CONFLICT 0x0018
-#define I2O_SCSI_DSC_COMMAND_TERMINATED 0x0022
-#define I2O_SCSI_DSC_TASK_SET_FULL 0x0028
-#define I2O_SCSI_DSC_ACA_ACTIVE 0x0030
+#define I2O_SCSI_DSC_SUCCESS 0x0000
+#define I2O_SCSI_DSC_CHECK_CONDITION 0x0002
+#define I2O_SCSI_DSC_BUSY 0x0008
+#define I2O_SCSI_DSC_RESERVATION_CONFLICT 0x0018
+#define I2O_SCSI_DSC_COMMAND_TERMINATED 0x0022
+#define I2O_SCSI_DSC_TASK_SET_FULL 0x0028
+#define I2O_SCSI_DSC_ACA_ACTIVE 0x0030
/* SCSI Adapter Status Codes (based on CAM-1) */
-#define I2O_SCSI_HBA_DSC_MASK 0xFF00
-
-#define I2O_SCSI_HBA_DSC_SUCCESS 0x0000
-
-#define I2O_SCSI_HBA_DSC_REQUEST_ABORTED 0x0200
-#define I2O_SCSI_HBA_DSC_UNABLE_TO_ABORT 0x0300
-#define I2O_SCSI_HBA_DSC_COMPLETE_WITH_ERROR 0x0400
-#define I2O_SCSI_HBA_DSC_ADAPTER_BUSY 0x0500
-#define I2O_SCSI_HBA_DSC_REQUEST_INVALID 0x0600
-#define I2O_SCSI_HBA_DSC_PATH_INVALID 0x0700
-#define I2O_SCSI_HBA_DSC_DEVICE_NOT_PRESENT 0x0800
-#define I2O_SCSI_HBA_DSC_UNABLE_TO_TERMINATE 0x0900
-#define I2O_SCSI_HBA_DSC_SELECTION_TIMEOUT 0x0A00
-#define I2O_SCSI_HBA_DSC_COMMAND_TIMEOUT 0x0B00
-
-#define I2O_SCSI_HBA_DSC_MR_MESSAGE_RECEIVED 0x0D00
-#define I2O_SCSI_HBA_DSC_SCSI_BUS_RESET 0x0E00
-#define I2O_SCSI_HBA_DSC_PARITY_ERROR_FAILURE 0x0F00
-#define I2O_SCSI_HBA_DSC_AUTOSENSE_FAILED 0x1000
-#define I2O_SCSI_HBA_DSC_NO_ADAPTER 0x1100
-#define I2O_SCSI_HBA_DSC_DATA_OVERRUN 0x1200
-#define I2O_SCSI_HBA_DSC_UNEXPECTED_BUS_FREE 0x1300
-#define I2O_SCSI_HBA_DSC_SEQUENCE_FAILURE 0x1400
-#define I2O_SCSI_HBA_DSC_REQUEST_LENGTH_ERROR 0x1500
-#define I2O_SCSI_HBA_DSC_PROVIDE_FAILURE 0x1600
-#define I2O_SCSI_HBA_DSC_BDR_MESSAGE_SENT 0x1700
-#define I2O_SCSI_HBA_DSC_REQUEST_TERMINATED 0x1800
-
-#define I2O_SCSI_HBA_DSC_IDE_MESSAGE_SENT 0x3300
-#define I2O_SCSI_HBA_DSC_RESOURCE_UNAVAILABLE 0x3400
-#define I2O_SCSI_HBA_DSC_UNACKNOWLEDGED_EVENT 0x3500
-#define I2O_SCSI_HBA_DSC_MESSAGE_RECEIVED 0x3600
-#define I2O_SCSI_HBA_DSC_INVALID_CDB 0x3700
-#define I2O_SCSI_HBA_DSC_LUN_INVALID 0x3800
-#define I2O_SCSI_HBA_DSC_SCSI_TID_INVALID 0x3900
-#define I2O_SCSI_HBA_DSC_FUNCTION_UNAVAILABLE 0x3A00
-#define I2O_SCSI_HBA_DSC_NO_NEXUS 0x3B00
-#define I2O_SCSI_HBA_DSC_SCSI_IID_INVALID 0x3C00
-#define I2O_SCSI_HBA_DSC_CDB_RECEIVED 0x3D00
-#define I2O_SCSI_HBA_DSC_LUN_ALREADY_ENABLED 0x3E00
-#define I2O_SCSI_HBA_DSC_BUS_BUSY 0x3F00
-
-#define I2O_SCSI_HBA_DSC_QUEUE_FROZEN 0x4000
+#define I2O_SCSI_HBA_DSC_MASK 0xFF00
+
+#define I2O_SCSI_HBA_DSC_SUCCESS 0x0000
+
+#define I2O_SCSI_HBA_DSC_REQUEST_ABORTED 0x0200
+#define I2O_SCSI_HBA_DSC_UNABLE_TO_ABORT 0x0300
+#define I2O_SCSI_HBA_DSC_COMPLETE_WITH_ERROR 0x0400
+#define I2O_SCSI_HBA_DSC_ADAPTER_BUSY 0x0500
+#define I2O_SCSI_HBA_DSC_REQUEST_INVALID 0x0600
+#define I2O_SCSI_HBA_DSC_PATH_INVALID 0x0700
+#define I2O_SCSI_HBA_DSC_DEVICE_NOT_PRESENT 0x0800
+#define I2O_SCSI_HBA_DSC_UNABLE_TO_TERMINATE 0x0900
+#define I2O_SCSI_HBA_DSC_SELECTION_TIMEOUT 0x0A00
+#define I2O_SCSI_HBA_DSC_COMMAND_TIMEOUT 0x0B00
+
+#define I2O_SCSI_HBA_DSC_MR_MESSAGE_RECEIVED 0x0D00
+#define I2O_SCSI_HBA_DSC_SCSI_BUS_RESET 0x0E00
+#define I2O_SCSI_HBA_DSC_PARITY_ERROR_FAILURE 0x0F00
+#define I2O_SCSI_HBA_DSC_AUTOSENSE_FAILED 0x1000
+#define I2O_SCSI_HBA_DSC_NO_ADAPTER 0x1100
+#define I2O_SCSI_HBA_DSC_DATA_OVERRUN 0x1200
+#define I2O_SCSI_HBA_DSC_UNEXPECTED_BUS_FREE 0x1300
+#define I2O_SCSI_HBA_DSC_SEQUENCE_FAILURE 0x1400
+#define I2O_SCSI_HBA_DSC_REQUEST_LENGTH_ERROR 0x1500
+#define I2O_SCSI_HBA_DSC_PROVIDE_FAILURE 0x1600
+#define I2O_SCSI_HBA_DSC_BDR_MESSAGE_SENT 0x1700
+#define I2O_SCSI_HBA_DSC_REQUEST_TERMINATED 0x1800
+
+#define I2O_SCSI_HBA_DSC_IDE_MESSAGE_SENT 0x3300
+#define I2O_SCSI_HBA_DSC_RESOURCE_UNAVAILABLE 0x3400
+#define I2O_SCSI_HBA_DSC_UNACKNOWLEDGED_EVENT 0x3500
+#define I2O_SCSI_HBA_DSC_MESSAGE_RECEIVED 0x3600
+#define I2O_SCSI_HBA_DSC_INVALID_CDB 0x3700
+#define I2O_SCSI_HBA_DSC_LUN_INVALID 0x3800
+#define I2O_SCSI_HBA_DSC_SCSI_TID_INVALID 0x3900
+#define I2O_SCSI_HBA_DSC_FUNCTION_UNAVAILABLE 0x3A00
+#define I2O_SCSI_HBA_DSC_NO_NEXUS 0x3B00
+#define I2O_SCSI_HBA_DSC_SCSI_IID_INVALID 0x3C00
+#define I2O_SCSI_HBA_DSC_CDB_RECEIVED 0x3D00
+#define I2O_SCSI_HBA_DSC_LUN_ALREADY_ENABLED 0x3E00
+#define I2O_SCSI_HBA_DSC_BUS_BUSY 0x3F00
+
+#define I2O_SCSI_HBA_DSC_QUEUE_FROZEN 0x4000
/****************************************************************************/
@@ -259,100 +259,100 @@ PRAGMA_PACK_PUSH
/* Device Type */
-#define I2O_SCSI_DEVICE_TYPE_DIRECT 0x00
-#define I2O_SCSI_DEVICE_TYPE_SEQUENTIAL 0x01
-#define I2O_SCSI_DEVICE_TYPE_PRINTER 0x02
-#define I2O_SCSI_DEVICE_TYPE_PROCESSOR 0x03
-#define I2O_SCSI_DEVICE_TYPE_WORM 0x04
-#define I2O_SCSI_DEVICE_TYPE_CDROM 0x05
-#define I2O_SCSI_DEVICE_TYPE_SCANNER 0x06
-#define I2O_SCSI_DEVICE_TYPE_OPTICAL 0x07
-#define I2O_SCSI_DEVICE_TYPE_MEDIA_CHANGER 0x08
-#define I2O_SCSI_DEVICE_TYPE_COMM 0x09
-#define I2O_SCSI_DEVICE_GRAPHICS_1 0x0A
-#define I2O_SCSI_DEVICE_GRAPHICS_2 0x0B
-#define I2O_SCSI_DEVICE_TYPE_ARRAY_CONT 0x0C
-#define I2O_SCSI_DEVICE_TYPE_SES 0x0D
-#define I2O_SCSI_DEVICE_TYPE_UNKNOWN 0x1F
+#define I2O_SCSI_DEVICE_TYPE_DIRECT 0x00
+#define I2O_SCSI_DEVICE_TYPE_SEQUENTIAL 0x01
+#define I2O_SCSI_DEVICE_TYPE_PRINTER 0x02
+#define I2O_SCSI_DEVICE_TYPE_PROCESSOR 0x03
+#define I2O_SCSI_DEVICE_TYPE_WORM 0x04
+#define I2O_SCSI_DEVICE_TYPE_CDROM 0x05
+#define I2O_SCSI_DEVICE_TYPE_SCANNER 0x06
+#define I2O_SCSI_DEVICE_TYPE_OPTICAL 0x07
+#define I2O_SCSI_DEVICE_TYPE_MEDIA_CHANGER 0x08
+#define I2O_SCSI_DEVICE_TYPE_COMM 0x09
+#define I2O_SCSI_DEVICE_GRAPHICS_1 0x0A
+#define I2O_SCSI_DEVICE_GRAPHICS_2 0x0B
+#define I2O_SCSI_DEVICE_TYPE_ARRAY_CONT 0x0C
+#define I2O_SCSI_DEVICE_TYPE_SES 0x0D
+#define I2O_SCSI_DEVICE_TYPE_UNKNOWN 0x1F
/* Flags */
-#define I2O_SCSI_PERIPHERAL_TYPE_FLAG 0x01
-#define I2O_SCSI_PERIPHERAL_TYPE_PARALLEL 0x00
-#define I2O_SCSI_PERIPHERAL_TYPE_SERIAL 0x01
+#define I2O_SCSI_PERIPHERAL_TYPE_FLAG 0x01
+#define I2O_SCSI_PERIPHERAL_TYPE_PARALLEL 0x00
+#define I2O_SCSI_PERIPHERAL_TYPE_SERIAL 0x01
-#define I2O_SCSI_RESERVED_FLAG 0x02
+#define I2O_SCSI_RESERVED_FLAG 0x02
-#define I2O_SCSI_DISCONNECT_FLAG 0x04
-#define I2O_SCSI_DISABLE_DISCONNECT 0x00
-#define I2O_SCSI_ENABLE_DISCONNECT 0x04
+#define I2O_SCSI_DISCONNECT_FLAG 0x04
+#define I2O_SCSI_DISABLE_DISCONNECT 0x00
+#define I2O_SCSI_ENABLE_DISCONNECT 0x04
-#define I2O_SCSI_MODE_MASK 0x18
-#define I2O_SCSI_MODE_SET_DATA 0x00
-#define I2O_SCSI_MODE_SET_DEFAULT 0x08
-#define I2O_SCSI_MODE_SET_SAFEST 0x10
+#define I2O_SCSI_MODE_MASK 0x18
+#define I2O_SCSI_MODE_SET_DATA 0x00
+#define I2O_SCSI_MODE_SET_DEFAULT 0x08
+#define I2O_SCSI_MODE_SET_SAFEST 0x10
-#define I2O_SCSI_DATA_WIDTH_MASK 0x60
-#define I2O_SCSI_DATA_WIDTH_8 0x00
-#define I2O_SCSI_DATA_WIDTH_16 0x20
-#define I2O_SCSI_DATA_WIDTH_32 0x40
+#define I2O_SCSI_DATA_WIDTH_MASK 0x60
+#define I2O_SCSI_DATA_WIDTH_8 0x00
+#define I2O_SCSI_DATA_WIDTH_16 0x20
+#define I2O_SCSI_DATA_WIDTH_32 0x40
-#define I2O_SCSI_SYNC_NEGOTIATION_FLAG 0x80
-#define I2O_SCSI_DISABLE_SYNC_NEGOTIATION 0x00
-#define I2O_SCSI_ENABLE_SYNC_NEGOTIATION 0x80
+#define I2O_SCSI_SYNC_NEGOTIATION_FLAG 0x80
+#define I2O_SCSI_DISABLE_SYNC_NEGOTIATION 0x00
+#define I2O_SCSI_ENABLE_SYNC_NEGOTIATION 0x80
/* - 0001h - SCSI Device Bus Port Info Parameters Group defines */
/* Physical */
-#define I2O_SCSI_PORT_PHYS_OTHER 0x01
-#define I2O_SCSI_PORT_PHYS_UNKNOWN 0x02
-#define I2O_SCSI_PORT_PHYS_PARALLEL 0x03
-#define I2O_SCSI_PORT_PHYS_FIBRE_CHANNEL 0x04
-#define I2O_SCSI_PORT_PHYS_SERIAL_P1394 0x05
-#define I2O_SCSI_PORT_PHYS_SERIAL_SSA 0x06
+#define I2O_SCSI_PORT_PHYS_OTHER 0x01
+#define I2O_SCSI_PORT_PHYS_UNKNOWN 0x02
+#define I2O_SCSI_PORT_PHYS_PARALLEL 0x03
+#define I2O_SCSI_PORT_PHYS_FIBRE_CHANNEL 0x04
+#define I2O_SCSI_PORT_PHYS_SERIAL_P1394 0x05
+#define I2O_SCSI_PORT_PHYS_SERIAL_SSA 0x06
/* Electrical */
-#define I2O_SCSI_PORT_ELEC_OTHER 0x01
-#define I2O_SCSI_PORT_ELEC_UNKNOWN 0x02
-#define I2O_SCSI_PORT_ELEC_SINGLE_ENDED 0x03
-#define I2O_SCSI_PORT_ELEC_DIFFERENTIAL 0x04
-#define I2O_SCSI_PORT_ELEC_LOW_VOLT_DIFF 0x05
-#define I2O_SCSI_PORT_ELEC_OPTICAL 0x06
+#define I2O_SCSI_PORT_ELEC_OTHER 0x01
+#define I2O_SCSI_PORT_ELEC_UNKNOWN 0x02
+#define I2O_SCSI_PORT_ELEC_SINGLE_ENDED 0x03
+#define I2O_SCSI_PORT_ELEC_DIFFERENTIAL 0x04
+#define I2O_SCSI_PORT_ELEC_LOW_VOLT_DIFF 0x05
+#define I2O_SCSI_PORT_ELEC_OPTICAL 0x06
/* Isochronous */
-#define I2O_SCSI_PORT_ISOC_NO 0x00
-#define I2O_SCSI_PORT_ISOC_YES 0x01
-#define I2O_SCSI_PORT_ISOC_UNKNOWN 0x02
+#define I2O_SCSI_PORT_ISOC_NO 0x00
+#define I2O_SCSI_PORT_ISOC_YES 0x01
+#define I2O_SCSI_PORT_ISOC_UNKNOWN 0x02
/* Connector Type */
-#define I2O_SCSI_PORT_CONN_OTHER 0x01
-#define I2O_SCSI_PORT_CONN_UNKNOWN 0x02
-#define I2O_SCSI_PORT_CONN_NONE 0x03
-#define I2O_SCSI_PORT_CONN_SHIELDED_A_HD 0x04
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_HD 0x05
-#define I2O_SCSI_PORT_CONN_SHIELDED_A_LD 0x06
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_LD 0x07
-#define I2O_SCSI_PORT_CONN_SHIELDED_P_HD 0x08
-#define I2O_SCSI_PORT_CONN_UNSHIELDED_P_HD 0x09
-#define I2O_SCSI_PORT_CONN_SCA_I 0x0A
-#define I2O_SCSI_PORT_CONN_SCA_II 0x0B
-#define I2O_SCSI_PORT_CONN_FC_DB9 0x0C
-#define I2O_SCSI_PORT_CONN_FC_FIBRE 0x0D
-#define I2O_SCSI_PORT_CONN_FC_SCA_II_40 0x0E
-#define I2O_SCSI_PORT_CONN_FC_SCA_II_20 0x0F
-#define I2O_SCSI_PORT_CONN_FC_BNC 0x10
+#define I2O_SCSI_PORT_CONN_OTHER 0x01
+#define I2O_SCSI_PORT_CONN_UNKNOWN 0x02
+#define I2O_SCSI_PORT_CONN_NONE 0x03
+#define I2O_SCSI_PORT_CONN_SHIELDED_A_HD 0x04
+#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_HD 0x05
+#define I2O_SCSI_PORT_CONN_SHIELDED_A_LD 0x06
+#define I2O_SCSI_PORT_CONN_UNSHIELDED_A_LD 0x07
+#define I2O_SCSI_PORT_CONN_SHIELDED_P_HD 0x08
+#define I2O_SCSI_PORT_CONN_UNSHIELDED_P_HD 0x09
+#define I2O_SCSI_PORT_CONN_SCA_I 0x0A
+#define I2O_SCSI_PORT_CONN_SCA_II 0x0B
+#define I2O_SCSI_PORT_CONN_FC_DB9 0x0C
+#define I2O_SCSI_PORT_CONN_FC_FIBRE 0x0D
+#define I2O_SCSI_PORT_CONN_FC_SCA_II_40 0x0E
+#define I2O_SCSI_PORT_CONN_FC_SCA_II_20 0x0F
+#define I2O_SCSI_PORT_CONN_FC_BNC 0x10
/* Connector Gender */
-#define I2O_SCSI_PORT_CONN_GENDER_OTHER 0x01
-#define I2O_SCSI_PORT_CONN_GENDER_UNKOWN 0x02
-#define I2O_SCSI_PORT_CONN_GENDER_FEMALE 0x03
-#define I2O_SCSI_PORT_CONN_GENDER_MALE 0x04
+#define I2O_SCSI_PORT_CONN_GENDER_OTHER 0x01
+#define I2O_SCSI_PORT_CONN_GENDER_UNKOWN 0x02
+#define I2O_SCSI_PORT_CONN_GENDER_FEMALE 0x03
+#define I2O_SCSI_PORT_CONN_GENDER_MALE 0x04
/* SCSI Device Group 0000h - Device Information Parameter Group */
@@ -392,7 +392,7 @@ typedef struct _I2O_SCSI_BUS_PORT_INFO_SCALAR {
/* I2O SCSI Peripheral Event Indicator Assignment */
-#define I2O_SCSI_EVENT_SCSI_SMART 0x00000010
+#define I2O_SCSI_EVENT_SCSI_SMART 0x00000010
/****************************************************************************/
@@ -417,9 +417,9 @@ typedef struct _I2O_SCSI_SUCCESS_REPLY_MESSAGE_FRAME {
/* I2O SCSI Peripheral Error Report Reply Message Frame */
#ifdef _WIN64
-#define I2O_SCSI_SENSE_DATA_SZ 44
+#define I2O_SCSI_SENSE_DATA_SZ 44
#else
-#define I2O_SCSI_SENSE_DATA_SZ 40
+#define I2O_SCSI_SENSE_DATA_SZ 40
#endif
typedef struct _I2O_SCSI_ERROR_REPLY_MESSAGE_FRAME {
@@ -459,24 +459,24 @@ typedef struct _I2O_SCSI_SCB_ABORT_MESSAGE {
typedef U16 I2O_SCB_FLAGS;
-#define I2O_SCB_FLAG_XFER_DIR_MASK 0xC000
-#define I2O_SCB_FLAG_NO_DATA_XFER 0x0000
-#define I2O_SCB_FLAG_XFER_FROM_DEVICE 0x4000
-#define I2O_SCB_FLAG_XFER_TO_DEVICE 0x8000
+#define I2O_SCB_FLAG_XFER_DIR_MASK 0xC000
+#define I2O_SCB_FLAG_NO_DATA_XFER 0x0000
+#define I2O_SCB_FLAG_XFER_FROM_DEVICE 0x4000
+#define I2O_SCB_FLAG_XFER_TO_DEVICE 0x8000
-#define I2O_SCB_FLAG_ENABLE_DISCONNECT 0x2000
+#define I2O_SCB_FLAG_ENABLE_DISCONNECT 0x2000
-#define I2O_SCB_FLAG_TAG_TYPE_MASK 0x0380
-#define I2O_SCB_FLAG_NO_TAG_QUEUEING 0x0000
-#define I2O_SCB_FLAG_SIMPLE_QUEUE_TAG 0x0080
-#define I2O_SCB_FLAG_HEAD_QUEUE_TAG 0x0100
-#define I2O_SCB_FLAG_ORDERED_QUEUE_TAG 0x0180
-#define I2O_SCB_FLAG_ACA_QUEUE_TAG 0x0200
+#define I2O_SCB_FLAG_TAG_TYPE_MASK 0x0380
+#define I2O_SCB_FLAG_NO_TAG_QUEUEING 0x0000
+#define I2O_SCB_FLAG_SIMPLE_QUEUE_TAG 0x0080
+#define I2O_SCB_FLAG_HEAD_QUEUE_TAG 0x0100
+#define I2O_SCB_FLAG_ORDERED_QUEUE_TAG 0x0180
+#define I2O_SCB_FLAG_ACA_QUEUE_TAG 0x0200
-#define I2O_SCB_FLAG_AUTOSENSE_MASK 0x0060
-#define I2O_SCB_FLAG_DISABLE_AUTOSENSE 0x0000
-#define I2O_SCB_FLAG_SENSE_DATA_IN_MESSAGE 0x0020
-#define I2O_SCB_FLAG_SENSE_DATA_IN_BUFFER 0x0060
+#define I2O_SCB_FLAG_AUTOSENSE_MASK 0x0060
+#define I2O_SCB_FLAG_DISABLE_AUTOSENSE 0x0000
+#define I2O_SCB_FLAG_SENSE_DATA_IN_MESSAGE 0x0020
+#define I2O_SCB_FLAG_SENSE_DATA_IN_BUFFER 0x0060
typedef struct _I2O_SCSI_SCB_EXECUTE_MESSAGE {
I2O_MESSAGE_FRAME StdMessageFrame;
OpenPOWER on IntegriCloud