编译 linux 模块时确定架构
Determine architecture when compiling linux module
我正在编写一个内核模块,其中有以下代码:
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
我并不总是想要 64:当我针对 ARM 时,我希望它是
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
基本上,现在我想要:
#ifdef x86_64
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
#else
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
#endif
我怎样才能实现这样的目标?
有 CONFIG_
个定义。这样的东西可能符合您的需求:
#if defined(CONFIG_X86_64)
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
#else
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
#endif
CONFIG_ARM
(对于 32 位)、CONFIG_ARM64
和类似的选项也可能派上用场。
我正在编写一个内核模块,其中有以下代码:
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
我并不总是想要 64:当我针对 ARM 时,我希望它是
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
基本上,现在我想要:
#ifdef x86_64
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
#else
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
#endif
我怎样才能实现这样的目标?
有 CONFIG_
个定义。这样的东西可能符合您的需求:
#if defined(CONFIG_X86_64)
dma_dev->coherent_dma_mask = DMA_BIT_MASK(64);
#else
dma_dev->coherent_dma_mask = DMA_BIT_MASK(32);
#endif
CONFIG_ARM
(对于 32 位)、CONFIG_ARM64
和类似的选项也可能派上用场。