Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 30 Oct 2000 06:17:14 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 30 Oct 2000 06:17:04 -0500 Received: from oe58.law11.hotmail.com ([64.4.16.193]:54535 "EHLO hotmail.com") by vger.kernel.org with ESMTP id ; Mon, 30 Oct 2000 06:16:28 -0500 X-Originating-IP: [24.164.154.68] From: "Linux Kernel Developer" To: Subject: Need info on the use of certain datastructures and the first C++ keyword patch for 2.2.17 Date: Mon, 30 Oct 2000 06:09:49 -0500 X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.50.4133.2400 X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400 Message-ID: X-OriginalArrivalTime: 30 Oct 2000 11:16:21.0888 (UTC) FILETIME=[D5483000:01C04262] Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi all, After a delay on some other project I've again started up the process of fixing up the Linux headers, i.e. removing the use of C++ keywords as variable and stuff. I have questions on the use of three datastructures which happen to use the C++ keyword new but first a couple of things. First thing. Some had commented on my previous post that this did not belong on the Linux kernel mailing list. I disagree with that assertion. The goal of this project is to clean up the kernel headers so as they are useable/compatible with those who wish to program their kernel modules in C++. It is not my goal to rewrite the kernel in C++ or anything like that, merely to give those interested the option to program their modules in C++. In order to accomplish this goal I may occasionally need to ask the various kernel gods on this list whether changing a particular variable or structure member name would cause a problem as I am also doing in this post. The other reason I am posting, occasionally, on this list is to hopefully get eyeballs and testers, from among those whom are most intimately familiar with the kernel, to tryout my latest patch. And as a final note to some of those whom responded negatively to my previous post I did not start the previous flame war nor did I post a ton of messages. My previous posts on the subject totaled 1 before I accepted someone's challenge to fix the headers myself and since then I've only posted twice once to announce the project and once with a script that would allow those interested to update their header files with the 'extern "C" {}' compile conditional wrappers as the starting point of the project. Any future posts will be limited to more header fixes and/or questions on certain pieces of code I am looking to modify. If and when I decide to start experimental kernel C++ projects such as perhaps a generic virtual device driver classes that can be inheritable, which by the way is not even near to my current goal, I will take those off this list unless a question is required on the use of a particular data structure or interface. And before the flames begin again I restate my current goal is to fix the headers so they are useable in C++ and nothing more. Ok now the second thing I wish to announce in this post is that the included C++ compatible header fixing patch fixes most references of the C++ keyword of "new" in the header files. The following files have been updated. A couple of C files had to be updated as well due to parameters, defined in the header files, being called "new". All of these were straightforward fixes and should be correct, testing is welcome. include/linux/arch/mips/kernel/irq.c include/linux/include/asm-mips/irq.h include/linux/include/asm-mips/mipsregs.h include/linux/include/Linux/hdlcdrv.h include/linux/include/Linux/list.h include/linux/include/Linux/lists.h include/linux/include/net/neighbour.h include/linux/net/core/neighbour.c Ok now on to the questions I have. In include/linux/joystick.h, include/linux/raid5.h, and include/linux/adfs_fs.h I've found members of structures and a union which were called "new". The datastructures in question are union adfs_dirtail::new, struct stripe_head::new, struct js_dev::new. My questions are basically this. If I update these data structure members' names along with the references to them in various C files in the kernel will all be happy in Linuxland. Can any external utilities be broken or anything like that. Or more precisely are there any known external utilities that would be broken by this change? Thanks to all those whom can give me a hand in this. - A. B. begin 666 c++-0.0.1.patch M9&EF9B M"TR+C(N,3PH@"6EN="!S:&%R960@/2 P.PH@"7-T"]I;F-L=61E+V%S M;2UM:7!S+VER<2YH"BTM+2!L:6YU>"TR+C(N,3"]I;F-L=61E+V%S;2UM:7!S+VER<2YH"4UO;B!/8W0@,S @,#$Z,C@Z,C<@ M,C P, I 0" M,3"]I;F-L=61E+V%S;2UM:7!S+VUI<'-R M96=S+F@)36]N($]C=" S," P,3HR.#HR-R R,# P"D! ("TQ-C$L,3,@*S$V M,2PQ,R! 0 H@("HO"B C9&5F:6YE(%]?0E5)3$1?4T547T-0,"AN86UE+')E M9VES=&5R*2 @(" @(" @(" @(" @(" @(" @(" @(" @7 H@97AT97)N(%]? M:6YL:6YE7U\@=6YS:6=N960@:6YT(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(%P*+7-E=%]C<#!?(R-N86UE*'5NR @(" @(" @(" @(" @(" @(" @(" @(" @(" @ M(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(" @(%P*( EU;G-I9VYE M9"!I;G0@"]I;F-L=61E+VQI;G5X+VAD;&-DPHK"6EF("AI"TR+C(N,3"TR+C(N,3"]L:7-T+F@)36]N($]C=" S," P,3HR M.#HR-B R,# P"D! ("TS,"PR,B K,S L,C(@0$ *(" J(%1H:7,@:7,@;VYL M>2!F;W(@:6YT97)N86P@;&ES="!M86YI<'5L871I;VX@=VAE'0["BT);F5W+3YP M'0M/G!R978@ M/2!N97=?;F]D93L**PEN97=?;F]D92T^;F5X=" ](&YE>'0["BL);F5W7VYO M9&4M/G!R978@/2!P'0@/2!N97=?;F]D93L*('T* M( H@+RH*(" J($EN2!A9G1E'0I.PHK"5]? M;&ES=%]A9&0H;F5W7VYO9&4L(&AE860L(&AE860M/FYE>'0I.PH@?0H@"B O M*@ID:69F("UR("UU(&QI;G5X+3(N,BXQ-RYO"]L M:7-T"]I;F-L=61E+VQI;G5X+VQI'0* M("-D969I;F4@1$Q)4U1?4%)%5BAL:7-T;F%M*0EL:7-T;F%M+F1L7W!R978* M( HM(V1E9FEN92!$3$E35%])3E-%4E1?049415(H;F]D92P@;F5W+"!L:7-T M;F%M*0ED;R!["0E<"BT)*&YE=RDM/FQI'0M/FQI M'0@/2 H;F5W*3L)"0E<"BLC9&5F:6YE($1,25-47TE.4T525%]!1E1% M4BAN;V1E+"!N97=?;F]D92P@;&ES=&YA;2D)9&\@>PD)7 HK"2AN97=?;F]D M92DM/FQI'0[ M"5P**PDH;F]D92DM/FQIPD)7 HM M"2AN97'0@/2 H;F]D92D["0D)7 HM"2AN97'0@ M/2 H;F5W*3L)7 HM"2AN;V1E*2T^;&ES=&YA;2YD;%]P'0@/2 H;F5W7VYO9&4I M.PE<"BL)*&YO9&4I+3YL:7-T;F%M+F1L7W!R978@/2 H;F5W7VYO9&4I.PD) M"5P*( E]('=H:6QE("@P*0H@"B C9&5F:6YE($1,25-47T1%3$5412AN;V1E M+"!L:7-T;F%M*0ED;R!["0E<"D! ("TU,BPQ,2 K-3(L,3$@0$ *( DH*%%5 M155%7T9)4E-4*&AE860L(&QI'0["5P*+0DH:&5A9"DM/FQI7!E*2!D;R!["0E<"BL)*&YE=U]N;V1E*2T^;&ES=&YA M;2YD;%]P7!E*2AH96%D*3L)"0E<"BL)*&YE=U]N;V1E*2T^ M;&ES=&YA;2YD;%]N97AT(#T@*&AE860I+3YL:7-T;F%M+F1L7VYE>'0["5P* M*PDH:&5A9"DM/FQI"]I;F-L=61E+VYE="]N96EG:&)O=7(N M: HM+2T@;&EN=7@M,BXR+C$W+F]R9R]I;F-L=61E+VYE="]N96EG:&)O=7(N M: E4=64@36%Y(#$Q(#$S.C,V.C,X(#$Y.3D**RLK(&QI;G5X+VEN8VQU9&4O M;F5T+VYE:6=H8F]U"]N970O M8V]R92]N96EG:&)O=7(N8PE-;VX@3V-T(#,P(# Q.C(X.C(W(#(P,# *0$ @ M+38V,"PQ,B K-C8P+#$R($! "B *("\J($=E;F5R:6,@=7!D871E(')O=71I M;F4N"B @(" M+2!L;&%D9'(@:7,@;F5W(&QL861D&ES=&EN9R!L;&%D9'(L(&EF M(&ET(&ES(&1I9F9E