Re: Did you try ReactOS?
- From: Vetzak <ptrshrn@xxxxxxxxx>
- Date: Wed, 9 Jan 2008 02:27:23 -0800 (PST)
On Jan 8, 6:43 pm, Aleksey Bragin
<AlekseyBra...@xxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Hi Volodymyr,
Obviously, those are public-available header files, and individual function
definitions, structures and defines can't be copyrighted or patented.
It's not really legal to fully *copy-paste* those header files, so a concept
of "retyping" (which is legal) was introduced, if I don't mistake, by MinGW
team. And thus we utilize that too.
With the best regards,
Aleksey Bragin
ReactOS Project Leadhttp://www.reactos.org
Email: aleksey at reactos dot org
"Volodymyr Shcherbyna" wrote:
Actually, I am the one, who was talking about those "strange" and "weird"
TDI simularities.
Aleksey, take a look at your version of Microsoft WinDDK TDI.H include file,
in my case the path is C:\WinDDK\6000\inc\api\tdi.h
Then, take a look at ReacOS version of include file:
ReactOS-0.3.3-REL-src\ReactOS-0.3.3\include\ddk\TDI.H
Browse over definitions. Look for several defines for tags,
{MICROSOFT
// These are tags that transports pass to ndis as a first param of
NdisAllocatePacketPoolEx
// api. Ndis uses this as pooltag for allocating packet pools for that
transport.
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
}
{ReacOS
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKIPX 'iPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKSPX 'sPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NWLNKNB 'nPDN'
#define NDIS_PACKET_POOL_TAG_FOR_TCPIP 'tPDN'
#define NDIS_PACKET_POOL_TAG_FOR_NBF 'bPDN'
#define NDIS_PACKET_POOL_TAG_FOR_APPLETALK 'aPDN'
}
Look at several structures,
{MICROSOFT
typedef UNALIGNED struct _TA_ADDRESS {
USHORT AddressLength; // length in bytes of Address[] in this
USHORT AddressType; // type of this address
UCHAR Address[1]; // actually AddressLength bytes long
} TA_ADDRESS, *PTA_ADDRESS;
}
{ReacOS
typedef struct _TA_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} TA_ADDRESS, *PTA_ADDRESS;
}
Look at defines for strings,
{MICROSOFT
//
// define some names for the EAs so people don't have to make them up.
//
#define TdiTransportAddress "TransportAddress"
#define TdiConnectionContext "ConnectionContext"
#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof (TdiTransportAddress) - 1)
#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof (TdiConnectionContext) - 1)
}
{ReacOS
#define TdiTransportAddress "TransportAddress"
#define TdiConnectionContext "ConnectionContext"
#define TDI_TRANSPORT_ADDRESS_LENGTH (sizeof(TdiTransportAddress) - 1)
#define TDI_CONNECTION_CONTEXT_LENGTH (sizeof(TdiConnectionContext) - 1)
}
Look at address types,
{MICROSOFT
//
// Known Address types
//
#define TDI_ADDRESS_TYPE_UNSPEC ((USHORT)0) // unspecified
#define TDI_ADDRESS_TYPE_UNIX ((USHORT)1) // local to host (pipes,
portals)
#define TDI_ADDRESS_TYPE_IP ((USHORT)2) // internetwork: UDP, TCP,
etc.
#define TDI_ADDRESS_TYPE_IMPLINK ((USHORT)3) // arpanet imp addresses
#define TDI_ADDRESS_TYPE_PUP ((USHORT)4) // pup protocols: e.g. BSP
#define TDI_ADDRESS_TYPE_CHAOS ((USHORT)5) // mit CHAOS protocols
#define TDI_ADDRESS_TYPE_NS ((USHORT)6) // XEROX NS protocols
#define TDI_ADDRESS_TYPE_IPX ((USHORT)6) // Netware IPX
#define TDI_ADDRESS_TYPE_NBS ((USHORT)7) // nbs protocols
#define TDI_ADDRESS_TYPE_ECMA ((USHORT)8) // european computer
manufacturers
#define TDI_ADDRESS_TYPE_DATAKIT ((USHORT)9) // datakit protocols
#define TDI_ADDRESS_TYPE_CCITT ((USHORT)10) // CCITT protocols, X.25 etc
#define TDI_ADDRESS_TYPE_SNA ((USHORT)11) // IBM SNA
#define TDI_ADDRESS_TYPE_DECnet ((USHORT)12) // DECnet
#define TDI_ADDRESS_TYPE_DLI ((USHORT)13) // Direct data link
interface
#define TDI_ADDRESS_TYPE_LAT ((USHORT)14) // LAT
#define TDI_ADDRESS_TYPE_HYLINK ((USHORT)15) // NSC Hyperchannel
#define TDI_ADDRESS_TYPE_APPLETALK ((USHORT)16) // AppleTalk
#define TDI_ADDRESS_TYPE_NETBIOS ((USHORT)17) // Netbios Addresses
#define TDI_ADDRESS_TYPE_8022 ((USHORT)18) //
#define TDI_ADDRESS_TYPE_OSI_TSAP ((USHORT)19) //
#define TDI_ADDRESS_TYPE_NETONE ((USHORT)20) // for WzMail
#define TDI_ADDRESS_TYPE_VNS ((USHORT)21) // Banyan VINES IP
#define TDI_ADDRESS_TYPE_NETBIOS_EX ((USHORT)22) // NETBIOS address
extensions
#define TDI_ADDRESS_TYPE_IP6 ((USHORT)23) // IP version 6
#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX ((USHORT)24) // WCHAR
Netbios address
}
{ReacOS
#define TDI_ADDRESS_TYPE_UNSPEC 0
#define TDI_ADDRESS_TYPE_UNIX 1
#define TDI_ADDRESS_TYPE_IP 2
#define TDI_ADDRESS_TYPE_IMPLINK 3
#define TDI_ADDRESS_TYPE_PUP 4
#define TDI_ADDRESS_TYPE_CHAOS 5
#define TDI_ADDRESS_TYPE_NS 6
#define TDI_ADDRESS_TYPE_IPX 6
#define TDI_ADDRESS_TYPE_NBS 7
#define TDI_ADDRESS_TYPE_ECMA 8
#define TDI_ADDRESS_TYPE_DATAKIT 9
#define TDI_ADDRESS_TYPE_CCITT 10
#define TDI_ADDRESS_TYPE_SNA 11
#define TDI_ADDRESS_TYPE_DECnet 12
#define TDI_ADDRESS_TYPE_DLI 13
#define TDI_ADDRESS_TYPE_LAT 14
#define TDI_ADDRESS_TYPE_HYLINK 15
#define TDI_ADDRESS_TYPE_APPLETALK 16
#define TDI_ADDRESS_TYPE_NETBIOS 17
#define TDI_ADDRESS_TYPE_8022 18
#define TDI_ADDRESS_TYPE_OSI_TSAP 19
#define TDI_ADDRESS_TYPE_NETONE 20
#define TDI_ADDRESS_TYPE_VNS 21
#define TDI_ADDRESS_TYPE_NETBIOS_EX 22
#define TDI_ADDRESS_TYPE_IP6 23
#define TDI_ADDRESS_TYPE_NETBIOS_UNICODE_EX 24
}
This is just a few copypastes from headers. It seems like ReacOS version is
just a quick copy of Microsoft TDI.H file, with removed comments, and
reordered definitions of strctures.
--
Volodymyr
NG tips:
http://msmvps.com/blogs/v_scherbina/pages/microsoft-newsgroups-tips.aspx
So, if I were to rewrite these public headers in another laguage, say
Pascal, then there's no copyright violation in your opinion?
This approach of comparing syntax is not the point. Programming is not
about syntax, it's about code and data semantics.
BTW, public headers define an interface, not the actual code of the
target module.
.
- Follow-Ups:
- Re: Did you try ReactOS?
- From: Ben Voigt [C++ MVP]
- Re: Did you try ReactOS?
- References:
- [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Alexander Grigoriev
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Kerem Gümrükcü
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Aleksey Bragin
- Re: [OT] Did you try ReactOS?
- From: Don Burn
- Re: [OT] Did you try ReactOS?
- From: Volodymyr Shcherbyna
- Re: [OT] Did you try ReactOS?
- From: Aleksey Bragin
- [OT] Did you try ReactOS?
- Prev by Date: Re: DRIVER_POWER_STATE_FAILURE question
- Next by Date: MSVAD buffer size problem.
- Previous by thread: Re: [OT] Did you try ReactOS?
- Next by thread: Re: Did you try ReactOS?
- Index(es):
Relevant Pages
|