Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'docs-4.5' of git://git.lwn.net/linux

Pull documentation updates from Jon Corbet:
"A relatively boring cycle in the docs tree. There's a few kernel-doc
fixes and various document tweaks.

One patch reaches out of the documentation subtree to fix a comment in
init/do_mounts_rd.c. There didn't seem to be anybody more appropriate
to take that one, so I accepted it"

* tag 'docs-4.5' of git://git.lwn.net/linux: (29 commits)
thermal: add description for integral_cutoff unit
Documentation: update libhugetlbfs site url
Documentation: Explain pci=conf1,conf2 more verbosely
DMA-API: fix confusing sentence in Documentation/DMA-API.txt
Documentation: translations: update linux cross reference link
Documentation: fix typo in CodingStyle
init, Documentation: Remove ramdisk_blocksize mentions
Documentation-getdelays: Apply a recommendation from "checkpatch.pl" in main()
Documentation: HOWTO: update versions from 3.x to 4.x
Documentation: remove outdated references from translations
Doc: treewide: Fix grammar "a" to "an"
Documentation: cpu-hotplug: Fix sysfs mount instructions
can-doc: Add hint about getting timestamps
Fix CFQ I/O scheduler parameter name in documentation
Documentation: arm: remove dead links from Marvell Berlin docs
Documentation: HOWTO: update code cross reference link
Doc: Docbook/iio: Fix typo in iio.tmpl
DocBook: make index.html generation less verbose by default
DocBook: Cleanup: remove an unused $(call) line
DocBook: Add a help message for DOCBOOKS env var
...

