From 117985ec9a192e6111d911da90c61a1d1d4f713b Mon Sep 17 00:00:00 2001 From: Kalamatee Date: Sat, 31 Jan 2026 10:53:11 +0000 Subject: [PATCH] add definitions for CDC EEM/NCM hardware. --- compiler/include/hardware/cdc/cdc_eem.h | 10 +++++ compiler/include/hardware/cdc/cdc_ncm.h | 53 +++++++++++++++++++++++++ compiler/include/mmakefile.src | 1 + 3 files changed, 64 insertions(+) create mode 100644 compiler/include/hardware/cdc/cdc_eem.h create mode 100644 compiler/include/hardware/cdc/cdc_ncm.h diff --git a/compiler/include/hardware/cdc/cdc_eem.h b/compiler/include/hardware/cdc/cdc_eem.h new file mode 100644 index 0000000000..552ad526fc --- /dev/null +++ b/compiler/include/hardware/cdc/cdc_eem.h @@ -0,0 +1,10 @@ +#ifndef HARDWARE_CDC_EEM_H +#define HARDWARE_CDC_EEM_H + +#include + +#define CDC_EEM_HDR_TYPE_COMMAND 0x8000 +#define CDC_EEM_HDR_CRC 0x4000 +#define CDC_EEM_HDR_LEN_MASK 0x3fff + +#endif diff --git a/compiler/include/hardware/cdc/cdc_ncm.h b/compiler/include/hardware/cdc/cdc_ncm.h new file mode 100644 index 0000000000..af877b9b31 --- /dev/null +++ b/compiler/include/hardware/cdc/cdc_ncm.h @@ -0,0 +1,53 @@ +#ifndef HARDWARE_CDC_NCM_H +#define HARDWARE_CDC_NCM_H + +#include + +#if defined(__GNUC__) +# pragma pack(1) +#endif + +#define CDC_NCM_FUNC_DESC_SUBTYPE 0x1a + +#define CDC_NCM_NTH16_SIGNATURE 0x484d434eUL /* "NCMH" */ +#define CDC_NCM_NDP16_SIGNATURE_NCM0 0x304d434eUL /* "NCM0" */ +#define CDC_NCM_NDP16_SIGNATURE_NCM1 0x314d434eUL /* "NCM1" */ + +struct UsbCDCNcmFunctionalDesc +{ + UBYTE bFunctionLength; + UBYTE bDescriptorType; + UBYTE bDescriptorSubtype; + UWORD bcdNcmVersion; + UWORD wMaxSegmentSize; + UWORD wNumberMCFilters; + UBYTE bNumberPowerFilters; +}; + +struct UsbCDCNcmNtb16Header +{ + ULONG dwSignature; + UWORD wHeaderLength; + UWORD wSequence; + UWORD wBlockLength; + UWORD wNdpIndex; +}; + +struct UsbCDCNcmNdp16 +{ + ULONG dwSignature; + UWORD wLength; + UWORD wNextNdpIndex; +}; + +struct UsbCDCNcmDatagramPointer16 +{ + UWORD wDatagramIndex; + UWORD wDatagramLength; +}; + +#if defined(__GNUC__) +# pragma pack() +#endif + +#endif diff --git a/compiler/include/mmakefile.src b/compiler/include/mmakefile.src index 30b66b3e83..e45b3378c0 100644 --- a/compiler/include/mmakefile.src +++ b/compiler/include/mmakefile.src @@ -33,6 +33,7 @@ INCSUBDIRS := aros \ gadgets \ graphics \ hardware \ + hardware/cdc \ hardware/cpu \ hardware/efi \ hardware/pic \