+85 -73
+1 -1
Documentation/CodingStyle
··· 430 430 return result; 431 431 } 432 432 433 - A common type of bug to be aware of it "one err bugs" which look like this: 433 + A common type of bug to be aware of is "one err bugs" which look like this: 434 434 435 435 err: 436 436 kfree(foo->bar);
+1 -1
Documentation/DMA-API.txt
··· 236 236 237 237 DMA_TO_DEVICE synchronisation must be done after the last modification 238 238 of the memory region by the software and before it is handed off to 239 - the driver. Once this primitive is used, memory covered by this 239 + the device. Once this primitive is used, memory covered by this 240 240 primitive should be treated as read-only by the device. If the device 241 241 may write to it at any point, it should be DMA_BIDIRECTIONAL (see 242 242 below).
+7 -3
Documentation/DocBook/Makefile
··· 50 50 51 51 HTML := $(sort $(patsubst %.xml, %.html, $(BOOKS))) 52 52 htmldocs: $(HTML) 53 - $(call build_main_index) 54 - $(call build_images) 53 + $(call cmd,build_main_index) 55 54 $(call install_media_images) 56 55 57 56 MAN := $(patsubst %.xml, %.9, $(BOOKS)) ··· 138 139 139 140 index = index.html 140 141 main_idx = $(obj)/$(index) 141 - build_main_index = rm -rf $(main_idx); \ 142 + quiet_cmd_build_main_index = HTML $(main_idx) 143 + cmd_build_main_index = rm -rf $(main_idx); \ 142 144 echo '<h1>Linux Kernel HTML Documentation</h1>' >> $(main_idx) && \ 143 145 echo '<h2>Kernel Version: $(KERNELVERSION)</h2>' >> $(main_idx) && \ 144 146 cat $(HTML) >> $(main_idx) ··· 227 227 @echo ' mandocs - man pages' 228 228 @echo ' installmandocs - install man pages generated by mandocs' 229 229 @echo ' cleandocs - clean all generated DocBook files' 230 + @echo 231 + @echo 'make DOCBOOKS="s1.xml s2.xml" [target] Generate only docs s1.xml s2.xml' 232 + @echo ' valid values for DOCBOOKS are: $(DOCBOOKS)' 233 + 230 234 231 235 ### 232 236 # Temporary files left by various tools
+1 -1
Documentation/DocBook/iio.tmpl
··· 458 458 .scan_type = { 459 459 .sign = 's', 460 460 .realbits = 12, 461 - .storgebits = 16, 461 + .storagebits = 16, 462 462 .shift = 4, 463 463 .endianness = IIO_LE, 464 464 },
+1 -1
Documentation/HOWTO
··· 209 209 Cross-Reference project, which is able to present source code in a 210 210 self-referential, indexed webpage format. An excellent up-to-date 211 211 repository of the kernel code may be found at: 212 - http://lxr.linux.no/+trees 212 + http://lxr.free-electrons.com/ 213 213 214 214 215 215 The development process
+2 -1
Documentation/accounting/getdelays.c
··· 375 375 } 376 376 } 377 377 378 - if ((nl_sd = create_nl_socket(NETLINK_GENERIC)) < 0) 378 + nl_sd = create_nl_socket(NETLINK_GENERIC); 379 + if (nl_sd < 0) 379 380 err(1, "error creating Netlink socket\n"); 380 381 381 382
+10 -9
Documentation/arm/Marvell/README
··· 233 233 Linux kernel mach directory: arch/arm/mach-mmp 234 234 Linux kernel plat directory: arch/arm/plat-pxa 235 235 236 - Berlin family (Digital Entertainment) 236 + Berlin family (Multimedia Solutions) 237 237 ------------------------------------- 238 238 239 239 Flavors: 240 - 88DE3005, Armada 1500-mini 240 + 88DE3005, Armada 1500 Mini 241 241 Design name: BG2CD 242 242 Core: ARM Cortex-A9, PL310 L2CC 243 - Homepage: http://www.marvell.com/digital-entertainment/armada-1500-mini/ 243 + Homepage: http://www.marvell.com/multimedia-solutions/armada-1500-mini/ 244 + 88DE3006, Armada 1500 Mini Plus 245 + Design name: BG2CDP 246 + Core: Dual Core ARM Cortex-A7 247 + Homepage: http://www.marvell.com/multimedia-solutions/armada-1500-mini-plus/ 244 248 88DE3100, Armada 1500 245 249 Design name: BG2 246 250 Core: Marvell PJ4B (ARMv7), Tauros3 L2CC 247 - Homepage: http://www.marvell.com/digital-entertainment/armada-1500/ 248 - Product Brief: http://www.marvell.com/digital-entertainment/armada-1500/assets/Marvell-ARMADA-1500-Product-Brief.pdf 251 + Product Brief: http://www.marvell.com/multimedia-solutions/armada-1500/assets/Marvell-ARMADA-1500-Product-Brief.pdf 249 252 88DE3114, Armada 1500 Pro 250 - Design name: BG2-Q 253 + Design name: BG2Q 251 254 Core: Quad Core ARM Cortex-A9, PL310 L2CC 252 - Homepage: http://www.marvell.com/digital-entertainment/armada-1500-pro/ 253 - Product Brief: http://www.marvell.com/digital-entertainment/armada-1500-pro/assets/Marvell_ARMADA_1500_PRO-01_product_brief.pdf 254 255 88DE???? 255 256 Design name: BG3 256 257 Core: ARM Cortex-A15, CA15 integrated L2CC 257 258 258 - Homepage: http://www.marvell.com/digital-entertainment/ 259 + Homepage: http://www.marvell.com/multimedia-solutions/ 259 260 Directory: arch/arm/mach-berlin 260 261 261 262 Comments:
+7 -8
Documentation/block/cfq-iosched.txt
··· 81 81 82 82 Default value for this parameter is 8ms. 83 83 84 - latency 85 - ------- 86 - This parameter is used to enable/disable the latency mode of the CFQ 87 - scheduler. If latency mode (called low_latency) is enabled, CFQ tries 88 - to recompute the slice time for each process based on the target_latency set 89 - for the system. This favors fairness over throughput. Disabling low 90 - latency (setting it to 0) ignores target latency, allowing each process in the 91 - system to get a full time slice. 84 + low_latency 85 + ----------- 86 + This parameter is used to enable/disable the low latency mode of the CFQ 87 + scheduler. If enabled, CFQ tries to recompute the slice time for each process 88 + based on the target_latency set for the system. This favors fairness over 89 + throughput. Disabling low latency (setting it to 0) ignores target latency, 90 + allowing each process in the system to get a full time slice. 92 91 93 92 By default low latency mode is enabled. 94 93
+1 -1
Documentation/cpu-hotplug.txt
··· 150 150 151 151 If this is not mounted, do the following. 152 152 153 - #mkdir /sysfs 153 + #mkdir /sys 154 154 #mount -t sysfs sys /sys 155 155 156 156 Now you should see entries for all present cpu, the following is an example
+1 -1
Documentation/filesystems/proc.txt
··· 820 820 type exist. 821 821 822 822 If min_free_kbytes has been tuned correctly (recommendations made by hugeadm 823 - from libhugetlbfs http://sourceforge.net/projects/libhugetlbfs/), one can 823 + from libhugetlbfs https://github.com/libhugetlbfs/libhugetlbfs/), one can 824 824 make an estimate of the likely number of huge pages that can be allocated 825 825 at a given point in time. All the "Movable" blocks should be allocatable 826 826 unless memory has been mlock()'d. Some of the Reclaimable blocks should
+1 -1
Documentation/filesystems/sharedsubtree.txt
··· 664 664 if one rbind mounts a tree within the same subtree 'n' times 665 665 the number of mounts created is an exponential function of 'n'. 666 666 Having unbindable mount can help prune the unneeded bind 667 - mounts. Here is a example. 667 + mounts. Here is an example. 668 668 669 669 step 1: 670 670 let's say the root tree has just two directories with
+1 -1
Documentation/gpio/consumer.txt
··· 260 260 261 261 To summarize: 262 262 263 - Function (example) active-low proporty physical line 263 + Function (example) active-low property physical line 264 264 gpiod_set_raw_value(desc, 0); don't care low 265 265 gpiod_set_raw_value(desc, 1); don't care high 266 266 gpiod_set_value(desc, 0); default (active-high) low
+3 -3
Documentation/gpio/driver.txt
··· 113 113 it will be threaded IRQ handler on -RT and hard IRQ handler on non-RT 114 114 (for example, see [3]). 115 115 Know W/A: The generic_handle_irq() is expected to be called with IRQ disabled, 116 - so IRQ core will complain if it will be called from IRQ handler wich is forced 117 - thread. The "fake?" raw lock can be used to W/A this problem: 116 + so IRQ core will complain if it will be called from IRQ handler which is 117 + forced thread. The "fake?" raw lock can be used to W/A this problem: 118 118 119 119 raw_spinlock_t wa_lock; 120 120 static irqreturn_t omap_gpio_irq_handler(int irq, void *gpiobank) ··· 224 224 --------------------------------------- 225 225 226 226 Any provider of irqchips needs to be carefully tailored to support Real Time 227 - preemption. It is desireable that all irqchips in the GPIO subsystem keep this 227 + preemption. It is desirable that all irqchips in the GPIO subsystem keep this 228 228 in mind and does the proper testing to assure they are real time-enabled. 229 229 So, pay attention on above " RT_FULL:" notes, please. 230 230 The following is a checklist to follow when preparing a driver for real
+3 -3
Documentation/gpio/drivers-on-gpio.txt
··· 54 54 drivers for the I2C devices on the bus like any other I2C bus driver. 55 55 56 56 - spi_gpio: drivers/spi/spi-gpio.c is used to drive an SPI bus (variable number 57 - of wires, atleast SCK and optionally MISO, MOSI and chip select lines) using 57 + of wires, at least SCK and optionally MISO, MOSI and chip select lines) using 58 58 GPIO hammering (bitbang). It will appear as any other SPI bus on the system 59 59 and makes it possible to connect drivers for SPI devices on the bus like 60 60 any other SPI bus driver. For example any MMC/SD card can then be connected ··· 75 75 76 76 - gpio-wdt: drivers/watchdog/gpio_wdt.c is used to provide a watchdog timer 77 77 that will periodically "ping" a hardware connected to a GPIO line by toggling 78 - it from 1-to-0-to-1. If that hardware does not recieve its "ping" 78 + it from 1-to-0-to-1. If that hardware does not receive its "ping" 79 79 periodically, it will reset the system. 80 80 81 81 - gpio-nand: drivers/mtd/nand/gpio.c is used to connect a NAND flash chip to ··· 91 91 92 92 Use those instead of talking directly to the GPIOs using sysfs; they integrate 93 93 with kernel frameworks better than your userspace code could. Needless to say, 94 - just using the apropriate kernel drivers will simplify and speed up your 94 + just using the appropriate kernel drivers will simplify and speed up your 95 95 embedded hacking in particular by providing ready-made components.
+3 -3
Documentation/ioctl/botching-up-ioctls.txt
··· 122 122 ---------------------------- 123 123 124 124 GPUs do most everything asynchronously, so we have a need to time operations and 125 - wait for oustanding ones. This is really tricky business; at the moment none of 125 + wait for outstanding ones. This is really tricky business; at the moment none of 126 126 the ioctls supported by the drm/i915 get this fully right, which means there's 127 127 still tons more lessons to learn here. 128 128 ··· 146 146 ioctl restartable relative timeouts tend to be too coarse and can 147 147 indefinitely extend your wait time due to rounding on each restart. 148 148 Especially if your reference clock is something really slow like the display 149 - frame counter. With a spec laywer hat on this isn't a bug since timeouts can 149 + frame counter. With a spec lawyer hat on this isn't a bug since timeouts can 150 150 always be extended - but users will surely hate you if their neat animations 151 151 starts to stutter due to this. 152 152 ··· 176 176 177 177 * Ensure that you have sufficient insulation between different clients. By 178 178 default pick a private per-fd namespace which forces any sharing to be done 179 - explictly. Only go with a more global per-device namespace if the objects 179 + explicitly. Only go with a more global per-device namespace if the objects 180 180 are truly device-unique. One counterexample in the drm modeset interfaces is 181 181 that the per-device modeset objects like connectors share a namespace with 182 182 framebuffer objects, which mostly are not shared at all. A separate
+1 -2
Documentation/ja_JP/HOWTO
··· 245 245 自己参照方式で、索引がついた web 形式で、ソースコードを参照することが 246 246 できます。この最新の素晴しいカーネルコードのリポジトリは以下で見つかり 247 247 ます- 248 - http://lxr.linux.no/+trees 248 + http://lxr.free-electrons.com/ 249 249 250 250 開発プロセス 251 251 ----------------------- ··· 366 366 に全サブシステムツリーからほぼ毎日プルされてできる特別なテスト用のリ 367 367 ポジトリが存在します- 368 368 http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git 369 - http://linux.f-seidel.de/linux-next/pmwiki/ 370 369 371 370 このやり方によって、-next カーネルは次のマージ機会でどんなものがメイン 372 371 ラインカーネルにマージされるか、おおまかなの展望を提供します。-next
+1 -1
Documentation/kernel-docs.txt
··· 631 631 between two versions of a file". 632 632 633 633 * Name: "Cross-Referencing Linux" 634 - URL: http://lxr.linux.no/source/ 634 + URL: http://lxr.free-electrons.com/ 635 635 Keywords: Browsing source code. 636 636 Description: Another web-based Linux kernel source code browser. 637 637 Lots of cross references to variables and functions. You can see
+10 -7
Documentation/kernel-parameters.txt
··· 2748 2748 hardware access methods are allowed. Use this 2749 2749 if you experience crashes upon bootup and you 2750 2750 suspect they are caused by the BIOS. 2751 - conf1 [X86] Force use of PCI Configuration 2752 - Mechanism 1. 2753 - conf2 [X86] Force use of PCI Configuration 2754 - Mechanism 2. 2751 + conf1 [X86] Force use of PCI Configuration Access 2752 + Mechanism 1 (config address in IO port 0xCF8, 2753 + data in IO port 0xCFC, both 32-bit). 2754 + conf2 [X86] Force use of PCI Configuration Access 2755 + Mechanism 2 (IO port 0xCF8 is an 8-bit port for 2756 + the function, IO port 0xCFA, also 8-bit, sets 2757 + bus number. The config space is then accessed 2758 + through ports 0xC000-0xCFFF). 2759 + See http://wiki.osdev.org/PCI for more info 2760 + on the configuration access mechanisms. 2755 2761 noaer [PCIE] If the PCIEAER kernel config parameter is 2756 2762 enabled, this kernel boot option can be used to 2757 2763 disable the use of PCIE advanced error reporting. ··· 3076 3070 3077 3071 raid= [HW,RAID] 3078 3072 See Documentation/md.txt. 3079 - 3080 - ramdisk_blocksize= [RAM] 3081 - See Documentation/blockdev/ramdisk.txt. 3082 3073 3083 3074 ramdisk_size= [RAM] Sizes of RAM disks in kilobytes 3084 3075 See Documentation/blockdev/ramdisk.txt.
+14 -15
Documentation/ko_KR/HOWTO
··· 213 213 것은 Linux Cross-Reference project이며 그것은 자기 참조 방식이며 214 214 소스코드를 인덱스된 웹 페이지들의 형태로 보여준다. 최신의 멋진 커널 215 215 코드 저장소는 다음을 통하여 참조할 수 있다. 216 - http://lxr.linux.no/+trees 216 + http://lxr.free-electrons.com/ 217 217 218 218 219 219 개발 프로세스 ··· 222 222 리눅스 커널 개발 프로세스는 현재 몇몇 다른 메인 커널 "브랜치들"과 223 223 서브시스템에 특화된 커널 브랜치들로 구성된다. 몇몇 다른 메인 224 224 브랜치들은 다음과 같다. 225 - - main 3.x 커널 트리 226 - - 3.x.y - 안정된 커널 트리 227 - - 3.x -git 커널 패치들 225 + - main 4.x 커널 트리 226 + - 4.x.y - 안정된 커널 트리 227 + - 4.x -git 커널 패치들 228 228 - 서브시스템을 위한 커널 트리들과 패치들 229 - - 3.x - 통합 테스트를 위한 next 커널 트리 229 + - 4.x - 통합 테스트를 위한 next 커널 트리 230 230 231 - 3.x 커널 트리 231 + 4.x 커널 트리 232 232 --------------- 233 233 234 - 3.x 커널들은 Linux Torvalds가 관리하며 kernel.org의 pub/linux/kernel/v3.x/ 234 + 4.x 커널들은 Linux Torvalds가 관리하며 kernel.org의 pub/linux/kernel/v4.x/ 235 235 디렉토리에서 참조될 수 있다.개발 프로세스는 다음과 같다. 236 236 - 새로운 커널이 배포되자마자 2주의 시간이 주어진다. 이 기간동은 237 237 메인테이너들은 큰 diff들을 Linus에게 제출할 수 있다. 대개 이 패치들은 ··· 262 262 버그의 상황에 따라 배포되는 것이지 미리정해 놓은 시간에 따라 263 263 배포되는 것은 아니기 때문이다." 264 264 265 - 3.x.y - 안정 커널 트리 265 + 4.x.y - 안정 커널 트리 266 266 ------------------------ 267 267 268 - 3 자리 숫자로 이루어진 버젼의 커널들은 -stable 커널들이다. 그것들은 3.x 268 + 3 자리 숫자로 이루어진 버젼의 커널들은 -stable 커널들이다. 그것들은 4.x 269 269 커널에서 발견된 큰 회귀들이나 보안 문제들 중 비교적 작고 중요한 수정들을 270 270 포함한다. 271 271 272 272 이것은 가장 최근의 안정적인 커널을 원하는 사용자에게 추천되는 브랜치이며, 273 273 개발/실험적 버젼을 테스트하는 것을 돕고자 하는 사용자들과는 별로 관련이 없다. 274 274 275 - 어떤 3.x.y 커널도 사용할 수 없다면 그때는 가장 높은 숫자의 3.x 275 + 어떤 4.x.y 커널도 사용할 수 없다면 그때는 가장 높은 숫자의 4.x 276 276 커널이 현재의 안정 커널이다. 277 277 278 - 3.x.y는 "stable" 팀<stable@vger.kernel.org>에 의해 관리되며 거의 매번 격주로 278 + 4.x.y는 "stable" 팀<stable@vger.kernel.org>에 의해 관리되며 거의 매번 격주로 279 279 배포된다. 280 280 281 281 커널 트리 문서들 내에 Documentation/stable_kernel_rules.txt 파일은 어떤 ··· 283 283 진행되는지를 설명한다. 284 284 285 285 286 - 3.x -git 패치들 286 + 4.x -git 패치들 287 287 ------------------ 288 288 git 저장소(그러므로 -git이라는 이름이 붙음)에는 날마다 관리되는 Linus의 289 289 커널 트리의 snapshot 들이 있다. 이 패치들은 일반적으로 날마다 배포되며 ··· 312 312 대부분의 이러한 patchwork 사이트는 http://patchwork.kernel.org/ 또는 313 313 http://patchwork.ozlabs.org/ 에 나열되어 있다. 314 314 315 - 3.x - 통합 테스트를 위한 next 커널 트리 315 + 4.x - 통합 테스트를 위한 next 커널 트리 316 316 ----------------------------------------- 317 - 서브시스템 트리들의 변경사항들은 mainline 3.x 트리로 들어오기 전에 통합 317 + 서브시스템 트리들의 변경사항들은 mainline 4.x 트리로 들어오기 전에 통합 318 318 테스트를 거쳐야 한다. 이런 목적으로, 모든 서브시스템 트리의 변경사항을 거의 319 319 매일 받아가는 특수한 테스트 저장소가 존재한다: 320 320 http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git 321 - http://linux.f-seidel.de/linux-next/pmwiki/ 322 321 323 322 이런 식으로, -next 커널을 통해 다음 머지 기간에 메인라인 커널에 어떤 변경이 324 323 가해질 것인지 간략히 알 수 있다. 모험심 강한 테스터라면 -next 커널에서 테스트를
+9
Documentation/networking/can.txt
··· 372 372 nbytes = sendto(s, &frame, sizeof(struct can_frame), 373 373 0, (struct sockaddr*)&addr, sizeof(addr)); 374 374 375 + An accurate timestamp can be obtained with an ioctl(2) call after reading 376 + a message from the socket: 377 + 378 + struct timeval tv; 379 + ioctl(s, SIOCGSTAMP, &tv); 380 + 381 + The timestamp has a resolution of one microsecond and is set automatically 382 + at the reception of a CAN frame. 383 + 375 384 Remark about CAN FD (flexible data rate) support: 376 385 377 386 Generally the handling of CAN FD is very similar to the formerly described
+1 -1
Documentation/stable_kernel_rules.txt
··· 93 93 Also, some patches may have kernel version prerequisites. This can be 94 94 specified in the following format in the sign-off area: 95 95 96 - Cc: <stable@vger.kernel.org> # 3.3.x- 96 + Cc: <stable@vger.kernel.org> # 3.3.x- 97 97 98 98 The tag has the meaning of: 99 99 git cherry-pick <this commit>
+1
Documentation/thermal/sysfs-api.txt
··· 364 364 accumulates error when temperature is above the desired 365 365 temperature trip point. For more information see 366 366 Documentation/thermal/power_allocator.txt 367 + Unit: millidegree Celsius 367 368 RW, Optional 368 369 369 370 slope
+1 -1
Documentation/vm/slub.txt
··· 8 8 an impact on overall system performance which may make a bug more 9 9 difficult to find. 10 10 11 - In order to switch debugging on one can add a option "slub_debug" 11 + In order to switch debugging on one can add an option "slub_debug" 12 12 to the kernel command line. That will enable full debugging for 13 13 all slabs. 14 14
-7
init/do_mounts_rd.c
··· 216 216 /* 217 217 * NOTE NOTE: nblocks is not actually blocks but 218 218 * the number of kibibytes of data to load into a ramdisk. 219 - * So any ramdisk block size that is a multiple of 1KiB should 220 - * work when the appropriate ramdisk_blocksize is specified 221 - * on the command line. 222 - * 223 - * The default ramdisk_blocksize is 1KiB and it is generally 224 - * silly to use anything else, so make sure to use 1KiB 225 - * blocksize while generating ext2fs ramdisk-images. 226 219 */ 227 220 if (sys_ioctl(out_fd, BLKGETSIZE, (unsigned long)&rd_blocks) < 0) 228 221 rd_blocks = 0;
+4 -1
scripts/kernel-doc
··· 1816 1816 $members =~ s/__attribute__\s*\(\([a-z,_\*\s\(\)]*\)\)//i; 1817 1817 $members =~ s/__aligned\s*\([^;]*\)//gos; 1818 1818 $members =~ s/\s*CRYPTO_MINALIGN_ATTR//gos; 1819 + # replace DECLARE_BITMAP 1820 + $members =~ s/DECLARE_BITMAP\s*\(([^,)]+), ([^,)]+)\)/unsigned long $1\[BITS_TO_LONGS($2)\]/gos; 1819 1821 1820 1822 create_parameterlist($members, ';', $file); 1821 1823 check_sections($file, $declaration_name, "struct", $sectcheck, $struct_actual, $nested); ··· 1846 1844 my $file = shift; 1847 1845 1848 1846 $x =~ s@/\*.*?\*/@@gos; # strip comments. 1849 - $x =~ s/^#\s*define\s+.*$//; # strip #define macros inside enums 1847 + # strip #define macros inside enums 1848 + $x =~ s@#\s*((define|ifdef)\s+|endif)[^;]*;@@gos; 1850 1849 1851 1850 if ($x =~ /enum\s+(\w+)\s*{(.*)}/) { 1852 1851 $declaration_name = $1;