mirror of
https://github.com/holub/mame
synced 2025-04-16 21:44:32 +03:00
Cleanups and version bump
This commit is contained in:
parent
18b8ce2f94
commit
ebeaa953a3
@ -3,7 +3,7 @@
|
||||
|
||||
<softwarelist name="apfimag_cass" description="APF Imagination cassettes">
|
||||
|
||||
<!-- To load a tape, just start APF Imagination with the BASIC cart inserted, and type CLOAD followed by <Return>
|
||||
<!-- To load a tape, just start APF Imagination with the BASIC cart inserted, and type CLOAD followed by <Return>
|
||||
(by default mapped to your ']' key). Then start the tape from the Internal UI and press <Return>.
|
||||
|
||||
If you don't press <Return>, the system won't read the tape (this is fairly unusual but it's the way the system works)
|
||||
|
@ -1,7 +1,7 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
TODO:
|
||||
* document basic tapes when they are fixed!
|
||||
|
@ -187,7 +187,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="asteroida" cloneof="asteroid">
|
||||
<description>Asteroids (Alt)</description>
|
||||
<year>19??</year>
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
<softwarelist name="epson_cpm" description="Epson CPM systems floppy disks">
|
||||
|
||||
<!-- This disk is used to boot the intelligent TF-20 floppy drive -->
|
||||
<!-- This disk is used to boot the intelligent TF-20 floppy drive -->
|
||||
|
||||
<software name="tf20boot">
|
||||
<description>TF-20 boot disk</description>
|
||||
@ -19,7 +19,7 @@
|
||||
</part>
|
||||
</software>
|
||||
|
||||
<!-- The following disks are part of the vfloppy distribution -->
|
||||
<!-- The following disks are part of the vfloppy distribution -->
|
||||
|
||||
<software name="arcs">
|
||||
<description>Archivers</description>
|
||||
|
@ -1,10 +1,10 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
TODO:
|
||||
* update to latest TOSEC (2014-10-31)
|
||||
TODO:
|
||||
* update to latest TOSEC (2014-10-31)
|
||||
* add usage instructions
|
||||
* check which games work and which don't and fix the supported flag accordingly
|
||||
-->
|
||||
|
@ -41,7 +41,7 @@
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<softwarelist name="leapster" description="LeapFrog Leapster cartridges">
|
||||
|
||||
<software name="findnemo" supported="no">
|
||||
@ -65,7 +65,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="spdrman" supported="no">
|
||||
<description>Spider-Man - Schachmatt den Schildersaboteuren! (German)</description>
|
||||
<year>2003</year>
|
||||
@ -98,7 +98,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="demo" supported="no">
|
||||
<description>Demo - Herbst 2004 II (German)</description>
|
||||
<year>2003</year>
|
||||
@ -120,7 +120,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="disprinz" supported="no">
|
||||
<description>Disney Prinzessinnen - Zauberhaftes Lernen (German)</description>
|
||||
<year>2003</year>
|
||||
|
@ -1,11 +1,11 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
|
||||
<!--
|
||||
Cassettes that load with CHAIN cannot auto-start correctly.
|
||||
Mount the BASIC-I cart first, then the cassette to load + run them.
|
||||
|
||||
Other tapes should auto-load and run.
|
||||
<!--
|
||||
Cassettes that load with CHAIN cannot auto-start correctly.
|
||||
Mount the BASIC-I cart first, then the cassette to load + run them.
|
||||
|
||||
Other tapes should auto-load and run.
|
||||
-->
|
||||
|
||||
<softwarelist name="m5_cass" description="Sord M5 cassettes">
|
||||
@ -220,7 +220,7 @@
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<info name="usage" value="Mount together with "BASIC-I" and load with CHAIN"/>
|
||||
<!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
|
||||
<!--<sharedfeat name="requirement" value="m5_cart:basici"/>-->
|
||||
|
||||
<part name="cass1" interface="m5_cass">
|
||||
<dataarea name="cass" size="3278">
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
This software list collects disks from many different sources, including the 13GB pack with ~90 rar files floating around since 2011
|
||||
Origin for many of the disks is Japanese BBS and/or P2P, so it is hard to properly credits whoever dumped them
|
||||
A huge credit goes however to Tokugawa Boards people (Ben, pete_j, Starscream the 2nd, delicious, Ashura, fa123, kobushi, Trickless, etc.)
|
||||
A huge credit goes however to Tokugawa Boards people (Ben, pete_j, Starscream the 2nd, delicious, Ashura, fa123, kobushi, Trickless, etc.)
|
||||
for sharing and dumping a lot of disks and for the researches on the disks
|
||||
|
||||
-->
|
||||
@ -46740,7 +46740,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="paradox" supported="no">
|
||||
<description>Paradox</description>
|
||||
<year>19??</year>
|
||||
@ -48823,7 +48823,7 @@ Requires MS-DOS 5.00H plus an unknown procedure (HDD install?)
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Game Packs, hopefully to be replaced with real disk images of the single games eventually
|
||||
|
||||
@ -56883,7 +56883,7 @@ SPACE EMPIRE
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Coverdisks
|
||||
|
||||
@ -57841,7 +57841,7 @@ SPACE EMPIRE
|
||||
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Game and Software Packs / Collections
|
||||
|
||||
@ -58323,7 +58323,7 @@ SPACE EMPIRE
|
||||
</software>
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
Bio 100% Freeware software
|
||||
|
||||
@ -58622,10 +58622,10 @@ SPACE EMPIRE
|
||||
</software>
|
||||
|
||||
|
||||
<!--
|
||||
<!--
|
||||
|
||||
VECTOR Freeware software
|
||||
|
||||
|
||||
These were available for download at Vector's homepage
|
||||
The disk images below have been created by users to launch the games in emulators
|
||||
|
||||
@ -62437,35 +62437,35 @@ Same as Police Quest 2 - Quest for Glory stand-alone disks
|
||||
|
||||
|
||||
|
||||
<!-- <software name="">
|
||||
<description>lodoss tou senki - custom (turbo program?) / ロードス島戦記カスタム</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A"/>
|
||||
<dataarea name="flop" size="1265664">
|
||||
<rom name="custom_program.fdi" size="1265664" crc="b78832f3" sha1="853bbf51085570147777460b2481be3149c710e4" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A"/>
|
||||
<dataarea name="flop" size="1265664">
|
||||
<rom name="custom_scenario.fdi" size="1265664" crc="8e8ee17d" sha1="f8b900cfdf557af018634003a6382aa7c35faab6" offset="0" /> <!- - same as in lodoss? - ->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
<!-- <software name="">
|
||||
<description>lodoss tou senki - custom (turbo program?) / ロードス島戦記カスタム</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A"/>
|
||||
<dataarea name="flop" size="1265664">
|
||||
<rom name="custom_program.fdi" size="1265664" crc="b78832f3" sha1="853bbf51085570147777460b2481be3149c710e4" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
<part name="flop2" interface="floppy_5_25">
|
||||
<feature name="part_id" value="Disk A"/>
|
||||
<dataarea name="flop" size="1265664">
|
||||
<rom name="custom_scenario.fdi" size="1265664" crc="8e8ee17d" sha1="f8b900cfdf557af018634003a6382aa7c35faab6" offset="0" /> <!- - same as in lodoss? - ->
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
-->
|
||||
|
||||
<!-- <software name="">
|
||||
<description>morita shougi ii + hanyuu data / 森田将棋2+ 羽生 データ</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1281968">
|
||||
<rom name="morita2p.d88" size="1281968" crc="99effa5b" sha1="c7c4a60e71b7112d94b85eb4fe0d156fae2c0c35" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
<!-- <software name="">
|
||||
<description>morita shougi ii + hanyuu data / 森田将棋2+ 羽生 データ</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<part name="flop1" interface="floppy_5_25">
|
||||
<dataarea name="flop" size="1281968">
|
||||
<rom name="morita2p.d88" size="1281968" crc="99effa5b" sha1="c7c4a60e71b7112d94b85eb4fe0d156fae2c0c35" offset="0" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
-->
|
||||
|
||||
|
||||
|
@ -2207,7 +2207,7 @@ Ballonies (198x)
|
||||
</software>
|
||||
|
||||
<!-- Joystick -->
|
||||
|
||||
|
||||
<software name="joysti01">
|
||||
<description>Joystick 01</description>
|
||||
<year>1985</year>
|
||||
@ -2339,9 +2339,9 @@ Ballonies (198x)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- MKOD -->
|
||||
|
||||
|
||||
<software name="mkod01">
|
||||
<description>MKOD Collection 01</description>
|
||||
<year>19??</year>
|
||||
@ -2569,7 +2569,7 @@ Ballonies (198x)
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<!-- BASIC Collections -->
|
||||
|
||||
<software name="basicc01">
|
||||
|
@ -28,7 +28,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="6809langb" cloneof="6809lang">
|
||||
<description>6809 Language Module (v1.0)</description>
|
||||
<year>1984</year>
|
||||
@ -52,7 +52,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="airbus">
|
||||
<description>Airbus</description>
|
||||
<year>1984</year>
|
||||
@ -64,7 +64,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="atomium">
|
||||
<description>Atomium</description>
|
||||
<year>1982</year>
|
||||
@ -76,7 +76,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="basic">
|
||||
<description>BASIC (v1.0)</description>
|
||||
<year>1982</year>
|
||||
@ -88,7 +88,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="blitz">
|
||||
<description>Blitz!</description>
|
||||
<year>1984</year>
|
||||
@ -104,15 +104,15 @@
|
||||
<software name="budgfami">
|
||||
<description>Budget Familial</description>
|
||||
<year>1982</year>
|
||||
<publisher>Answare</publisher>
|
||||
|
||||
<publisher>Answare</publisher>
|
||||
|
||||
<part name="cart" interface="to7_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="bf.7001.bin" size="16384" crc="193a8b14" sha1="82d3f56cd9c27ee80decf722a9e107761b42851e" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="caractr2">
|
||||
<description>Caractor II</description>
|
||||
<year>1984</year>
|
||||
@ -124,7 +124,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="caractor">
|
||||
<description>Caractor</description>
|
||||
<year>1983</year>
|
||||
@ -136,7 +136,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="choplift">
|
||||
<description>Choplifter</description>
|
||||
<year>1985</year>
|
||||
@ -160,7 +160,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="clrpaint">
|
||||
<description>Colorpaint</description>
|
||||
<year>1985</year>
|
||||
@ -184,7 +184,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="controle">
|
||||
<description>Controle Aerien</description>
|
||||
<year>1984</year>
|
||||
@ -196,7 +196,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="crypto">
|
||||
<description>Crypto</description>
|
||||
<year>1982</year>
|
||||
@ -245,7 +245,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="gemini">
|
||||
<description>Gemini</description>
|
||||
<year>1982</year>
|
||||
@ -256,8 +256,8 @@
|
||||
<rom name="gemini (1982)(vifi-nathan)(fr).bin" size="4096" crc="c20c1d82" sha1="92ee16ef7d14b241e8df390b0e6192810a8eda40" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</software>
|
||||
|
||||
<software name="gerfiche">
|
||||
<description>Gerez vos Fiches</description>
|
||||
<year>1984</year>
|
||||
@ -280,8 +280,8 @@
|
||||
<rom name="gerez vos fiches (answare) (inconnus) (1984) (memo7).bin" size="16384" crc="f3ad6a2c" sha1="396427d6fcf22a69c5de6a4873e20a5b3b7062f9" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</software>
|
||||
|
||||
<software name="gerteque">
|
||||
<description>Gerez Votre Bibliotheque-Discotheque-Videotheque</description>
|
||||
<year>1983</year>
|
||||
@ -292,8 +292,8 @@
|
||||
<rom name="gerez votre bibliotheque-discotheque-videotheque (1983)(answare)(fr).bin" size="8192" crc="cb6f0f85" sha1="56ce86e414a7debdadac4a416bad4c70d289be95" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
</software>
|
||||
|
||||
<software name="chiflett">
|
||||
<description>Les Chiffres et les Lettres</description>
|
||||
<year>1984</year>
|
||||
@ -305,7 +305,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="logicod">
|
||||
<description>Logicod</description>
|
||||
<year>1982</year>
|
||||
@ -317,7 +317,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="logo">
|
||||
<description>LOGO (v1.0)</description>
|
||||
<year>1984</year>
|
||||
@ -353,7 +353,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="lsegedl">
|
||||
<description>LSEG-EDL (v3.51)</description>
|
||||
<year>1985</year>
|
||||
@ -401,7 +401,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="melodia">
|
||||
<description>Melodia</description>
|
||||
<year>1982</year>
|
||||
@ -450,7 +450,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="pictor">
|
||||
<description>Pictor</description>
|
||||
<year>1983</year>
|
||||
@ -464,17 +464,17 @@
|
||||
</software>
|
||||
|
||||
<!--
|
||||
<software name="polyphon">
|
||||
<description>Polyphonia</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
<software name="polyphon">
|
||||
<description>Polyphonia</description>
|
||||
<year>19??</year>
|
||||
<publisher><unknown></publisher>
|
||||
|
||||
<part name="cart" interface="to7_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="polyphonia.bin" size="16384" crc="a38e60e0" sha1="a69569db7ca416159fc7e1921a60b38d40da8c8d" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
<part name="cart" interface="to7_cart">
|
||||
<dataarea name="rom" size="16384">
|
||||
<rom name="polyphonia.bin" size="16384" crc="a38e60e0" sha1="a69569db7ca416159fc7e1921a60b38d40da8c8d" offset="0x0000" />
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
-->
|
||||
|
||||
<software name="praxitel">
|
||||
@ -488,7 +488,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="prolog">
|
||||
<description>Prolog (v1.0)</description>
|
||||
<year>1986</year>
|
||||
@ -500,7 +500,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="quest">
|
||||
<description>Quest</description>
|
||||
<year>1983</year>
|
||||
@ -512,7 +512,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="scriptor">
|
||||
<description>Scriptor</description>
|
||||
<year>1984</year>
|
||||
@ -560,7 +560,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="threshld">
|
||||
<description>Threshold</description>
|
||||
<year>1984</year>
|
||||
|
@ -1,12 +1,12 @@
|
||||
<?xml version="1.0"?>
|
||||
<!DOCTYPE softwarelist SYSTEM "softwarelist.dtd">
|
||||
<!--
|
||||
If you want to use these cassettes, you must remove the hbf floppy interface from the slot devices.
|
||||
After doing so, mount the cassette and load with the "LOAD" command. In most cases the program will
|
||||
auto-start.
|
||||
<!--
|
||||
If you want to use these cassettes, you must remove the hbf floppy interface from the slot devices.
|
||||
After doing so, mount the cassette and load with the "LOAD" command. In most cases the program will
|
||||
auto-start.
|
||||
|
||||
NOTE: The multipart sets in TOSEC are from floppy-based games and cannot be loaded via cassette.
|
||||
So, they are not listed here.
|
||||
NOTE: The multipart sets in TOSEC are from floppy-based games and cannot be loaded via cassette.
|
||||
So, they are not listed here.
|
||||
-->
|
||||
<softwarelist name="tvc_cass" description="Videoton TVC cassettes">
|
||||
<software name="advgame">
|
||||
@ -1388,7 +1388,7 @@
|
||||
</dataarea>
|
||||
</part>
|
||||
</software>
|
||||
|
||||
|
||||
<software name="labirnt1">
|
||||
<description>Labirintus (Zoltán Gugi)</description>
|
||||
<year>198?</year>
|
||||
|
@ -10,7 +10,7 @@ NOTE: This list is here only to document available dumps and it's not used (yet)
|
||||
V.Smile Motion: 80-08**** (Smartridges are orange)
|
||||
V.Smile Smartbook Software: 80-089*** (Smartridges are red)
|
||||
V.Smile: 80-09**** (Smartridges are purple, some are gray because of plastic defects)
|
||||
V.Smile Baby 80-099*** (Smartridges are yellow, incompatible with TV based V.Smile consoles)
|
||||
V.Smile Baby 80-099*** (Smartridges are yellow, incompatible with TV based V.Smile consoles)
|
||||
|
||||
Addons (w/ yellow Smartridges)
|
||||
|
||||
@ -25,7 +25,7 @@ V.Smile PC Pal Island 80-036822(SP) (cart)
|
||||
|
||||
V.Smile Art Studio 80-67000(US)
|
||||
V.Smile Art Studio 80-67003(UK)
|
||||
V.Smile Zeichenatelier (Magic Malboard) 80-67004(GE)
|
||||
V.Smile Zeichenatelier (Magic Malboard) 80-67004(GE)
|
||||
V.Smile Studio De Dessin 80-67005(FR)
|
||||
V.Smile Estudio de Arte ORG 80-67022(SP)
|
||||
V.Smile Estudio de Arte PINK 80-67057(SP)
|
||||
@ -40,7 +40,7 @@ V.Smile Gimnasio Interactivo 80-91327(SP)
|
||||
|
||||
Language:
|
||||
********0 = US (White labels on back)
|
||||
********1 = Italy Apparently distributed by company 'Giochi Preziosi'
|
||||
********1 = Italy Apparently distributed by company 'Giochi Preziosi'
|
||||
********2 = Netherlands (Red or White labels on back)
|
||||
********3 = UK (Red labels on back)
|
||||
********4 = Germany (Blue labels on back)
|
||||
@ -49,8 +49,8 @@ Language:
|
||||
********7 = Spain (Green labels on back)
|
||||
|
||||
80-084000(US) | Action Mania
|
||||
(IT) | ?????
|
||||
80-084002(NL) | Sports Games
|
||||
(IT) | ?????
|
||||
80-084002(NL) | Sports Games
|
||||
80-084003(UK) | Action Mania
|
||||
80-084004(GE) | Sportskanone
|
||||
80-084005(FR) | Sporti Folies
|
||||
@ -143,7 +143,7 @@ Language:
|
||||
80-084322(NL) | TinkerBell
|
||||
80-084323(UK) | TinkerBell
|
||||
80-084324(GE) | TinkerBell
|
||||
80-084325(FR) | La fee Clochette
|
||||
80-084325(FR) | La fee Clochette
|
||||
80-084326(PT) | Sininho (84336 on cart)
|
||||
80-084327(SP) | Campanilla
|
||||
-
|
||||
@ -160,7 +160,7 @@ Language:
|
||||
80-084364(GE) | Meister Manny's Werkzeugkiste
|
||||
80-084365(FR) | Manny Et Ses Outils
|
||||
80-084366(PT) | Manny Maozinhas (84376 on cart)
|
||||
80-084367(SP) | Manny Manitas
|
||||
80-084367(SP) | Manny Manitas
|
||||
-
|
||||
80-084380(US) | Winnie the Pooh - The Honey Hunt
|
||||
(IT) | Winnie the Pooh - e la caccia al miele ???
|
||||
@ -186,8 +186,8 @@ Language:
|
||||
80-084425(FR) | Toy Story 3
|
||||
80-084427(SP) | Toy Story 3
|
||||
-
|
||||
80-084440(US) | Monsters vs. Aliens
|
||||
80-084442(NL) | Monsters vs. Aliens
|
||||
80-084440(US) | Monsters vs. Aliens
|
||||
80-084442(NL) | Monsters vs. Aliens
|
||||
80-084443(UK) | Monsters vs. Aliens
|
||||
80-084444(GE) | Monsters vs. Aliens
|
||||
80-084445(FR) | Monsters vs. Aliens
|
||||
@ -299,7 +299,7 @@ Oldest Smartidges start here
|
||||
80-092004(GE) | Abenteuer im ABC Park
|
||||
80-092005(FR) | ABC Land Aventure
|
||||
80-092006(PT) | ABC Adventure (EAN is 3417768920162 cart#92016)
|
||||
80-092007(SP) | Aventuras en el Parque Alfabeto (purple)
|
||||
80-092007(SP) | Aventuras en el Parque Alfabeto (purple)
|
||||
80-092007(SP) | Aventuras en el Parque Alfabeto (translucent) (No # on label)
|
||||
-
|
||||
80-092020(US) | The Adventures of Little Red Riding Hood
|
||||
@ -308,12 +308,12 @@ Oldest Smartidges start here
|
||||
80-092025(FR) | Les aventures du Le Petit Chaperon Rouge
|
||||
-
|
||||
80-092040(US) | Learnin' Wheels (blue car with guy driving)
|
||||
80-092043(UK) | Learnin' Wheels
|
||||
80-092043(UK) | Learnin' Wheels
|
||||
80-092044(GE) | Freds Zahlen Rally (note to self, guy in blue car wrong serial#) 80-092924(GE) on label
|
||||
80-092045(FR) | Apprenti' Pilote
|
||||
-
|
||||
80-092060(US) | Winnie The Pooh: The Honey Hunt
|
||||
(IT) | Winnie the Pooh - e la caccia al miele
|
||||
(IT) | Winnie the Pooh - e la caccia al miele
|
||||
80-092062(NL) | Winnie de Poeh - De winderwereld van Poeh
|
||||
80-092063(UK) | Winnie The Pooh: The Honey Hunt
|
||||
80-092064(GE) | Pooh - Die Honigjagd
|
||||
@ -344,12 +344,12 @@ Oldest Smartidges start here
|
||||
80-092107(SP) | Rey Leon - La Gran Aventura de Simba
|
||||
-
|
||||
80-092120(US) | The Little Mermaid - Ariel's Majestic Journey
|
||||
80-092121(IT) | Sirenetta - Ariel e le
|
||||
80-092121(IT) | Sirenetta - Ariel e le
|
||||
80-092122(NL) | De Kleine Zeemeermin - De Wunderwereld von Ariel
|
||||
80-092123(UK) | The Little Mermaid - Ariel's Majestic Journey
|
||||
80-092124(GE) | Arielle die Meerjungfrau - Arielles aufregendes Abenteuer
|
||||
80-092125(FR) | La Petite Sirene - Ariel devient une princesse
|
||||
80-092126(PT) |
|
||||
80-092126(PT) |
|
||||
80-092127(SP) | La Sirenita - El Vieje Fantastico de Ariel
|
||||
-
|
||||
80-092140(US) | Spider-Man & Friends - Secret Missions
|
||||
@ -370,7 +370,7 @@ Oldest Smartidges start here
|
||||
(IT) | Scooby-Doo! - Avventura e Funland
|
||||
80-092162(NL) | Scooby-Doo griezelen in het pretpark
|
||||
80-092163(UK) | Scooby-Doo! - Funland Frenzy
|
||||
80-092163-103(UK) | Scooby-Doo! - Funland Frenzy
|
||||
80-092163-103(UK) | Scooby-Doo! - Funland Frenzy
|
||||
80-092163-293(UK) | Scooby-Doo! - Funland Frenzy (Yellow, only Scooby on label might be motion version)
|
||||
80-092165(FR) | Scooby-Doo! - Panique a Funland
|
||||
80-092165(FR) | Scooby-Doo! - Panique a Funland (translucent purple, packin)
|
||||
@ -379,7 +379,7 @@ Oldest Smartidges start here
|
||||
80-092180(US) | Care Bears - A Lesson in Caring
|
||||
80-092183(UK) | Care Bears - A Lesson in Caring
|
||||
80-092184(GE) | Gluecksbarchis <- existance not proven
|
||||
80-092185(FR) | Les Bisounours - Le Monde Merveilleux des Bisounours
|
||||
80-092185(FR) | Les Bisounours - Le Monde Merveilleux des Bisounours
|
||||
80-092187(SP) | Osos Amorosos - Una Leccion de Amor
|
||||
-
|
||||
80-092200(US) | Aladdin - Aladdin's Wonders of the World
|
||||
@ -570,12 +570,12 @@ Oldest Smartidges start here
|
||||
80-092827(SP) | Campeonato de Futbol
|
||||
-
|
||||
80-092840(US) | Wall-E
|
||||
(IT) | Wall-E (GPZ07996)
|
||||
(IT) | Wall-E (GPZ07996)
|
||||
80-092842(NL) | Wall-E
|
||||
80-092843(UK) | Wall-E
|
||||
80-092844(GE) | Wall-E
|
||||
80-092845(FR) | Wall-E
|
||||
80-092847(SP) | Wall-E
|
||||
80-092847(SP) | Wall-E
|
||||
-
|
||||
80-092860(US) | Shrek the Third: Arthur's School Day Adventure
|
||||
(IT) | Shrek Terzo L'Advventura Do Artu in un Giorno di Scuola
|
||||
|
@ -16,13 +16,13 @@
|
||||
#include "emu.h"
|
||||
|
||||
// /INH special addresses
|
||||
#define INH_START_INVALID 0xffff;
|
||||
#define INH_END_INVALID 0x0000;
|
||||
#define INH_START_INVALID 0xffff;
|
||||
#define INH_END_INVALID 0x0000;
|
||||
|
||||
// /INH types
|
||||
#define INH_NONE 0x00
|
||||
#define INH_READ 0x01
|
||||
#define INH_WRITE 0x02
|
||||
// /INH types
|
||||
#define INH_NONE 0x00
|
||||
#define INH_READ 0x01
|
||||
#define INH_WRITE 0x02
|
||||
|
||||
//**************************************************************************
|
||||
// INTERFACE CONFIGURATION MACROS
|
||||
@ -120,7 +120,7 @@ protected:
|
||||
|
||||
devcb_write_line m_out_irq_cb;
|
||||
devcb_write_line m_out_nmi_cb;
|
||||
devcb_write8 m_out_inh_cb;
|
||||
devcb_write8 m_out_inh_cb;
|
||||
|
||||
device_a2bus_card_interface *m_device_list[8];
|
||||
const char *m_cputag;
|
||||
|
@ -71,4 +71,3 @@ UINT8 *a2eaux_ext80col_device::get_auxbank_ptr()
|
||||
{
|
||||
return &m_ram[0];
|
||||
}
|
||||
|
||||
|
@ -78,4 +78,3 @@ UINT8 *a2eaux_std80col_device::get_auxbank_ptr()
|
||||
{
|
||||
return &m_ram[0];
|
||||
}
|
||||
|
||||
|
@ -74,7 +74,7 @@ void a2bus_swyft_device::device_reset()
|
||||
{
|
||||
m_rombank = 0;
|
||||
|
||||
m_inh_state = INH_READ; // read-enable the ROM
|
||||
m_inh_state = INH_READ; // read-enable the ROM
|
||||
recalc_slot_inh();
|
||||
}
|
||||
|
||||
@ -146,4 +146,3 @@ int a2bus_swyft_device::inh_type()
|
||||
{
|
||||
return m_inh_state;
|
||||
}
|
||||
|
||||
|
@ -126,11 +126,11 @@ void a2bus_ssramcard_device::do_io(int offset)
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf("LC: (ofs %x) new state %c%c dxxx=%04x main=%05x\n",
|
||||
offset,
|
||||
(m_inh_state & INH_READ) ? 'R' : 'x',
|
||||
(m_inh_state & INH_WRITE) ? 'W' : 'x',
|
||||
m_dxxx_bank, m_main_bank);
|
||||
printf("LC: (ofs %x) new state %c%c dxxx=%04x main=%05x\n",
|
||||
offset,
|
||||
(m_inh_state & INH_READ) ? 'R' : 'x',
|
||||
(m_inh_state & INH_WRITE) ? 'W' : 'x',
|
||||
m_dxxx_bank, m_main_bank);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -157,7 +157,7 @@ void a2bus_ssramcard_device::write_c0nx(address_space &space, UINT8 offset, UINT
|
||||
|
||||
UINT8 a2bus_ssramcard_device::read_inh_rom(address_space &space, UINT16 offset)
|
||||
{
|
||||
assert(m_inh_state & INH_READ); // this should never happen
|
||||
assert(m_inh_state & INH_READ); // this should never happen
|
||||
|
||||
if (offset < 0xe000)
|
||||
{
|
||||
@ -188,4 +188,3 @@ int a2bus_ssramcard_device::inh_type()
|
||||
{
|
||||
return m_inh_state;
|
||||
}
|
||||
|
||||
|
@ -107,10 +107,10 @@ void a2bus_ramcard_device::do_io(int offset)
|
||||
}
|
||||
|
||||
#if 0
|
||||
printf("LC: new state %c%c dxxx=%04x\n",
|
||||
(m_inh_state & INH_READ) ? 'R' : 'x',
|
||||
(m_inh_state & INH_WRITE) ? 'W' : 'x',
|
||||
m_dxxx_bank);
|
||||
printf("LC: new state %c%c dxxx=%04x\n",
|
||||
(m_inh_state & INH_READ) ? 'R' : 'x',
|
||||
(m_inh_state & INH_WRITE) ? 'W' : 'x',
|
||||
m_dxxx_bank);
|
||||
#endif
|
||||
}
|
||||
|
||||
@ -137,7 +137,7 @@ void a2bus_ramcard_device::write_c0nx(address_space &space, UINT8 offset, UINT8
|
||||
|
||||
UINT8 a2bus_ramcard_device::read_inh_rom(address_space &space, UINT16 offset)
|
||||
{
|
||||
assert(m_inh_state & INH_READ); // this should never happen
|
||||
assert(m_inh_state & INH_READ); // this should never happen
|
||||
|
||||
if (offset < 0xe000)
|
||||
{
|
||||
@ -168,4 +168,3 @@ int a2bus_ramcard_device::inh_type()
|
||||
{
|
||||
return m_inh_state;
|
||||
}
|
||||
|
||||
|
@ -34,7 +34,7 @@ public:
|
||||
virtual void device_start();
|
||||
|
||||
bool get_card_mounted() { return m_card_mounted; }
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
@ -19,7 +19,7 @@
|
||||
mapped to the cartridge memory starting at $2000. So it would be possible to
|
||||
load a cartridge program from tape into the expansion memory, then flip the range
|
||||
switch and run it as a cartridge. This is useful for cartridge development.
|
||||
|
||||
|
||||
Blue RAM -- available in 4K, 16K, and 32K. These also use an INS8154 chip,
|
||||
(not yet implemented) which has an additional $80 bytes of RAM mapped
|
||||
immediately after the end of the expansion address space. This memory
|
||||
@ -29,17 +29,17 @@
|
||||
past this range)
|
||||
16K: $6000 to $9FFF
|
||||
32K: $6000 to $DFFF
|
||||
|
||||
|
||||
VIPER System 1 -- This is available in 16K only. It also includes a keyboard (not implemented).
|
||||
16K: $6000 to $9FFF
|
||||
|
||||
|
||||
Lil' WHITE RAM -- This is available in 32K only. Attempts to read and write
|
||||
to memory outside of its address range ($D000 to $FFFF) are mapped to the expansion
|
||||
memory $5000 to $7FFF. The current implementation won't allow the shadow RAM area
|
||||
to be accessed when RAM protect is on, but there is no known software that will
|
||||
access the upper range of the expansion RAM when RAM protect is enabled.
|
||||
32K: $5000 to $CFFF
|
||||
|
||||
|
||||
R&L 64K RAM Board -- This is a highly configurable kit. RAM can be installed in
|
||||
2K increments. So, the entire 44K expansion memory can be filled. It is also
|
||||
possible to override the rest of the memory map with RAM (not implemented).
|
||||
@ -48,7 +48,7 @@
|
||||
installing switches. The ranges are $0000 to $0FFF (first 4K), $0000 to $3FFF (first 16K),
|
||||
and $0000 to $FFFF (all 64K). The current implementation is for 44K expansion memory mapped from
|
||||
$5000 to $FFFF, with only a single write protect covering this entire range.
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
@ -209,5 +209,3 @@ WRITE8_MEMBER(astrocade_rl64ram_device::write)
|
||||
if (!m_write_prot->read())
|
||||
m_ram[offset] = data;
|
||||
}
|
||||
|
||||
|
||||
|
@ -37,7 +37,7 @@ class astrocade_blueram_16k_device : public astrocade_blueram_4k_device
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_blueram_16k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual void device_start() { m_ram.resize(0x4000); save_item(NAME(m_ram)); }
|
||||
};
|
||||
|
||||
@ -48,7 +48,7 @@ class astrocade_blueram_32k_device : public astrocade_blueram_4k_device
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_blueram_32k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual void device_start() { m_ram.resize(0x8000); save_item(NAME(m_ram)); }
|
||||
};
|
||||
|
||||
@ -60,7 +60,7 @@ class astrocade_viper_sys1_device : public device_t,
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_viper_sys1_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() { m_ram.resize(0x4000); save_item(NAME(m_ram)); }
|
||||
virtual void device_reset() {}
|
||||
@ -69,7 +69,7 @@ public:
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
|
||||
private:
|
||||
dynamic_buffer m_ram;
|
||||
required_ioport m_write_prot;
|
||||
@ -83,16 +83,16 @@ class astrocade_whiteram_device : public device_t,
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_whiteram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() { m_ram.resize(0x8000); save_item(NAME(m_ram)); }
|
||||
virtual void device_reset() {}
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
|
||||
private:
|
||||
dynamic_buffer m_ram;
|
||||
required_ioport m_write_prot;
|
||||
@ -106,16 +106,16 @@ class astrocade_rl64ram_device : public device_t,
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_rl64ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
// device-level overrides
|
||||
virtual void device_start() { m_ram.resize(0xb000); save_item(NAME(m_ram)); }
|
||||
virtual void device_reset() {}
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
|
||||
private:
|
||||
dynamic_buffer m_ram;
|
||||
required_ioport m_write_prot;
|
||||
|
@ -80,21 +80,20 @@ READ8_MEMBER(astrocade_rom_device::read_rom)
|
||||
|
||||
READ8_MEMBER(astrocade_rom_256k_device::read_rom)
|
||||
{
|
||||
if (offset < 0x1000) // 0x2000-0x2fff
|
||||
if (offset < 0x1000) // 0x2000-0x2fff
|
||||
return m_rom[offset + 0x1000 * 0x3f];
|
||||
else if (offset < 0x1fc0) // 0x3000-0x3fbf
|
||||
else if (offset < 0x1fc0) // 0x3000-0x3fbf
|
||||
return m_rom[(offset & 0xfff) + (0x1000 * m_base_bank)];
|
||||
else // 0x3fc0-0x3fff
|
||||
else // 0x3fc0-0x3fff
|
||||
return m_base_bank = offset & 0x3f;
|
||||
}
|
||||
|
||||
READ8_MEMBER(astrocade_rom_512k_device::read_rom)
|
||||
{
|
||||
if (offset < 0x1000) // 0x2000-0x2fff
|
||||
if (offset < 0x1000) // 0x2000-0x2fff
|
||||
return m_rom[offset + 0x1000 * 0x7f];
|
||||
else if (offset < 0x1f80) // 0x3000-0x3fbf
|
||||
else if (offset < 0x1f80) // 0x3000-0x3fbf
|
||||
return m_rom[(offset & 0xfff) + (0x1000 * m_base_bank)];
|
||||
else // 0x3fc0-0x3fff
|
||||
else // 0x3fc0-0x3fff
|
||||
return m_base_bank = offset & 0x7f;
|
||||
}
|
||||
|
||||
|
@ -31,13 +31,13 @@ class astrocade_rom_256k_device : public astrocade_rom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_rom_256k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
|
||||
|
||||
private:
|
||||
UINT8 m_base_bank;
|
||||
};
|
||||
@ -49,13 +49,13 @@ class astrocade_rom_512k_device : public astrocade_rom_device
|
||||
public:
|
||||
// construction/destruction
|
||||
astrocade_rom_512k_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
|
||||
|
||||
virtual void device_start();
|
||||
virtual void device_reset();
|
||||
|
||||
|
||||
// reading and writing
|
||||
virtual DECLARE_READ8_MEMBER(read_rom);
|
||||
|
||||
|
||||
private:
|
||||
UINT8 m_base_bank;
|
||||
};
|
||||
|
@ -207,7 +207,7 @@ void astrocade_cart_slot_device::get_default_card_software(astring &result)
|
||||
const char *slot_string = "rom";
|
||||
UINT32 size = core_fsize(m_file);
|
||||
int type = ASTROCADE_STD;
|
||||
|
||||
|
||||
if (size == 0x40000)
|
||||
type = ASTROCADE_256K;
|
||||
if (size == 0x80000)
|
||||
@ -236,4 +236,3 @@ READ8_MEMBER(astrocade_cart_slot_device::read_rom)
|
||||
else
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
|
@ -28,15 +28,15 @@
|
||||
// ======================> epson_lx810l_t
|
||||
|
||||
class epson_lx810l_t : public device_t,
|
||||
public device_centronics_peripheral_interface
|
||||
public device_centronics_peripheral_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
epson_lx810l_t(const machine_config &mconfig, const char *tag,
|
||||
device_t *owner, UINT32 clock);
|
||||
device_t *owner, UINT32 clock);
|
||||
epson_lx810l_t(const machine_config &mconfig, device_type type,
|
||||
const char *name, const char *tag, device_t *owner,
|
||||
UINT32 clock, const char *shortname, const char *source);
|
||||
const char *name, const char *tag, device_t *owner,
|
||||
UINT32 clock, const char *shortname, const char *source);
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
@ -103,7 +103,7 @@ class epson_ap2000_t : public epson_lx810l_t
|
||||
public:
|
||||
// construction/destruction
|
||||
epson_ap2000_t(const machine_config &mconfig, const char *tag,
|
||||
device_t *owner, UINT32 clock);
|
||||
device_t *owner, UINT32 clock);
|
||||
|
||||
// optional information overrides
|
||||
virtual const rom_entry *device_rom_region() const;
|
||||
|
@ -24,8 +24,8 @@ const device_type COCO_DWSOCK = &device_creator<beckerport_device>;
|
||||
|
||||
INPUT_PORTS_START( coco_drivewire )
|
||||
PORT_START(DRIVEWIRE_PORT_TAG)
|
||||
PORT_CONFNAME( 0xffff, 65504, "Drivewire Server TCP Port")
|
||||
PORT_CHANGED_MEMBER(DEVICE_SELF, beckerport_device, drivewire_port_changed, NULL )
|
||||
PORT_CONFNAME( 0xffff, 65504, "Drivewire Server TCP Port")
|
||||
PORT_CHANGED_MEMBER(DEVICE_SELF, beckerport_device, drivewire_port_changed, NULL )
|
||||
PORT_CONFSETTING( 65500, "65500" )
|
||||
PORT_CONFSETTING( 65501, "65501" )
|
||||
PORT_CONFSETTING( 65502, "65502" )
|
||||
@ -52,7 +52,7 @@ ioport_constructor beckerport_device::device_input_ports() const
|
||||
//-------------------------------------------------
|
||||
INPUT_CHANGED_MEMBER(beckerport_device::drivewire_port_changed)
|
||||
{
|
||||
this->update_port();
|
||||
this->update_port();
|
||||
}
|
||||
|
||||
//**************************************************************************
|
||||
@ -64,18 +64,18 @@ INPUT_CHANGED_MEMBER(beckerport_device::drivewire_port_changed)
|
||||
//-------------------------------------------------
|
||||
|
||||
beckerport_device::beckerport_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: device_t(mconfig, COCO_DWSOCK, "Virtual Becker Port", tag, owner, clock, "coco_dwsock", __FILE__),
|
||||
m_dwconfigport(*this, DRIVEWIRE_PORT_TAG)
|
||||
: device_t(mconfig, COCO_DWSOCK, "Virtual Becker Port", tag, owner, clock, "coco_dwsock", __FILE__),
|
||||
m_dwconfigport(*this, DRIVEWIRE_PORT_TAG)
|
||||
{
|
||||
m_pSocket = NULL;
|
||||
m_head = 0;
|
||||
m_rx_pending = 0;
|
||||
m_pSocket = NULL;
|
||||
m_head = 0;
|
||||
m_rx_pending = 0;
|
||||
}
|
||||
|
||||
beckerport_device::~beckerport_device()
|
||||
{
|
||||
if (m_pSocket != NULL)
|
||||
device_stop();
|
||||
if (m_pSocket != NULL)
|
||||
device_stop();
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -84,22 +84,22 @@ beckerport_device::~beckerport_device()
|
||||
|
||||
void beckerport_device::device_start(void)
|
||||
{
|
||||
char chAddress[64];
|
||||
char chAddress[64];
|
||||
|
||||
/* format address string for opening the port */
|
||||
snprintf(chAddress, sizeof(chAddress), "socket.%s:%d", m_hostname, m_dwtcpport);
|
||||
/* format address string for opening the port */
|
||||
snprintf(chAddress, sizeof(chAddress), "socket.%s:%d", m_hostname, m_dwtcpport);
|
||||
|
||||
fprintf(stderr, "Connecting to Drivewire server on %s:%d... ", m_hostname, m_dwtcpport);
|
||||
fprintf(stderr, "Connecting to Drivewire server on %s:%d... ", m_hostname, m_dwtcpport);
|
||||
|
||||
UINT64 filesize; // unused
|
||||
file_error filerr = osd_open(chAddress, 0, &m_pSocket, &filesize);
|
||||
if (filerr != FILERR_NONE)
|
||||
{
|
||||
fprintf(stderr, "Error: osd_open returned error %i!\n", (int) filerr);
|
||||
return;
|
||||
}
|
||||
UINT64 filesize; // unused
|
||||
file_error filerr = osd_open(chAddress, 0, &m_pSocket, &filesize);
|
||||
if (filerr != FILERR_NONE)
|
||||
{
|
||||
fprintf(stderr, "Error: osd_open returned error %i!\n", (int) filerr);
|
||||
return;
|
||||
}
|
||||
|
||||
fprintf(stderr, "Connected!\n");
|
||||
fprintf(stderr, "Connected!\n");
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -108,12 +108,12 @@ void beckerport_device::device_start(void)
|
||||
|
||||
void beckerport_device::device_stop(void)
|
||||
{
|
||||
if (m_pSocket != NULL)
|
||||
{
|
||||
printf("Closing connection to Drivewire server\n");
|
||||
osd_close(m_pSocket);
|
||||
m_pSocket = NULL;
|
||||
}
|
||||
if (m_pSocket != NULL)
|
||||
{
|
||||
printf("Closing connection to Drivewire server\n");
|
||||
osd_close(m_pSocket);
|
||||
m_pSocket = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -132,40 +132,40 @@ void beckerport_device::device_config_complete(void)
|
||||
|
||||
READ8_MEMBER(beckerport_device::read)
|
||||
{
|
||||
unsigned char data = 0x5a;
|
||||
unsigned char data = 0x5a;
|
||||
|
||||
if (m_pSocket == NULL)
|
||||
return data;
|
||||
if (m_pSocket == NULL)
|
||||
return data;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case DWS_STATUS:
|
||||
if (!m_rx_pending)
|
||||
{
|
||||
/* Try to read from dws */
|
||||
file_error filerr = osd_read(m_pSocket, m_buf, 0, sizeof(m_buf), &m_rx_pending);
|
||||
if (filerr != FILERR_NONE && filerr != FILERR_FAILURE) // FILERR_FAILURE means no data available, so don't throw error message
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::read() socket read operation failed with file_error %i\n", filerr);
|
||||
else
|
||||
m_head = 0;
|
||||
}
|
||||
//printf("beckerport_device: status read. %i bytes remaining.\n", m_rx_pending);
|
||||
data = (m_rx_pending > 0) ? 2 : 0;
|
||||
break;
|
||||
case DWS_DATA:
|
||||
if (!m_rx_pending) {
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::read() buffer underrun\n");
|
||||
break;
|
||||
}
|
||||
data = m_buf[m_head++];
|
||||
m_rx_pending--;
|
||||
//printf("beckerport_device: data read 1 byte (0x%02x). %i bytes remaining.\n", data&0xff, m_rx_pending);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "%s: read from bad offset %d\n", __FILE__, offset);
|
||||
}
|
||||
switch (offset)
|
||||
{
|
||||
case DWS_STATUS:
|
||||
if (!m_rx_pending)
|
||||
{
|
||||
/* Try to read from dws */
|
||||
file_error filerr = osd_read(m_pSocket, m_buf, 0, sizeof(m_buf), &m_rx_pending);
|
||||
if (filerr != FILERR_NONE && filerr != FILERR_FAILURE) // FILERR_FAILURE means no data available, so don't throw error message
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::read() socket read operation failed with file_error %i\n", filerr);
|
||||
else
|
||||
m_head = 0;
|
||||
}
|
||||
//printf("beckerport_device: status read. %i bytes remaining.\n", m_rx_pending);
|
||||
data = (m_rx_pending > 0) ? 2 : 0;
|
||||
break;
|
||||
case DWS_DATA:
|
||||
if (!m_rx_pending) {
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::read() buffer underrun\n");
|
||||
break;
|
||||
}
|
||||
data = m_buf[m_head++];
|
||||
m_rx_pending--;
|
||||
//printf("beckerport_device: data read 1 byte (0x%02x). %i bytes remaining.\n", data&0xff, m_rx_pending);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "%s: read from bad offset %d\n", __FILE__, offset);
|
||||
}
|
||||
|
||||
return (int)data;
|
||||
return (int)data;
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -174,26 +174,26 @@ READ8_MEMBER(beckerport_device::read)
|
||||
|
||||
WRITE8_MEMBER(beckerport_device::write)
|
||||
{
|
||||
char d = (char)data;
|
||||
file_error filerr;
|
||||
char d = (char)data;
|
||||
file_error filerr;
|
||||
|
||||
if (m_pSocket == NULL)
|
||||
return;
|
||||
if (m_pSocket == NULL)
|
||||
return;
|
||||
|
||||
switch (offset)
|
||||
{
|
||||
case DWS_STATUS:
|
||||
//printf("beckerport_write: error: write (0x%02x) to status register\n", d);
|
||||
break;
|
||||
case DWS_DATA:
|
||||
filerr = osd_write(m_pSocket, &d, 0, 1, NULL);
|
||||
if (filerr != FILERR_NONE)
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::write() socket write operation failed with file_error %i\n", filerr);
|
||||
//printf("beckerport_write: data write one byte (0x%02x)\n", d & 0xff);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "%s: write to bad offset %d\n", __FILE__, offset);
|
||||
}
|
||||
switch (offset)
|
||||
{
|
||||
case DWS_STATUS:
|
||||
//printf("beckerport_write: error: write (0x%02x) to status register\n", d);
|
||||
break;
|
||||
case DWS_DATA:
|
||||
filerr = osd_write(m_pSocket, &d, 0, 1, NULL);
|
||||
if (filerr != FILERR_NONE)
|
||||
fprintf(stderr, "coco_dwsock.c: beckerport_device::write() socket write operation failed with file_error %i\n", filerr);
|
||||
//printf("beckerport_write: data write one byte (0x%02x)\n", d & 0xff);
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "%s: write to bad offset %d\n", __FILE__, offset);
|
||||
}
|
||||
}
|
||||
|
||||
/*-------------------------------------------------
|
||||
@ -202,8 +202,7 @@ WRITE8_MEMBER(beckerport_device::write)
|
||||
|
||||
void beckerport_device::update_port(void)
|
||||
{
|
||||
device_stop();
|
||||
m_dwtcpport = m_dwconfigport->read_safe(65504);
|
||||
device_start();
|
||||
device_stop();
|
||||
m_dwtcpport = m_dwconfigport->read_safe(65504);
|
||||
device_start();
|
||||
}
|
||||
|
||||
|
@ -23,33 +23,33 @@
|
||||
class beckerport_device : public device_t
|
||||
{
|
||||
public:
|
||||
beckerport_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual ~beckerport_device();
|
||||
beckerport_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
|
||||
virtual ~beckerport_device();
|
||||
|
||||
// optional information overrides
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
// optional information overrides
|
||||
virtual ioport_constructor device_input_ports() const;
|
||||
|
||||
virtual void device_start(void);
|
||||
virtual void device_stop(void);
|
||||
virtual void device_config_complete(void);
|
||||
virtual void device_start(void);
|
||||
virtual void device_stop(void);
|
||||
virtual void device_config_complete(void);
|
||||
|
||||
void update_port(void);
|
||||
void update_port(void);
|
||||
|
||||
// driver update handlers
|
||||
DECLARE_INPUT_CHANGED_MEMBER(drivewire_port_changed);
|
||||
// driver update handlers
|
||||
DECLARE_INPUT_CHANGED_MEMBER(drivewire_port_changed);
|
||||
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
virtual DECLARE_READ8_MEMBER(read);
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
// types
|
||||
enum dwsock_ports {
|
||||
DWS_STATUS,
|
||||
DWS_DATA
|
||||
};
|
||||
// types
|
||||
enum dwsock_ports {
|
||||
DWS_STATUS,
|
||||
DWS_DATA
|
||||
};
|
||||
|
||||
private:
|
||||
/* IP hostname */
|
||||
const char * m_hostname;
|
||||
/* IP hostname */
|
||||
const char * m_hostname;
|
||||
|
||||
/* IP port */
|
||||
required_ioport m_dwconfigport;
|
||||
@ -69,4 +69,3 @@ extern const device_type COCO_DWSOCK;
|
||||
typedef device_type_iterator<&device_creator<beckerport_device>, beckerport_device> beckerport_device_iterator;
|
||||
|
||||
#endif /* _DWSOCK_H_ */
|
||||
|
||||
|
@ -1,4 +1,4 @@
|
||||
/*
|
||||
/*
|
||||
PlayCity expansion device
|
||||
|
||||
Z80 CTC
|
||||
@ -158,4 +158,3 @@ void cpc_playcity_device::update_ymz_clock()
|
||||
m_ymz2->ay_set_clock(clk);
|
||||
popmessage("YMZ clocks set to %d Hz",clk);
|
||||
}
|
||||
|
||||
|
@ -1,15 +1,15 @@
|
||||
/*
|
||||
/*
|
||||
PlayCity expansion device
|
||||
|
||||
I/O ports:
|
||||
* F880 - Z80CTC channel 0 (input is system clock (4MHz), output to YMZ294 clock)
|
||||
* F881 - Z80CTC channel 1 (input from CRTC CURSOR, output to /NMI)
|
||||
* F882 - Z80CTC channel 2 (input is system clock (4MHz), output to channel 3 input)
|
||||
* F883 - Z80CTC channel 3 (input is channel 2 output)
|
||||
* F884 - YMZ294 #1 (right) data
|
||||
* F888 - YMZ294 #2 (left) data
|
||||
* F984 - YMZ294 #1 (right) register select
|
||||
* F988 - YMZ294 #2 (left) register select
|
||||
I/O ports:
|
||||
* F880 - Z80CTC channel 0 (input is system clock (4MHz), output to YMZ294 clock)
|
||||
* F881 - Z80CTC channel 1 (input from CRTC CURSOR, output to /NMI)
|
||||
* F882 - Z80CTC channel 2 (input is system clock (4MHz), output to channel 3 input)
|
||||
* F883 - Z80CTC channel 3 (input is channel 2 output)
|
||||
* F884 - YMZ294 #1 (right) data
|
||||
* F888 - YMZ294 #2 (left) data
|
||||
* F984 - YMZ294 #1 (right) register select
|
||||
* F988 - YMZ294 #2 (left) register select
|
||||
*/
|
||||
|
||||
#ifndef CPC_PLAYCITY_H_
|
||||
@ -64,4 +64,3 @@ extern const device_type CPC_PLAYCITY;
|
||||
|
||||
|
||||
#endif /* CPC_PLAYCITY_H_ */
|
||||
|
||||
|
@ -557,11 +557,11 @@ int base_gb_cart_slot_device::get_cart_type(UINT8 *ROM, UINT32 len)
|
||||
|
||||
/* Check if we're dealing with the multigame variant of the MBC1 mapper */
|
||||
if (type == GB_MBC_MBC1)
|
||||
{ // bomberman collection korea
|
||||
{ // bomberman collection korea
|
||||
if (ROM[0x134] == 0x42 && ROM[0x135] == 0x4f && ROM[0x136] == 0x4d && ROM[0x137] == 0x53)
|
||||
type = GB_MBC_MBC1_COL;
|
||||
// if (ROM[0x13f] == 0x42 && ROM[0x140] == 0x32 && ROM[0x141] == 0x43 && ROM[0x142] == 0x4B)
|
||||
// type = GB_MBC_MBC1_COL;
|
||||
// if (ROM[0x13f] == 0x42 && ROM[0x140] == 0x32 && ROM[0x141] == 0x43 && ROM[0x142] == 0x4B)
|
||||
// type = GB_MBC_MBC1_COL;
|
||||
// genjin collection
|
||||
if (ROM[0x134] == 0x47 && ROM[0x135] == 0x45 && ROM[0x136] == 0x4e && ROM[0x137] == 0x43)
|
||||
type = GB_MBC_MBC1_COL;
|
||||
|
@ -968,7 +968,7 @@ MC6845_UPDATE_ROW( isa8_ec1840_0002_device::crtc_update_row )
|
||||
{
|
||||
if (m_update_row_type == -1)
|
||||
return;
|
||||
|
||||
|
||||
switch (m_update_row_type)
|
||||
{
|
||||
case MDA_LOWRES_TEXT_INTEN:
|
||||
|
@ -39,13 +39,13 @@ SLOT_INTERFACE_START( mc1502_isa8_cards )
|
||||
SLOT_INTERFACE_END
|
||||
|
||||
SLOT_INTERFACE_START( ec184x_isa8_cards )
|
||||
SLOT_INTERFACE("ec1840.0002", ISA8_EC1840_0002) // MDA with downloadable font
|
||||
SLOT_INTERFACE("ec1841.0002", ISA8_EC1841_0002) // CGA with downloadable font
|
||||
SLOT_INTERFACE("ec1840.0002", ISA8_EC1840_0002) // MDA with downloadable font
|
||||
SLOT_INTERFACE("ec1841.0002", ISA8_EC1841_0002) // CGA with downloadable font
|
||||
SLOT_INTERFACE("ec1841.0003", ISA8_FDC_XT)
|
||||
/*
|
||||
SLOT_INTERFACE("ec1841.0010", ISA8_EC1841_0010) // 8089-based HDC
|
||||
SLOT_INTERFACE("ec1841.0003", ISA8_EC1841_0003) // FDC + mouse port
|
||||
SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004) // BSC-like serial ports + parallel port
|
||||
SLOT_INTERFACE("ec1841.0010", ISA8_EC1841_0010) // 8089-based HDC
|
||||
SLOT_INTERFACE("ec1841.0003", ISA8_EC1841_0003) // FDC + mouse port
|
||||
SLOT_INTERFACE("ec1841.0004", ISA8_EC1841_0004) // BSC-like serial ports + parallel port
|
||||
*/
|
||||
SLOT_INTERFACE("mda", ISA8_MDA)
|
||||
SLOT_INTERFACE("hdc", ISA8_HDC_EC1841)
|
||||
|
@ -6,7 +6,7 @@
|
||||
|
||||
TODO:
|
||||
- reimplement cart mirroring in a better way
|
||||
|
||||
|
||||
***********************************************************************************************************/
|
||||
|
||||
|
||||
|
@ -13,7 +13,7 @@
|
||||
|
||||
TODO:
|
||||
|
||||
http://www.6502.org/users/sjgray/computer/hsg/index.html
|
||||
http://www.6502.org/users/sjgray/computer/hsg/index.html
|
||||
|
||||
- version A (EF9365, 512x512 interlaced, 1 page)
|
||||
- version B (EF9366, 512x256 non-interlaced, 2 pages)
|
||||
|
@ -26,7 +26,7 @@
|
||||
// ======================> cbm8000_hsg_t
|
||||
|
||||
class cbm8000_hsg_t : public device_t,
|
||||
public device_pet_expansion_card_interface
|
||||
public device_pet_expansion_card_interface
|
||||
{
|
||||
public:
|
||||
// construction/destruction
|
||||
|
@ -34,18 +34,18 @@ WRITE8_MEMBER(spc1000_fdd_exp_device::i8255_c_w)
|
||||
READ8_MEMBER( spc1000_fdd_exp_device::tc_r )
|
||||
{
|
||||
logerror("%s: tc_r\n", space.machine().describe_context());
|
||||
|
||||
|
||||
// toggle tc on read
|
||||
m_fdc->tc_w(true);
|
||||
m_timer_tc->adjust(attotime::zero);
|
||||
|
||||
|
||||
return 0xff;
|
||||
}
|
||||
|
||||
WRITE8_MEMBER( spc1000_fdd_exp_device::control_w )
|
||||
{
|
||||
logerror("%s: control_w(%02x)\n", space.machine().describe_context(), data);
|
||||
|
||||
|
||||
// bit 0, motor on signal
|
||||
if (m_fd0)
|
||||
m_fd0->mon_w(!BIT(data, 0));
|
||||
@ -150,7 +150,7 @@ void spc1000_fdd_exp_device::device_start()
|
||||
{
|
||||
m_timer_tc = timer_alloc(TIMER_TC);
|
||||
m_timer_tc->adjust(attotime::never);
|
||||
|
||||
|
||||
m_fd0 = subdevice<floppy_connector>("upd765:0")->get_device();
|
||||
m_fd1 = subdevice<floppy_connector>("upd765:1")->get_device();
|
||||
}
|
||||
|
@ -36,7 +36,7 @@ public:
|
||||
DECLARE_WRITE8_MEMBER(i8255_b_w);
|
||||
DECLARE_READ8_MEMBER(i8255_c_r);
|
||||
DECLARE_WRITE8_MEMBER(i8255_c_w);
|
||||
|
||||
|
||||
private:
|
||||
// internal state
|
||||
required_device<z80_device> m_cpu;
|
||||
@ -47,11 +47,11 @@ private:
|
||||
floppy_image_device *m_fd1;
|
||||
|
||||
emu_timer *m_timer_tc;
|
||||
|
||||
|
||||
UINT8 m_i8255_0_pc;
|
||||
UINT8 m_i8255_1_pc;
|
||||
UINT8 m_i8255_portb;
|
||||
|
||||
|
||||
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
|
||||
static const device_timer_id TIMER_TC = 0;
|
||||
};
|
||||
|
@ -19,7 +19,7 @@ WRITE_LINE_MEMBER(spc1000_vdp_exp_device::vdp_interrupt)
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT(scp1000_vdp)
|
||||
|
||||
MCFG_DEVICE_ADD("tms", TMS9928A, XTAL_10_738635MHz / 2) // TODO: which clock?
|
||||
MCFG_DEVICE_ADD("tms", TMS9928A, XTAL_10_738635MHz / 2) // TODO: which clock?
|
||||
MCFG_TMS9928A_VRAM_SIZE(0x4000)
|
||||
MCFG_TMS9928A_OUT_INT_LINE_CB(WRITELINE(spc1000_vdp_exp_device, vdp_interrupt))
|
||||
MCFG_TMS9928A_SCREEN_ADD_NTSC("tms_screen")
|
||||
|
@ -30,7 +30,7 @@ public:
|
||||
virtual DECLARE_WRITE8_MEMBER(write);
|
||||
|
||||
DECLARE_WRITE_LINE_MEMBER(vdp_interrupt);
|
||||
|
||||
|
||||
private:
|
||||
// internal state
|
||||
required_device<tms9928a_device> m_vdp;
|
||||
|
@ -1009,11 +1009,11 @@ void cp1610_cpu_device::cp1610_besc(int dir)
|
||||
* S Z C OV 1 000 s1e e p ppp ppp ppp ppp ppp
|
||||
* - - - - BEXT ADDR, eeee
|
||||
***************************************************/
|
||||
void cp1610_cpu_device::cp1610_bext(int ext, int dir)
|
||||
void cp1610_cpu_device::cp1610_bext(int ext, int dir)
|
||||
{
|
||||
UINT16 offset = cp1610_readop(m_r[7]);
|
||||
m_r[7]++;
|
||||
|
||||
|
||||
if (m_read_bext(ext))
|
||||
{
|
||||
m_r[7] += (offset ^ dir);
|
||||
|
@ -35,8 +35,8 @@ enum
|
||||
|
||||
#define MCFG_CP1610_BEXT_CALLBACK(_read) \
|
||||
downcast<cp1610_cpu_device *>(device)->set_bext_callback(DEVCB_##_read);
|
||||
|
||||
|
||||
|
||||
|
||||
class cp1610_cpu_device : public cpu_device
|
||||
{
|
||||
public:
|
||||
@ -47,7 +47,7 @@ public:
|
||||
{
|
||||
m_read_bext.set_callback(rd);
|
||||
}
|
||||
|
||||
|
||||
protected:
|
||||
// device-level overrides
|
||||
virtual void device_start();
|
||||
@ -87,7 +87,7 @@ private:
|
||||
int m_mask_interrupts;
|
||||
address_space *m_program;
|
||||
int m_icount;
|
||||
|
||||
|
||||
devcb_read8 m_read_bext;
|
||||
|
||||
void cp1610_illegal();
|
||||
|
@ -217,7 +217,7 @@ public:
|
||||
static void set_bus_frequency(device_t &device, UINT32 bus_frequency) { downcast<ppc_device &>(device).c_bus_frequency = bus_frequency; }
|
||||
|
||||
void ppc_set_dcstore_callback(write32_delegate callback);
|
||||
|
||||
|
||||
void ppcdrc_set_options(UINT32 options);
|
||||
void ppcdrc_add_fastram(offs_t start, offs_t end, UINT8 readonly, void *base);
|
||||
void ppcdrc_add_hotspot(offs_t pc, UINT32 opcode, UINT32 cycles);
|
||||
|
@ -269,7 +269,7 @@ protected:
|
||||
direct_read_data *m_direct;
|
||||
|
||||
private:
|
||||
rsp_cop2 *m_cop2;
|
||||
rsp_cop2 *m_cop2;
|
||||
|
||||
UINT32 *m_dmem32;
|
||||
UINT16 *m_dmem16;
|
||||
|
@ -27,14 +27,14 @@ extern offs_t rsp_dasm_one(char *buffer, offs_t pc, UINT32 op);
|
||||
Helpful Defines
|
||||
***************************************************************************/
|
||||
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
|
||||
#define VREG_B(reg, offset) m_v[(reg)].b[(offset)^1]
|
||||
#define VREG_S(reg, offset) m_v[(reg)].s[(offset)]
|
||||
@ -56,11 +56,11 @@ extern offs_t rsp_dasm_one(char *buffer, offs_t pc, UINT32 op);
|
||||
#define ZERO 3
|
||||
#define CLIP2 4
|
||||
|
||||
#define ACCUM(x) m_accum[x].q
|
||||
#define ACCUM_H(x) (UINT16)m_accum[x].w[3]
|
||||
#define ACCUM_M(x) (UINT16)m_accum[x].w[2]
|
||||
#define ACCUM_L(x) (UINT16)m_accum[x].w[1]
|
||||
#define ACCUM_LL(x) (UINT16)m_accum[x].w[0]
|
||||
#define ACCUM(x) m_accum[x].q
|
||||
#define ACCUM_H(x) (UINT16)m_accum[x].w[3]
|
||||
#define ACCUM_M(x) (UINT16)m_accum[x].w[2]
|
||||
#define ACCUM_L(x) (UINT16)m_accum[x].w[1]
|
||||
#define ACCUM_LL(x) (UINT16)m_accum[x].w[0]
|
||||
|
||||
#define SET_ACCUM_H(v, x) m_accum[x].w[3] = v;
|
||||
#define SET_ACCUM_M(v, x) m_accum[x].w[2] = v;
|
||||
@ -123,9 +123,9 @@ static const int vector_elements_2[16][8] =
|
||||
};
|
||||
|
||||
rsp_cop2::rsp_cop2(rsp_device &rsp, running_machine &machine)
|
||||
: m_rsp(rsp)
|
||||
, m_machine(machine)
|
||||
, m_reciprocal_res(0)
|
||||
: m_rsp(rsp)
|
||||
, m_machine(machine)
|
||||
, m_reciprocal_res(0)
|
||||
, m_reciprocal_high(0)
|
||||
, m_dp_allowed(0)
|
||||
{
|
||||
|
@ -126,36 +126,36 @@ public:
|
||||
virtual void mtc2();
|
||||
virtual void ctc2();
|
||||
|
||||
virtual void handle_cop2(UINT32 op);
|
||||
virtual void handle_cop2(UINT32 op);
|
||||
|
||||
void log_instruction_execution();
|
||||
virtual void cfunc_unimplemented_opcode() { }
|
||||
void log_instruction_execution();
|
||||
virtual void cfunc_unimplemented_opcode() { }
|
||||
|
||||
protected:
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) { return TRUE; }
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc) { return TRUE; }
|
||||
|
||||
UINT16 SATURATE_ACCUM(int accum, int slice, UINT16 negative, UINT16 positive);
|
||||
UINT16 SATURATE_ACCUM1(int accum, UINT16 negative, UINT16 positive);
|
||||
UINT16 SATURATE_ACCUM(int accum, int slice, UINT16 negative, UINT16 positive);
|
||||
UINT16 SATURATE_ACCUM1(int accum, UINT16 negative, UINT16 positive);
|
||||
|
||||
UINT32 m_op;
|
||||
UINT32 m_op;
|
||||
|
||||
rsp_device& m_rsp;
|
||||
rsp_device& m_rsp;
|
||||
running_machine& m_machine;
|
||||
UINT32 m_vres[8]; /* used for temporary vector results */
|
||||
UINT32 m_vres[8]; /* used for temporary vector results */
|
||||
|
||||
VECTOR_REG m_v[32];
|
||||
VECTOR_REG m_v[32];
|
||||
|
||||
ACCUMULATOR_REG m_accum[8];
|
||||
UINT16 m_vflag[6][8];
|
||||
ACCUMULATOR_REG m_accum[8];
|
||||
UINT16 m_vflag[6][8];
|
||||
|
||||
INT32 m_reciprocal_res;
|
||||
UINT32 m_reciprocal_high;
|
||||
INT32 m_dp_allowed;
|
||||
INT32 m_reciprocal_res;
|
||||
UINT32 m_reciprocal_high;
|
||||
INT32 m_dp_allowed;
|
||||
|
||||
private:
|
||||
void handle_lwc2(UINT32 op);
|
||||
void handle_swc2(UINT32 op);
|
||||
void handle_vector_ops(UINT32 op);
|
||||
void handle_lwc2(UINT32 op);
|
||||
void handle_swc2(UINT32 op);
|
||||
void handle_vector_ops(UINT32 op);
|
||||
};
|
||||
|
||||
#endif /* __RSPCP2_H__ */
|
||||
#endif /* __RSPCP2_H__ */
|
||||
|
@ -28,14 +28,14 @@ extern offs_t rsp_dasm_one(char *buffer, offs_t pc, UINT32 op);
|
||||
Helpful Defines
|
||||
***************************************************************************/
|
||||
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
|
||||
#define VREG_B(reg, offset) m_v[(reg)].b[(offset)^1]
|
||||
#define W_VREG_S(reg, offset) m_v[(reg)].s[(offset)]
|
||||
@ -60,16 +60,16 @@ static void cfunc_ctc2(void *param);
|
||||
#define ACCUM_M(x) (UINT16)m_accum[x].w[2]
|
||||
#define ACCUM_L(x) (UINT16)m_accum[x].w[1]
|
||||
#define ACCUM_LL(x) (UINT16)m_accum[x].w[0]
|
||||
#define ACCUM(x) m_accum[x].q
|
||||
#define ACCUM(x) m_accum[x].q
|
||||
|
||||
#define SET_ACCUM_H(v, x) m_accum[x].w[3] = v;
|
||||
#define SET_ACCUM_M(v, x) m_accum[x].w[2] = v;
|
||||
#define SET_ACCUM_L(v, x) m_accum[x].w[1] = v;
|
||||
#define SET_ACCUM_LL(v, x) m_accum[x].w[0] = v;
|
||||
#define SET_ACCUM(v, x) m_accum[x].q = v;
|
||||
#define SET_ACCUM(v, x) m_accum[x].q = v;
|
||||
|
||||
#define GET_VS1(out, i) out = VREG_S(vs1reg, i)
|
||||
#define GET_VS2(out, i) out = VREG_S(vs2reg, VEC_EL_2(el, i))
|
||||
#define GET_VS1(out, i) out = VREG_S(vs1reg, i)
|
||||
#define GET_VS2(out, i) out = VREG_S(vs2reg, VEC_EL_2(el, i))
|
||||
|
||||
#define CARRY_FLAG(x) (m_vflag[CARRY][x & 7] != 0 ? 0xffff : 0)
|
||||
#define COMPARE_FLAG(x) (m_vflag[COMPARE][x & 7] != 0 ? 0xffff : 0)
|
||||
@ -96,10 +96,10 @@ static void cfunc_ctc2(void *param);
|
||||
#define CLEAR_CLIP2_FLAG(x) { m_vflag[CLIP2][x & 7] = 0; }
|
||||
|
||||
#define CACHE_VALUES() \
|
||||
const int op = m_op; \
|
||||
const int vdreg = VDREG; \
|
||||
const int vs1reg = VS1REG; \
|
||||
const int vs2reg = VS2REG; \
|
||||
const int op = m_op; \
|
||||
const int vdreg = VDREG; \
|
||||
const int vs1reg = VS1REG; \
|
||||
const int vs2reg = VS2REG; \
|
||||
const int el = EL;
|
||||
|
||||
#define WRITEBACK_RESULT() { \
|
||||
@ -2105,7 +2105,7 @@ void rsp_cop2_drc::vsaw()
|
||||
W_VREG_S(vdreg, i) = ACCUM_L(i);
|
||||
}
|
||||
break;
|
||||
default: // Unsupported
|
||||
default: // Unsupported
|
||||
{
|
||||
for (int i = 0; i < 8; i++)
|
||||
{
|
||||
@ -3465,8 +3465,8 @@ int rsp_cop2_drc::generate_vector_opcode(drcuml_block *block, rsp_device::compil
|
||||
UML_CALLC(block, cfunc_vmov, this);
|
||||
return TRUE;
|
||||
|
||||
case 0x34: /* VRSQ */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
case 0x34: /* VRSQ */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_vrsq, this);
|
||||
return TRUE;
|
||||
|
||||
@ -3480,8 +3480,8 @@ int rsp_cop2_drc::generate_vector_opcode(drcuml_block *block, rsp_device::compil
|
||||
UML_CALLC(block, cfunc_vrsqh, this);
|
||||
return TRUE;
|
||||
|
||||
case 0x37: /* VNOP */
|
||||
case 0x3F: /* VNULL */
|
||||
case 0x37: /* VNOP */
|
||||
case 0x3F: /* VNULL */
|
||||
return TRUE;
|
||||
|
||||
default:
|
||||
@ -3708,27 +3708,27 @@ int rsp_cop2_drc::generate_cop2(drcuml_block *block, rsp_device::compiler_state
|
||||
case 0x00: /* MFCz */
|
||||
if (RTREG != 0)
|
||||
{
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mfc2, this); // callc mfc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mfc2, this); // callc mfc2
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 0x02: /* CFCz */
|
||||
if (RTREG != 0)
|
||||
{
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_cfc2, this); // callc cfc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_cfc2, this); // callc cfc2
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 0x04: /* MTCz */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mtc2, this); // callc mtc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mtc2, this); // callc mtc2
|
||||
return TRUE;
|
||||
|
||||
case 0x06: /* CTCz */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_ctc2, this); // callc ctc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_ctc2, this); // callc ctc2
|
||||
return TRUE;
|
||||
|
||||
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
||||
@ -3736,4 +3736,4 @@ int rsp_cop2_drc::generate_cop2(drcuml_block *block, rsp_device::compiler_state
|
||||
return generate_vector_opcode(block, compiler, desc);
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
}
|
||||
|
@ -104,7 +104,7 @@ public:
|
||||
virtual void ctc2();
|
||||
|
||||
private:
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
|
||||
};
|
||||
|
||||
#endif /* __RSPCP2D_H__ */
|
||||
#endif /* __RSPCP2D_H__ */
|
||||
|
@ -26,14 +26,14 @@ using namespace uml;
|
||||
Helpful Defines
|
||||
***************************************************************************/
|
||||
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
#define VDREG ((op >> 6) & 0x1f)
|
||||
#define VS1REG ((op >> 11) & 0x1f)
|
||||
#define VS2REG ((op >> 16) & 0x1f)
|
||||
#define EL ((op >> 21) & 0xf)
|
||||
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
#define RSVAL (m_rsp.m_rsp_state->r[RSREG])
|
||||
#define RTVAL (m_rsp.m_rsp_state->r[RTREG])
|
||||
#define RDVAL (m_rsp.m_rsp_state->r[RDREG])
|
||||
|
||||
#define EXTRACT16(reg, value, element) \
|
||||
switch((element) & 7) \
|
||||
@ -2322,9 +2322,8 @@ inline void rsp_cop2_simd::vsaw()
|
||||
m_xv[VDREG] = m_accum_l;
|
||||
break;
|
||||
}
|
||||
default: // Unsupported, writes 0 to VD
|
||||
default: // Unsupported, writes 0 to VD
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -3602,27 +3601,27 @@ int rsp_cop2_simd::generate_cop2(drcuml_block *block, rsp_device::compiler_state
|
||||
case 0x00: /* MFCz */
|
||||
if (RTREG != 0)
|
||||
{
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mfc2, this); // callc mfc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mfc2, this); // callc mfc2
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 0x02: /* CFCz */
|
||||
if (RTREG != 0)
|
||||
{
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_cfc2, this); // callc cfc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_cfc2, this); // callc cfc2
|
||||
}
|
||||
return TRUE;
|
||||
|
||||
case 0x04: /* MTCz */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mtc2, this); // callc mtc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_mtc2, this); // callc mtc2
|
||||
return TRUE;
|
||||
|
||||
case 0x06: /* CTCz */
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_ctc2, this); // callc ctc2
|
||||
UML_MOV(block, mem(&m_op), desc->opptr.l[0]); // mov [arg0],desc->opptr.l
|
||||
UML_CALLC(block, cfunc_ctc2, this); // callc ctc2
|
||||
return TRUE;
|
||||
|
||||
case 0x10: case 0x11: case 0x12: case 0x13: case 0x14: case 0x15: case 0x16: case 0x17:
|
||||
|
@ -111,48 +111,48 @@ public:
|
||||
#endif
|
||||
|
||||
private:
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
|
||||
virtual int generate_vector_opcode(drcuml_block *block, rsp_device::compiler_state *compiler, const opcode_desc *desc);
|
||||
|
||||
UINT16 ACCUM_H(int x);
|
||||
UINT16 ACCUM_M(int x);
|
||||
UINT16 ACCUM_L(int x);
|
||||
UINT16 ACCUM_LL(int x);
|
||||
UINT16 CARRY_FLAG(const int x);
|
||||
UINT16 COMPARE_FLAG(const int x);
|
||||
UINT16 CLIP1_FLAG(const int x);
|
||||
UINT16 ZERO_FLAG(const int x);
|
||||
UINT16 CLIP2_FLAG(const int x);
|
||||
UINT16 SATURATE_ACCUM(int accum, int slice, UINT16 negative, UINT16 positive);
|
||||
UINT16 ACCUM_H(int x);
|
||||
UINT16 ACCUM_M(int x);
|
||||
UINT16 ACCUM_L(int x);
|
||||
UINT16 ACCUM_LL(int x);
|
||||
UINT16 CARRY_FLAG(const int x);
|
||||
UINT16 COMPARE_FLAG(const int x);
|
||||
UINT16 CLIP1_FLAG(const int x);
|
||||
UINT16 ZERO_FLAG(const int x);
|
||||
UINT16 CLIP2_FLAG(const int x);
|
||||
UINT16 SATURATE_ACCUM(int accum, int slice, UINT16 negative, UINT16 positive);
|
||||
|
||||
__m128i m_accum_h;
|
||||
__m128i m_accum_m;
|
||||
__m128i m_accum_l;
|
||||
__m128i m_accum_ll;
|
||||
__m128i m_accum_h;
|
||||
__m128i m_accum_m;
|
||||
__m128i m_accum_l;
|
||||
__m128i m_accum_ll;
|
||||
|
||||
// Mirror of v[] for now, to be used in parallel as
|
||||
// more vector ops are transitioned over
|
||||
__m128i m_xv[32];
|
||||
__m128i m_xvflag[6];
|
||||
__m128i m_xv[32];
|
||||
__m128i m_xvflag[6];
|
||||
|
||||
#if SIMUL_SIMD
|
||||
UINT32 m_old_r[35];
|
||||
UINT8 m_old_dmem[4096];
|
||||
UINT32 m_old_r[35];
|
||||
UINT8 m_old_dmem[4096];
|
||||
|
||||
UINT32 m_scalar_r[35];
|
||||
UINT8 m_scalar_dmem[4096];
|
||||
UINT32 m_scalar_r[35];
|
||||
UINT8 m_scalar_dmem[4096];
|
||||
|
||||
INT32 m_old_reciprocal_res;
|
||||
UINT32 m_old_reciprocal_high;
|
||||
INT32 m_old_dp_allowed;
|
||||
INT32 m_old_reciprocal_res;
|
||||
UINT32 m_old_reciprocal_high;
|
||||
INT32 m_old_dp_allowed;
|
||||
|
||||
INT32 m_scalar_reciprocal_res;
|
||||
UINT32 m_scalar_reciprocal_high;
|
||||
INT32 m_scalar_dp_allowed;
|
||||
INT32 m_scalar_reciprocal_res;
|
||||
UINT32 m_scalar_reciprocal_high;
|
||||
INT32 m_scalar_dp_allowed;
|
||||
|
||||
INT32 m_simd_reciprocal_res;
|
||||
UINT32 m_simd_reciprocal_high;
|
||||
INT32 m_simd_dp_allowed;
|
||||
INT32 m_simd_reciprocal_res;
|
||||
UINT32 m_simd_reciprocal_high;
|
||||
INT32 m_simd_dp_allowed;
|
||||
#endif
|
||||
};
|
||||
|
||||
#endif /* __RSPCP2S_H__ */
|
||||
#endif /* __RSPCP2S_H__ */
|
||||
|
@ -786,16 +786,16 @@ void rsp_device::generate_branch(drcuml_block *block, compiler_state *compiler,
|
||||
/* update the cycles and jump through the hash table to the target */
|
||||
if (desc->targetpc != BRANCH_TARGET_DYNAMIC)
|
||||
{
|
||||
generate_update_cycles(block, &compiler_temp, desc->targetpc, TRUE); // <subtract cycles>
|
||||
generate_update_cycles(block, &compiler_temp, desc->targetpc, TRUE); // <subtract cycles>
|
||||
if (desc->flags & OPFLAG_INTRABLOCK_BRANCH)
|
||||
UML_JMP(block, desc->targetpc | 0x80000000); // jmp desc->targetpc
|
||||
UML_JMP(block, desc->targetpc | 0x80000000); // jmp desc->targetpc
|
||||
else
|
||||
UML_HASHJMP(block, 0, desc->targetpc, *m_nocode); // hashjmp <mode>,desc->targetpc,nocode
|
||||
UML_HASHJMP(block, 0, desc->targetpc, *m_nocode); // hashjmp <mode>,desc->targetpc,nocode
|
||||
}
|
||||
else
|
||||
{
|
||||
generate_update_cycles(block, &compiler_temp, mem(&m_rsp_state->jmpdest), TRUE); // <subtract cycles>
|
||||
UML_HASHJMP(block, 0, mem(&m_rsp_state->jmpdest), *m_nocode); // hashjmp <mode>,<rsreg>,nocode
|
||||
generate_update_cycles(block, &compiler_temp, mem(&m_rsp_state->jmpdest), TRUE); // <subtract cycles>
|
||||
UML_HASHJMP(block, 0, mem(&m_rsp_state->jmpdest), *m_nocode); // hashjmp <mode>,<rsreg>,nocode
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1345,17 +1345,17 @@ void upd7810_device::handle_timers(int cycles)
|
||||
IRR |= INTFE1;
|
||||
/* Conditions When ECNT Causes a CO0 Output Change */
|
||||
if (((0x00 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 */
|
||||
/* ((0x10 == (ETMM & 0x30)) prohibited */
|
||||
((0x20 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 or at falling CI input */
|
||||
((0x30 == (ETMM & 0x30)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO0 if ECNT == ETM0 or ECNT == ETM1 */
|
||||
/* ((0x10 == (ETMM & 0x30)) prohibited */
|
||||
((0x20 == (ETMM & 0x30)) && (ETM0 == ECNT)) || /* set CO0 if ECNT == ETM0 or at falling CI input */
|
||||
((0x30 == (ETMM & 0x30)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO0 if ECNT == ETM0 or ECNT == ETM1 */
|
||||
{
|
||||
upd7810_co0_output_change();
|
||||
}
|
||||
/* Conditions When ECNT Causes a CO1 Output Change */
|
||||
if (((0x00 == (ETMM & 0xc0)) && (ETM1 == ECNT)) || /* set CO1 if ECNT == ETM1 */
|
||||
/* ((0x40 == (ETMM & 0xc0)) prohibited */
|
||||
((0x80 == (ETMM & 0xc0)) && (ETM1 == ECNT)) || /* set CO1 if ECNT == ETM1 or at falling CI input */
|
||||
((0xc0 == (ETMM & 0xc0)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO1 if ECNT == ETM0 or ECNT == ETM1 */
|
||||
/* ((0x40 == (ETMM & 0xc0)) prohibited */
|
||||
((0x80 == (ETMM & 0xc0)) && (ETM1 == ECNT)) || /* set CO1 if ECNT == ETM1 or at falling CI input */
|
||||
((0xc0 == (ETMM & 0xc0)) && (ETM0 == ECNT || ETM1 == ECNT))) /* latch CO1 if ECNT == ETM0 or ECNT == ETM1 */
|
||||
{
|
||||
upd7810_co1_output_change();
|
||||
}
|
||||
@ -1816,7 +1816,7 @@ void upd7810_device::device_reset()
|
||||
m_itf = 0;
|
||||
m_nmi = 0;
|
||||
m_int1 = 0;
|
||||
m_int2 = 1; /* physical (inverted) INT2 line state */
|
||||
m_int2 = 1; /* physical (inverted) INT2 line state */
|
||||
|
||||
m_txs = 0;
|
||||
m_rxs = 0;
|
||||
|
@ -86,8 +86,8 @@ ADDRESS_MAP_END
|
||||
|
||||
i6300esb_lpc_device::i6300esb_lpc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: pci_device(mconfig, I6300ESB_LPC, "i6300ESB southbridge ISA/LPC bridge", tag, owner, clock, "i6300esb_lpc", __FILE__),
|
||||
acpi(*this, "acpi"),
|
||||
rtc (*this, "rtc")
|
||||
acpi(*this, "acpi"),
|
||||
rtc (*this, "rtc")
|
||||
{
|
||||
}
|
||||
|
||||
@ -661,7 +661,7 @@ void i6300esb_lpc_device::map_bios(address_space *memory_space, UINT32 start, UI
|
||||
{
|
||||
// Ignore idsel, a16 inversion for now
|
||||
UINT32 mask = m_region->bytes() - 1;
|
||||
memory_space->install_rom(start, end, m_region->base() + (start & mask));
|
||||
memory_space->install_rom(start, end, m_region->base() + (start & mask));
|
||||
}
|
||||
|
||||
void i6300esb_lpc_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
@ -750,5 +750,3 @@ void i6300esb_lpc_device::map_extra(UINT64 memory_window_start, UINT64 memory_wi
|
||||
if(rtc_conf & 4)
|
||||
rtc->map_extdevice(memory_window_start, memory_window_end, 0, memory_space, io_window_start, io_window_end, 0, io_space);
|
||||
}
|
||||
|
||||
|
||||
|
@ -19,7 +19,7 @@ public:
|
||||
|
||||
virtual void reset_all_mappings();
|
||||
virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
virtual DECLARE_ADDRESS_MAP(config_map, 32);
|
||||
|
||||
|
@ -5,7 +5,7 @@
|
||||
|
||||
#include "pci.h"
|
||||
|
||||
#define MCFG_I82875P_HOST_ADD(_tag, _subdevice_id, _cpu_tag, _ram_size) \
|
||||
#define MCFG_I82875P_HOST_ADD(_tag, _subdevice_id, _cpu_tag, _ram_size) \
|
||||
MCFG_PCI_HOST_ADD(_tag, I82875P_HOST, 0x80862578, 0x02, _subdevice_id) \
|
||||
downcast<i82875p_host_device *>(device)->set_cpu_tag(_cpu_tag); \
|
||||
downcast<i82875p_host_device *>(device)->set_ram_size(_ram_size);
|
||||
@ -21,7 +21,7 @@ public:
|
||||
void set_ram_size(int ram_size);
|
||||
|
||||
virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
virtual DECLARE_ADDRESS_MAP(config_map, 32);
|
||||
|
||||
|
@ -379,7 +379,7 @@ intel_28f016s5_device::intel_28f016s5_device(const machine_config &mconfig, cons
|
||||
|
||||
fujitsu_29f160t_device::fujitsu_29f160t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: intelfsh8_device(mconfig, FUJITSU_29F160T, "Fujitsu 29F160 Flash", tag, owner, clock, FLASH_FUJITSU_29F160T, "fujitsu_29f160t", __FILE__) { }
|
||||
|
||||
|
||||
fujitsu_29f016a_device::fujitsu_29f016a_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: intelfsh8_device(mconfig, FUJITSU_29F016A, "Fujitsu 29F016A Flash", tag, owner, clock, FLASH_FUJITSU_29F016A, "fujitsu_29f016a", __FILE__) { }
|
||||
|
||||
@ -400,10 +400,10 @@ amd_29f040_device::amd_29f040_device(const machine_config &mconfig, const char *
|
||||
|
||||
amd_29f080_device::amd_29f080_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F080 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f080", __FILE__) { }
|
||||
|
||||
|
||||
amd_29f400t_device::amd_29f400t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F400 Flash", tag, owner, clock, FLASH_AMD_29F400T, "amd_29f400t", __FILE__) { }
|
||||
|
||||
|
||||
amd_29f800t_device::amd_29f800t_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: intelfsh8_device(mconfig, AMD_29F080, "AMD 29F800 Flash", tag, owner, clock, FLASH_AMD_29F080, "amd_29f800t", __FILE__) { }
|
||||
|
||||
|
@ -39,7 +39,7 @@
|
||||
|
||||
#define MCFG_FUJITSU_29F160T_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, FUJITSU_29F160T, 0)
|
||||
|
||||
|
||||
#define MCFG_FUJITSU_29F016A_ADD(_tag) \
|
||||
MCFG_DEVICE_ADD(_tag, FUJITSU_29F016A, 0)
|
||||
|
||||
@ -161,7 +161,7 @@ protected:
|
||||
UINT8 m_maker_id;
|
||||
bool m_sector_is_4k;
|
||||
bool m_sector_is_16k;
|
||||
bool m_top_boot_sector;
|
||||
bool m_top_boot_sector;
|
||||
UINT8 m_page_size;
|
||||
|
||||
// internal state
|
||||
|
@ -40,7 +40,7 @@ lpc_acpi_device::lpc_acpi_device(const machine_config &mconfig, const char *tag,
|
||||
}
|
||||
|
||||
void lpc_acpi_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
io_space->install_device(io_offset, io_window_end, *this, &lpc_acpi_device::map);
|
||||
}
|
||||
|
@ -18,13 +18,13 @@ lpc_rtc_device::lpc_rtc_device(const machine_config &mconfig, const char *tag, d
|
||||
}
|
||||
|
||||
void lpc_rtc_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
io_space->install_device(io_offset, io_window_end, *this, &lpc_rtc_device::map);
|
||||
}
|
||||
|
||||
void lpc_rtc_device::map_extdevice(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
io_space->install_device(io_offset, io_window_end, *this, &lpc_rtc_device::extmap);
|
||||
}
|
||||
|
@ -14,7 +14,7 @@ public:
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
virtual void map_extdevice(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
DECLARE_READ8_MEMBER( index_r);
|
||||
DECLARE_WRITE8_MEMBER( index_w);
|
||||
|
@ -4,4 +4,3 @@ lpc_device::lpc_device(const machine_config &mconfig, device_type type, const ch
|
||||
device_t(mconfig, type, name, tag, owner, clock, shortname, source)
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -12,4 +12,3 @@ public:
|
||||
};
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -51,7 +51,7 @@ const rom_entry *omti5100_device::device_rom_region() const
|
||||
//-------------------------------------------------
|
||||
|
||||
static MACHINE_CONFIG_FRAGMENT( omti5100_z8 )
|
||||
// MCFG_CPU_ADD("z8", Z8681, XTAL_20MHz / 3 /* ??? */)
|
||||
// MCFG_CPU_ADD("z8", Z8681, XTAL_20MHz / 3 /* ??? */)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
machine_config_constructor omti5100_device::device_mconfig_additions() const
|
||||
@ -70,7 +70,7 @@ machine_config_constructor omti5100_device::device_mconfig_additions() const
|
||||
|
||||
omti5100_device::omti5100_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
|
||||
device_t(mconfig, OMTI5100, "OMTI 5100 SCSI/SASI Controller", tag, owner, clock, "omti5100", __FILE__),
|
||||
// m_cpu(*this, "z8"),
|
||||
// m_cpu(*this, "z8"),
|
||||
m_bsy_w(*this),
|
||||
m_cd_w(*this),
|
||||
m_io_w(*this),
|
||||
|
@ -88,7 +88,7 @@ protected:
|
||||
virtual void device_reset();
|
||||
|
||||
private:
|
||||
// required_device<z8681_device> m_cpu;
|
||||
// required_device<z8681_device> m_cpu;
|
||||
|
||||
devcb_write_line m_bsy_w;
|
||||
devcb_write_line m_cd_w;
|
||||
|
@ -226,11 +226,11 @@ void pci_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end
|
||||
}
|
||||
|
||||
map_extra(memory_window_start, memory_window_end, memory_offset, memory_space,
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
}
|
||||
|
||||
void pci_device::map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
}
|
||||
|
||||
@ -291,15 +291,15 @@ void agp_device::device_reset()
|
||||
|
||||
pci_bridge_device::pci_bridge_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
|
||||
: pci_device(mconfig, PCI_BRIDGE, "PCI-PCI Bridge", tag, owner, clock, "pci_bridge", __FILE__),
|
||||
device_memory_interface(mconfig, *this),
|
||||
configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
|
||||
device_memory_interface(mconfig, *this),
|
||||
configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
|
||||
{
|
||||
}
|
||||
|
||||
pci_bridge_device::pci_bridge_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
|
||||
: pci_device(mconfig, type, name, tag, owner, clock, shortname, source),
|
||||
device_memory_interface(mconfig, *this),
|
||||
configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
|
||||
device_memory_interface(mconfig, *this),
|
||||
configure_space_config("configuration_space", ENDIANNESS_LITTLE, 32, 20)
|
||||
{
|
||||
}
|
||||
|
||||
@ -373,15 +373,15 @@ void pci_bridge_device::reset_all_mappings()
|
||||
|
||||
|
||||
void pci_bridge_device::map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space)
|
||||
{
|
||||
for(int i = all_devices.count()-1; i>=0; i--)
|
||||
if(all_devices[i] != this)
|
||||
all_devices[i]->map_device(memory_window_start, memory_window_end, memory_offset, memory_space,
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
|
||||
map_extra(memory_window_start, memory_window_end, memory_offset, memory_space,
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
}
|
||||
|
||||
|
||||
@ -458,7 +458,7 @@ void pci_host_device::regenerate_mapping()
|
||||
io_space->unmap_readwrite(io_window_start, io_window_end);
|
||||
|
||||
map_device(memory_window_start, memory_window_end, memory_offset, memory_space,
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
io_window_start, io_window_end, io_offset, io_space);
|
||||
}
|
||||
|
||||
READ32_MEMBER(pci_host_device::config_address_r)
|
||||
@ -492,7 +492,7 @@ UINT32 pci_host_device::config_read(UINT8 bus, UINT8 device, UINT16 reg, UINT32
|
||||
}
|
||||
} else
|
||||
abort();
|
||||
|
||||
|
||||
return data;
|
||||
}
|
||||
|
||||
|
@ -37,7 +37,7 @@ public:
|
||||
virtual void map_device(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
virtual void map_extra(UINT64 memory_window_start, UINT64 memory_window_end, UINT64 memory_offset, address_space *memory_space,
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
UINT64 io_window_start, UINT64 io_window_end, UINT64 io_offset, address_space *io_space);
|
||||
|
||||
void map_config(UINT8 device, address_space *config_space);
|
||||
|
||||
|
@ -59,7 +59,7 @@ void pla_device::device_start()
|
||||
m_cache.resize(csize);
|
||||
for (int i = 0; i < csize; i++)
|
||||
m_cache[i] = read(i);
|
||||
|
||||
|
||||
m_cache_size = csize;
|
||||
}
|
||||
|
||||
@ -72,19 +72,19 @@ void pla_device::parse_fusemap()
|
||||
{
|
||||
jed_data jed;
|
||||
int result = JEDERR_NONE;
|
||||
|
||||
|
||||
// read pla file
|
||||
switch (m_format)
|
||||
{
|
||||
case PLA_FMT_JEDBIN:
|
||||
result = jedbin_parse(region()->base(), region()->bytes(), &jed);
|
||||
break;
|
||||
|
||||
|
||||
case PLA_FMT_BERKELEY:
|
||||
result = pla_parse(region()->base(), region()->bytes(), &jed);
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
if (result != JEDERR_NONE)
|
||||
{
|
||||
for (int p = 0; p < m_terms; p++)
|
||||
@ -92,11 +92,11 @@ void pla_device::parse_fusemap()
|
||||
m_term[p].and_mask = 0;
|
||||
m_term[p].or_mask = 0;
|
||||
}
|
||||
|
||||
|
||||
logerror("%s PLA parse error %d!\n", tag(), result);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
// parse it
|
||||
UINT32 fusenum = 0;
|
||||
|
||||
@ -148,7 +148,7 @@ UINT32 pla_device::read(UINT32 input)
|
||||
// try the cache first
|
||||
if (input < m_cache_size)
|
||||
return m_cache[input];
|
||||
|
||||
|
||||
for (int i = 0; i < CACHE2_SIZE; ++i)
|
||||
{
|
||||
UINT64 cache2_entry = m_cache2[i];
|
||||
|
@ -99,7 +99,7 @@ public:
|
||||
static void set_num_terms(device_t &device, UINT32 t) { downcast<pla_device &>(device).m_terms = t; }
|
||||
static void set_inputmask(device_t &device, UINT32 mask) { downcast<pla_device &>(device).m_input_mask = mask; } // UINT32!
|
||||
static void set_format(device_t &device, int format) { downcast<pla_device &>(device).m_format = format; }
|
||||
|
||||
|
||||
UINT32 inputs() { return m_inputs; }
|
||||
UINT32 outputs() { return m_outputs; }
|
||||
|
||||
@ -113,7 +113,7 @@ private:
|
||||
void parse_fusemap();
|
||||
|
||||
int m_format;
|
||||
|
||||
|
||||
UINT32 m_inputs;
|
||||
UINT32 m_outputs;
|
||||
UINT32 m_terms;
|
||||
|
@ -3435,7 +3435,7 @@ UINT16 *address_table::subtable_open(offs_t l1index)
|
||||
for (int i=0; i<size; i++)
|
||||
subptr[i] = subentry;
|
||||
m_table[l1index] = newentry;
|
||||
UINT32 subkey = subentry + (subentry << 8) + (subentry << 16) + (subentry << 24);
|
||||
UINT32 subkey = subentry + (subentry << 8) + (subentry << 16) + (subentry << 24);
|
||||
m_subtable[newentry - SUBTABLE_BASE].m_checksum = subkey * (((1 << level2_bits())/4));
|
||||
subentry = newentry;
|
||||
}
|
||||
|
@ -649,7 +649,7 @@ public:
|
||||
m_endianness(endianness),
|
||||
m_bitwidth(width),
|
||||
m_bytewidth(width <= 8 ? 1 : width <= 16 ? 2 : width <= 32 ? 4 : 8)
|
||||
{ }
|
||||
{ }
|
||||
|
||||
// getters
|
||||
memory_share *next() const { return m_next; }
|
||||
|
@ -537,7 +537,7 @@ static void region_post_process(romload_private *romdata, const char *rgntag, bo
|
||||
return;
|
||||
|
||||
LOG(("+ datawidth=%dbit endian=%s\n", region->bitwidth(),
|
||||
region->endianness() == ENDIANNESS_LITTLE ? "little" : "big"));
|
||||
region->endianness() == ENDIANNESS_LITTLE ? "little" : "big"));
|
||||
|
||||
/* if the region is inverted, do that now */
|
||||
if (invert)
|
||||
|
@ -116,7 +116,7 @@ public:
|
||||
dev.m_vco_voltage = volt;
|
||||
dev.m_vco_cap = cap;
|
||||
dev.m_vco_res = res;
|
||||
}
|
||||
}
|
||||
static void set_pitch_voltage(device_t &device, double volt) { downcast<sn76477_device &>(device).m_pitch_voltage = volt; }
|
||||
static void set_slf_params(device_t &device, double cap, double res)
|
||||
{
|
||||
@ -137,16 +137,16 @@ public:
|
||||
dev.m_mixer_a = a;
|
||||
dev.m_mixer_b = b;
|
||||
dev.m_mixer_c = c;
|
||||
}
|
||||
}
|
||||
static void set_envelope_params(device_t &device, UINT32 env1, UINT32 env2)
|
||||
{
|
||||
sn76477_device &dev = downcast<sn76477_device &>(device);
|
||||
dev.m_envelope_1 = env1;
|
||||
dev.m_envelope_2 = env2;
|
||||
}
|
||||
}
|
||||
static void set_enable(device_t &device, UINT32 enable) { downcast<sn76477_device &>(device).m_enable = enable; }
|
||||
|
||||
|
||||
|
||||
|
||||
/* these functions take 0 or 1 as a logic input */
|
||||
WRITE_LINE_MEMBER( enable_w ); /* active LO, 0 = enabled, 1 = disabled */
|
||||
WRITE_LINE_MEMBER( mixer_a_w );
|
||||
@ -257,7 +257,7 @@ private:
|
||||
UINT32 m_mixer_c;
|
||||
UINT32 m_envelope_1;
|
||||
UINT32 m_envelope_2;
|
||||
|
||||
|
||||
/* others */
|
||||
sound_stream *m_channel; /* returned by stream_create() */
|
||||
int m_our_sample_rate; /* from machine.sample_rate() */
|
||||
|
@ -62,7 +62,7 @@ public:
|
||||
sega315_5124_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, UINT8 cram_size, UINT8 palette_offset, bool supports_224_240, const char *shortname, const char *source, int xscroll_hpos = X_SCROLL_HPOS_5124);
|
||||
|
||||
static void set_signal_type(device_t &device, bool is_pal) { downcast<sega315_5124_device &>(device).m_is_pal = is_pal; }
|
||||
|
||||
|
||||
|
||||
|
||||
template<class _Object> static devcb_base &set_int_callback(device_t &device, _Object object) { return downcast<sega315_5124_device &>(device).m_int_cb.set_callback(object); }
|
||||
|
@ -2503,7 +2503,7 @@ void sega315_5313_device::render_videobuffer_to_screenbuffer(int scanline)
|
||||
{
|
||||
UINT16 *lineptr;
|
||||
|
||||
|
||||
|
||||
|
||||
if (!m_use_alt_timing)
|
||||
{
|
||||
|
@ -361,11 +361,10 @@ void snes_ppu_device::device_start()
|
||||
|
||||
void snes_ppu_device::device_reset()
|
||||
{
|
||||
|
||||
#if SNES_LAYER_DEBUG
|
||||
memset(&m_debug_options, 0, sizeof(m_debug_options));
|
||||
#endif
|
||||
|
||||
|
||||
/* Inititialize registers/variables */
|
||||
m_update_windows = 1;
|
||||
m_beam.latch_vert = 0;
|
||||
@ -376,32 +375,32 @@ void snes_ppu_device::device_reset()
|
||||
m_mode = 0;
|
||||
m_ppu1_version = 1; // 5C77 chip version number, read by STAT77, only '1' is known
|
||||
m_ppu2_version = 3; // 5C78 chip version number, read by STAT78, only '2' & '3' encountered so far.
|
||||
|
||||
|
||||
m_cgram_address = 0;
|
||||
m_read_ophct = 0;
|
||||
m_read_opvct = 0;
|
||||
|
||||
m_vmadd = 0;
|
||||
|
||||
|
||||
PPU_REG(VMAIN) = 0x80;
|
||||
// what about other regs?
|
||||
|
||||
|
||||
/* Inititialize mosaic table */
|
||||
for (int j = 0; j < 16; j++)
|
||||
{
|
||||
for (int i = 0; i < 4096; i++)
|
||||
m_mosaic_table[j][i] = (i / (j + 1)) * (j + 1);
|
||||
}
|
||||
|
||||
|
||||
/* Init VRAM */
|
||||
memset(m_vram, 0, SNES_VRAM_SIZE);
|
||||
|
||||
|
||||
/* Init Palette RAM */
|
||||
memset((UINT8 *)m_cgram, 0, SNES_CGRAM_SIZE);
|
||||
|
||||
|
||||
/* Init oam RAM */
|
||||
memset((UINT8 *)m_oam_ram, 0xff, SNES_OAM_SIZE);
|
||||
|
||||
|
||||
m_stat78 = 0;
|
||||
|
||||
// other initializations to 0
|
||||
@ -419,7 +418,7 @@ void snes_ppu_device::device_reset()
|
||||
memset(m_scanlines[i].layer, 0, SNES_SCR_WIDTH);
|
||||
memset(m_scanlines[i].blend_exception, 0, SNES_SCR_WIDTH);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < 6; i++)
|
||||
{
|
||||
m_layer[i].window1_enabled = 0;
|
||||
@ -439,10 +438,10 @@ void snes_ppu_device::device_reset()
|
||||
m_layer[i].sub_bg_enabled = 0;
|
||||
m_layer[i].hoffs = 0;
|
||||
m_layer[i].voffs = 0;
|
||||
|
||||
|
||||
memset(m_clipmasks[i], 0, SNES_SCR_WIDTH);
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_oam_spritelist); i++)
|
||||
{
|
||||
m_oam_spritelist[i].tile = 0;
|
||||
@ -456,7 +455,7 @@ void snes_ppu_device::device_reset()
|
||||
m_oam_spritelist[i].height = 0;
|
||||
m_oam_spritelist[i].width = 0;
|
||||
}
|
||||
|
||||
|
||||
for (int i = 0; i < ARRAY_LENGTH(m_oam_tilelist); i++)
|
||||
{
|
||||
m_oam_tilelist[i].x = 0;
|
||||
|
@ -1307,14 +1307,14 @@ void floppy_image_format_t::fixup_crcs(UINT32 *buffer, gen_crc_info *crcs)
|
||||
for(int i=0; i != MAX_CRC_COUNT; i++)
|
||||
if(crcs[i].write != -1) {
|
||||
switch(crcs[i].type) {
|
||||
case CRC_AMIGA: fixup_crc_amiga(buffer, crcs+i); break;
|
||||
case CRC_CBM: fixup_crc_cbm(buffer, crcs+i); break;
|
||||
case CRC_CCITT: fixup_crc_ccitt(buffer, crcs+i); break;
|
||||
case CRC_CCITT_FM: fixup_crc_ccitt_fm(buffer, crcs+i); break;
|
||||
case CRC_MACHEAD: fixup_crc_machead(buffer, crcs+i); break;
|
||||
case CRC_FCS: fixup_crc_fcs(buffer, crcs+i); break;
|
||||
case CRC_VICTOR_HDR: fixup_crc_victor_header(buffer, crcs+i); break;
|
||||
case CRC_VICTOR_DATA: fixup_crc_victor_data(buffer, crcs+i); break;
|
||||
case CRC_AMIGA: fixup_crc_amiga(buffer, crcs+i); break;
|
||||
case CRC_CBM: fixup_crc_cbm(buffer, crcs+i); break;
|
||||
case CRC_CCITT: fixup_crc_ccitt(buffer, crcs+i); break;
|
||||
case CRC_CCITT_FM: fixup_crc_ccitt_fm(buffer, crcs+i); break;
|
||||
case CRC_MACHEAD: fixup_crc_machead(buffer, crcs+i); break;
|
||||
case CRC_FCS: fixup_crc_fcs(buffer, crcs+i); break;
|
||||
case CRC_VICTOR_HDR: fixup_crc_victor_header(buffer, crcs+i); break;
|
||||
case CRC_VICTOR_DATA: fixup_crc_victor_data(buffer, crcs+i); break;
|
||||
}
|
||||
if(crcs[i].fixup_mfm_clock) {
|
||||
int offset = crcs[i].write + crc_cells_size(crcs[i].type);
|
||||
|
@ -348,8 +348,8 @@ protected:
|
||||
CRC_CBM_START, //!< Start a CBM checksum calculation (xor of original data values, gcr5-encoded), p1 = crc id
|
||||
CRC_MACHEAD_START, //!< Start of the mac gcr6 sector header checksum calculation (xor of pre-encode 6-bits values, gcr6-encoded)
|
||||
CRC_FCS_START, //!< Start a Compucolor File Control System checksum calculation, p1 = crc id
|
||||
CRC_VICTOR_HDR_START, //!< Start a Victor 9000 checksum calculation, p1 = crc id
|
||||
CRC_VICTOR_DATA_START, //!< Start a Victor 9000 checksum calculation, p1 = crc id
|
||||
CRC_VICTOR_HDR_START, //!< Start a Victor 9000 checksum calculation, p1 = crc id
|
||||
CRC_VICTOR_DATA_START, //!< Start a Victor 9000 checksum calculation, p1 = crc id
|
||||
CRC_END, //!< End the checksum, p1 = crc id
|
||||
CRC, //!< Write a checksum in the apporpriate format, p1 = crc id
|
||||
|
||||
|
@ -10,7 +10,7 @@ Tape formats:
|
||||
TAP: This is a series of 0x30 and 0x31 bytes, representing binary
|
||||
0 and 1. It includes the header and leaders.
|
||||
|
||||
CAS: Files in this format consist of a 16 bytes header (SPC-1000.CASfmt )
|
||||
CAS: Files in this format consist of a 16 bytes header (SPC-1000.CASfmt )
|
||||
followed by cassette bits packed together (each byte of a .cas file
|
||||
are 8 bits, most significant bit first)
|
||||
|
||||
@ -74,12 +74,12 @@ static int spc1000_handle_tap(INT16 *buffer, const UINT8 *bytes)
|
||||
static int spc1000_handle_cas(INT16 *buffer, const UINT8 *bytes)
|
||||
{
|
||||
UINT32 sample_count = 0;
|
||||
|
||||
|
||||
/* data (skipping first 16 bytes, which is CAS header) */
|
||||
for (UINT32 i = 0x10; i < spc1000_image_size; i++)
|
||||
for (int j = 0; j < 8; j++)
|
||||
sample_count += spc1000_output_bit(buffer, sample_count, (bytes[i] >> (7 - j)) & 1);
|
||||
|
||||
|
||||
return sample_count;
|
||||
}
|
||||
|
||||
@ -112,7 +112,7 @@ static int spc1000_tap_calculate_size_in_samples(const UINT8 *bytes, int length)
|
||||
static int spc1000_cas_calculate_size_in_samples(const UINT8 *bytes, int length)
|
||||
{
|
||||
spc1000_image_size = length;
|
||||
|
||||
|
||||
return spc1000_handle_cas(NULL, bytes);
|
||||
}
|
||||
|
||||
|
@ -2,42 +2,42 @@
|
||||
// copyright-holders:Curt Coder
|
||||
/*********************************************************************
|
||||
|
||||
formats/victor9k_dsk.c
|
||||
formats/victor9k_dsk.c
|
||||
|
||||
Victor 9000 sector disk image format
|
||||
Victor 9000 sector disk image format
|
||||
|
||||
*********************************************************************/
|
||||
|
||||
/*
|
||||
|
||||
Sector format
|
||||
-------------
|
||||
Sector format
|
||||
-------------
|
||||
|
||||
Header sync
|
||||
Sector header (header ID, track ID, sector ID, and checksum)
|
||||
Gap 1
|
||||
Data Sync
|
||||
Data field (data sync, data ID, data bytes, and checksum)
|
||||
Gap 2
|
||||
Header sync
|
||||
Sector header (header ID, track ID, sector ID, and checksum)
|
||||
Gap 1
|
||||
Data Sync
|
||||
Data field (data sync, data ID, data bytes, and checksum)
|
||||
Gap 2
|
||||
|
||||
Track format
|
||||
------------
|
||||
Track format
|
||||
------------
|
||||
|
||||
ZONE LOWER HEAD UPPER HEAD SECTORS ROTATIONAL RPM
|
||||
NUMBER TRACKS TRACKS PER TRACK PERIOD (MS)
|
||||
ZONE LOWER HEAD UPPER HEAD SECTORS ROTATIONAL RPM
|
||||
NUMBER TRACKS TRACKS PER TRACK PERIOD (MS)
|
||||
|
||||
0 0-3 unused 19 237.9 252
|
||||
1 4-15 0-7 18 224.5 267
|
||||
2 16-26 8-18 17 212.2 283
|
||||
3 27-37 19-29 16 199.9 300
|
||||
4 38-48 30-40 15 187.6 320
|
||||
5 49-59 41-51 14 175.3 342
|
||||
6 60-70 52-62 13 163.0 368
|
||||
7 71-79 63-74 12 149.6 401
|
||||
8 unused 75-79 11 144.0 417
|
||||
0 0-3 unused 19 237.9 252
|
||||
1 4-15 0-7 18 224.5 267
|
||||
2 16-26 8-18 17 212.2 283
|
||||
3 27-37 19-29 16 199.9 300
|
||||
4 38-48 30-40 15 187.6 320
|
||||
5 49-59 41-51 14 175.3 342
|
||||
6 60-70 52-62 13 163.0 368
|
||||
7 71-79 63-74 12 149.6 401
|
||||
8 unused 75-79 11 144.0 417
|
||||
|
||||
Interleave factor 3
|
||||
cell 2.13 usec
|
||||
Interleave factor 3
|
||||
cell 2.13 usec
|
||||
|
||||
*/
|
||||
|
||||
|
@ -64,7 +64,7 @@ static bool iscrlf(char c)
|
||||
static UINT32 suck_number(const UINT8 **src, const UINT8 *srcend)
|
||||
{
|
||||
UINT32 value = 0;
|
||||
|
||||
|
||||
// find first digit
|
||||
while (*src < srcend && !iscrlf(**src) && !isdigit(**src))
|
||||
(*src)++;
|
||||
@ -94,7 +94,7 @@ static bool process_terms(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
UINT32 curinput = 0;
|
||||
UINT32 curoutput = 0;
|
||||
bool outputs = false;
|
||||
|
||||
|
||||
// symbols for 0, 1, dont_care, no_meaning
|
||||
// PLA format documentation also describes them as simply 0, 1, 2, 3
|
||||
static const char symbols[] = { "01-~" };
|
||||
@ -106,7 +106,7 @@ static bool process_terms(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
// and-matrix
|
||||
if (strrchr(symbols, **src))
|
||||
curinput++;
|
||||
|
||||
|
||||
switch (**src)
|
||||
{
|
||||
case '0':
|
||||
@ -146,7 +146,7 @@ static bool process_terms(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
if (LOG_PARSE) printf(" ");
|
||||
}
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
@ -175,7 +175,7 @@ static bool process_terms(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
{
|
||||
outputs = false;
|
||||
if (LOG_PARSE) printf("\n");
|
||||
|
||||
|
||||
if (curinput != pinfo->inputs || curoutput != pinfo->outputs)
|
||||
return false;
|
||||
|
||||
@ -185,7 +185,7 @@ static bool process_terms(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
|
||||
(*src)++;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -206,32 +206,32 @@ static bool process_field(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
KW_TERMS,
|
||||
KW_PHASE,
|
||||
KW_END,
|
||||
|
||||
|
||||
KW_INVALID
|
||||
};
|
||||
|
||||
|
||||
// find keyword
|
||||
char dest[0x10];
|
||||
memset(dest, 0, ARRAY_LENGTH(dest));
|
||||
const UINT8 *seek = *src;
|
||||
int destptr = 0;
|
||||
|
||||
|
||||
while (seek < srcend && isalpha(*seek) && destptr < ARRAY_LENGTH(dest) - 1)
|
||||
{
|
||||
dest[destptr] = tolower(*seek);
|
||||
seek++;
|
||||
destptr++;
|
||||
}
|
||||
|
||||
|
||||
UINT8 find = 0;
|
||||
while (strlen(keywords[find]) && strcmp(dest, keywords[find]))
|
||||
find++;
|
||||
|
||||
|
||||
if (find == KW_INVALID)
|
||||
return false;
|
||||
|
||||
|
||||
(*src) += strlen(keywords[find]);
|
||||
|
||||
|
||||
// handle it
|
||||
switch (find)
|
||||
{
|
||||
@ -261,7 +261,7 @@ static bool process_field(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
|
||||
if (LOG_PARSE) printf("Terms: %u\n", pinfo->terms);
|
||||
break;
|
||||
|
||||
|
||||
// output polarity (optional)
|
||||
case KW_PHASE:
|
||||
if (LOG_PARSE) printf("Phase...\n");
|
||||
@ -283,7 +283,7 @@ static bool process_field(jed_data *data, const UINT8 **src, const UINT8 *srcend
|
||||
if (LOG_PARSE) printf("End of file\n");
|
||||
break;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -298,7 +298,7 @@ int pla_parse(const void *data, size_t length, jed_data *result)
|
||||
{
|
||||
const UINT8 *src = (const UINT8 *)data;
|
||||
const UINT8 *srcend = src + length;
|
||||
|
||||
|
||||
parse_info pinfo;
|
||||
memset(&pinfo, 0, sizeof(pinfo));
|
||||
|
||||
@ -321,24 +321,24 @@ int pla_parse(const void *data, size_t length, jed_data *result)
|
||||
if (!process_field(result, &src, srcend, &pinfo))
|
||||
return JEDERR_INVALID_DATA;
|
||||
break;
|
||||
|
||||
|
||||
// terms
|
||||
case '0': case '1': case '-': case '~':
|
||||
if (!process_terms(result, &src, srcend, &pinfo))
|
||||
return JEDERR_INVALID_DATA;
|
||||
break;
|
||||
|
||||
|
||||
default:
|
||||
src++;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// write output polarity
|
||||
if (pinfo.xorptr > 0)
|
||||
{
|
||||
if (LOG_PARSE) printf("Polarity: ");
|
||||
|
||||
|
||||
for (int i = 0; i < pinfo.outputs; i++)
|
||||
{
|
||||
int bit = pinfo.xorval[i/32] >> (i & 31) & 1;
|
||||
|
@ -5169,7 +5169,7 @@ static void *mmap(void *addr, int64_t len, int prot, int flags, int fd,
|
||||
|
||||
p = malloc(len);
|
||||
if (!p)
|
||||
return NULL;
|
||||
return NULL;
|
||||
|
||||
curpos = lseek(fd, 0, SEEK_CUR);
|
||||
lseek(fd, offset, SEEK_SET);
|
||||
|
@ -12,9 +12,9 @@
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||
* nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||
* nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
@ -32,7 +32,7 @@
|
||||
*/
|
||||
|
||||
/** @ingroup packetapi
|
||||
* @{
|
||||
* @{
|
||||
*/
|
||||
|
||||
/** @defgroup packet32h Packet.dll definitions and data structures
|
||||
@ -70,19 +70,19 @@ typedef struct _AirpcapHandle *PAirpcapHandle;
|
||||
|
||||
/// Alignment macro. Defines the alignment size.
|
||||
#define Packet_ALIGNMENT sizeof(int)
|
||||
/// Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.
|
||||
/// Alignment macro. Rounds up to the next even multiple of Packet_ALIGNMENT.
|
||||
#define Packet_WORDALIGN(x) (((x)+(Packet_ALIGNMENT-1))&~(Packet_ALIGNMENT-1))
|
||||
|
||||
#define NdisMediumNull -1 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumCHDLC -2 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumPPPSerial -3 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumBare80211 -4 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumRadio80211 -5 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumPpi -6 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumNull -1 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumCHDLC -2 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumPPPSerial -3 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumBare80211 -4 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumRadio80211 -5 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
#define NdisMediumPpi -6 ///< Custom linktype: NDIS doesn't provide an equivalent
|
||||
|
||||
// Loopback behaviour definitions
|
||||
#define NPF_DISABLE_LOOPBACK 1 ///< Drop the packets sent by the NPF driver
|
||||
#define NPF_ENABLE_LOOPBACK 2 ///< Capture the packets sent by the NPF driver
|
||||
#define NPF_DISABLE_LOOPBACK 1 ///< Drop the packets sent by the NPF driver
|
||||
#define NPF_ENABLE_LOOPBACK 2 ///< Capture the packets sent by the NPF driver
|
||||
|
||||
/*!
|
||||
\brief Network type structure.
|
||||
@ -91,8 +91,8 @@ typedef struct _AirpcapHandle *PAirpcapHandle;
|
||||
*/
|
||||
typedef struct NetType
|
||||
{
|
||||
UINT LinkType; ///< The MAC of the current network adapter (see function PacketGetNetType() for more information)
|
||||
ULONGLONG LinkSpeed; ///< The speed of the network in bits per second
|
||||
UINT LinkType; ///< The MAC of the current network adapter (see function PacketGetNetType() for more information)
|
||||
ULONGLONG LinkSpeed; ///< The speed of the network in bits per second
|
||||
}NetType;
|
||||
|
||||
|
||||
@ -103,12 +103,12 @@ typedef struct NetType
|
||||
/*!
|
||||
\brief A BPF pseudo-assembly program.
|
||||
|
||||
The program will be injected in the kernel by the PacketSetBPF() function and applied to every incoming packet.
|
||||
The program will be injected in the kernel by the PacketSetBPF() function and applied to every incoming packet.
|
||||
*/
|
||||
struct bpf_program
|
||||
struct bpf_program
|
||||
{
|
||||
UINT bf_len; ///< Indicates the number of instructions of the program, i.e. the number of struct bpf_insn that will follow.
|
||||
struct bpf_insn *bf_insns; ///< A pointer to the first instruction of the program.
|
||||
UINT bf_len; ///< Indicates the number of instructions of the program, i.e. the number of struct bpf_insn that will follow.
|
||||
struct bpf_insn *bf_insns; ///< A pointer to the first instruction of the program.
|
||||
};
|
||||
|
||||
/*!
|
||||
@ -116,12 +116,12 @@ struct bpf_program
|
||||
|
||||
bpf_insn contains a single instruction for the BPF register-machine. It is used to send a filter program to the driver.
|
||||
*/
|
||||
struct bpf_insn
|
||||
struct bpf_insn
|
||||
{
|
||||
USHORT code; ///< Instruction type and addressing mode.
|
||||
UCHAR jt; ///< Jump if true
|
||||
UCHAR jf; ///< Jump if false
|
||||
int k; ///< Generic field used for various purposes.
|
||||
USHORT code; ///< Instruction type and addressing mode.
|
||||
UCHAR jt; ///< Jump if true
|
||||
UCHAR jf; ///< Jump if false
|
||||
int k; ///< Generic field used for various purposes.
|
||||
};
|
||||
|
||||
/*!
|
||||
@ -129,16 +129,16 @@ struct bpf_insn
|
||||
|
||||
It is used by packet.dll to return statistics about a capture session.
|
||||
*/
|
||||
struct bpf_stat
|
||||
struct bpf_stat
|
||||
{
|
||||
UINT bs_recv; ///< Number of packets that the driver received from the network adapter
|
||||
///< from the beginning of the current capture. This value includes the packets
|
||||
UINT bs_recv; ///< Number of packets that the driver received from the network adapter
|
||||
///< from the beginning of the current capture. This value includes the packets
|
||||
///< lost by the driver.
|
||||
UINT bs_drop; ///< number of packets that the driver lost from the beginning of a capture.
|
||||
///< Basically, a packet is lost when the the buffer of the driver is full.
|
||||
UINT bs_drop; ///< number of packets that the driver lost from the beginning of a capture.
|
||||
///< Basically, a packet is lost when the the buffer of the driver is full.
|
||||
///< In this situation the packet cannot be stored and the driver rejects it.
|
||||
UINT ps_ifdrop; ///< drops by interface. XXX not yet supported
|
||||
UINT bs_capt; ///< number of packets that pass the filter, find place in the kernel buffer and
|
||||
UINT ps_ifdrop; ///< drops by interface. XXX not yet supported
|
||||
UINT bs_capt; ///< number of packets that pass the filter, find place in the kernel buffer and
|
||||
///< thus reach the application.
|
||||
};
|
||||
|
||||
@ -147,17 +147,17 @@ struct bpf_stat
|
||||
|
||||
This structure defines the header associated with every packet delivered to the application.
|
||||
*/
|
||||
struct bpf_hdr
|
||||
struct bpf_hdr
|
||||
{
|
||||
struct timeval bh_tstamp; ///< The timestamp associated with the captured packet.
|
||||
struct timeval bh_tstamp; ///< The timestamp associated with the captured packet.
|
||||
///< It is stored in a TimeVal structure.
|
||||
UINT bh_caplen; ///< Length of captured portion. The captured portion <b>can be different</b>
|
||||
UINT bh_caplen; ///< Length of captured portion. The captured portion <b>can be different</b>
|
||||
///< from the original packet, because it is possible (with a proper filter)
|
||||
///< to instruct the driver to capture only a portion of the packets.
|
||||
UINT bh_datalen; ///< Original length of packet
|
||||
USHORT bh_hdrlen; ///< Length of bpf header (this struct plus alignment padding). In some cases,
|
||||
UINT bh_datalen; ///< Original length of packet
|
||||
USHORT bh_hdrlen; ///< Length of bpf header (this struct plus alignment padding). In some cases,
|
||||
///< a padding could be added between the end of this structure and the packet
|
||||
///< data for performance reasons. This filed can be used to retrieve the actual data
|
||||
///< data for performance reasons. This filed can be used to retrieve the actual data
|
||||
///< of the packet.
|
||||
};
|
||||
|
||||
@ -169,11 +169,11 @@ struct bpf_hdr
|
||||
packet in a dump file. This makes straightforward sending WinPcap dump files to the network.
|
||||
*/
|
||||
struct dump_bpf_hdr{
|
||||
struct timeval ts; ///< Time stamp of the packet
|
||||
UINT caplen; ///< Length of captured portion. The captured portion can smaller than the
|
||||
///< the original packet, because it is possible (with a proper filter) to
|
||||
///< instruct the driver to capture only a portion of the packets.
|
||||
UINT len; ///< Length of the original packet (off wire).
|
||||
struct timeval ts; ///< Time stamp of the packet
|
||||
UINT caplen; ///< Length of captured portion. The captured portion can smaller than the
|
||||
///< the original packet, because it is possible (with a proper filter) to
|
||||
///< instruct the driver to capture only a portion of the packets.
|
||||
UINT len; ///< Length of the original packet (off wire).
|
||||
};
|
||||
|
||||
|
||||
@ -181,39 +181,39 @@ struct dump_bpf_hdr{
|
||||
|
||||
struct bpf_stat;
|
||||
|
||||
#define DOSNAMEPREFIX TEXT("Packet_") ///< Prefix added to the adapters device names to create the WinPcap devices
|
||||
#define MAX_LINK_NAME_LENGTH 64 //< Maximum length of the devices symbolic links
|
||||
#define DOSNAMEPREFIX TEXT("Packet_") ///< Prefix added to the adapters device names to create the WinPcap devices
|
||||
#define MAX_LINK_NAME_LENGTH 64 //< Maximum length of the devices symbolic links
|
||||
#define NMAX_PACKET 65535
|
||||
|
||||
/*!
|
||||
\brief Addresses of a network adapter.
|
||||
|
||||
This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with
|
||||
This structure is used by the PacketGetNetInfoEx() function to return the IP addresses associated with
|
||||
an adapter.
|
||||
*/
|
||||
typedef struct npf_if_addr {
|
||||
struct sockaddr_storage IPAddress; ///< IP address.
|
||||
struct sockaddr_storage SubnetMask; ///< Netmask for that address.
|
||||
struct sockaddr_storage Broadcast; ///< Broadcast address.
|
||||
struct sockaddr_storage IPAddress; ///< IP address.
|
||||
struct sockaddr_storage SubnetMask; ///< Netmask for that address.
|
||||
struct sockaddr_storage Broadcast; ///< Broadcast address.
|
||||
}npf_if_addr;
|
||||
|
||||
|
||||
#define ADAPTER_NAME_LENGTH 256 + 12 ///< Maximum length for the name of an adapter. The value is the same used by the IP Helper API.
|
||||
#define ADAPTER_DESC_LENGTH 128 ///< Maximum length for the description of an adapter. The value is the same used by the IP Helper API.
|
||||
#define MAX_MAC_ADDR_LENGTH 8 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||
#define MAX_NETWORK_ADDRESSES 16 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||
#define ADAPTER_NAME_LENGTH 256 + 12 ///< Maximum length for the name of an adapter. The value is the same used by the IP Helper API.
|
||||
#define ADAPTER_DESC_LENGTH 128 ///< Maximum length for the description of an adapter. The value is the same used by the IP Helper API.
|
||||
#define MAX_MAC_ADDR_LENGTH 8 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||
#define MAX_NETWORK_ADDRESSES 16 ///< Maximum length for the link layer address of an adapter. The value is the same used by the IP Helper API.
|
||||
|
||||
|
||||
typedef struct WAN_ADAPTER_INT WAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
||||
typedef WAN_ADAPTER *PWAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...) network adapter using the NetMon API
|
||||
|
||||
#define INFO_FLAG_NDIS_ADAPTER 0 ///< Flag for ADAPTER_INFO: this is a traditional ndis adapter
|
||||
#define INFO_FLAG_NDISWAN_ADAPTER 1 ///< Flag for ADAPTER_INFO: this is a NdisWan adapter, and it's managed by WANPACKET
|
||||
#define INFO_FLAG_DAG_CARD 2 ///< Flag for ADAPTER_INFO: this is a DAG card
|
||||
#define INFO_FLAG_DAG_FILE 6 ///< Flag for ADAPTER_INFO: this is a DAG file
|
||||
#define INFO_FLAG_DONT_EXPORT 8 ///< Flag for ADAPTER_INFO: when this flag is set, the adapter will not be listed or openend by winpcap. This allows to prevent exporting broken network adapters, like for example FireWire ones.
|
||||
#define INFO_FLAG_AIRPCAP_CARD 16 ///< Flag for ADAPTER_INFO: this is an airpcap card
|
||||
#define INFO_FLAG_NPFIM_DEVICE 32
|
||||
#define INFO_FLAG_NDIS_ADAPTER 0 ///< Flag for ADAPTER_INFO: this is a traditional ndis adapter
|
||||
#define INFO_FLAG_NDISWAN_ADAPTER 1 ///< Flag for ADAPTER_INFO: this is a NdisWan adapter, and it's managed by WANPACKET
|
||||
#define INFO_FLAG_DAG_CARD 2 ///< Flag for ADAPTER_INFO: this is a DAG card
|
||||
#define INFO_FLAG_DAG_FILE 6 ///< Flag for ADAPTER_INFO: this is a DAG file
|
||||
#define INFO_FLAG_DONT_EXPORT 8 ///< Flag for ADAPTER_INFO: when this flag is set, the adapter will not be listed or openend by winpcap. This allows to prevent exporting broken network adapters, like for example FireWire ones.
|
||||
#define INFO_FLAG_AIRPCAP_CARD 16 ///< Flag for ADAPTER_INFO: this is an airpcap card
|
||||
#define INFO_FLAG_NPFIM_DEVICE 32
|
||||
|
||||
/*!
|
||||
\brief Describes an opened network adapter.
|
||||
@ -221,27 +221,27 @@ typedef WAN_ADAPTER *PWAN_ADAPTER; ///< Describes an opened wan (dialup, VPN...)
|
||||
This structure is the most important for the functioning of packet.dll, but the great part of its fields
|
||||
should be ignored by the user, since the library offers functions that avoid to cope with low-level parameters
|
||||
*/
|
||||
typedef struct _ADAPTER {
|
||||
HANDLE hFile; ///< \internal Handle to an open instance of the NPF driver.
|
||||
typedef struct _ADAPTER {
|
||||
HANDLE hFile; ///< \internal Handle to an open instance of the NPF driver.
|
||||
CHAR SymbolicLink[MAX_LINK_NAME_LENGTH]; ///< \internal A string containing the name of the network adapter currently opened.
|
||||
int NumWrites; ///< \internal Number of times a packets written on this adapter will be repeated
|
||||
int NumWrites; ///< \internal Number of times a packets written on this adapter will be repeated
|
||||
///< on the wire.
|
||||
HANDLE ReadEvent; ///< A notification event associated with the read calls on the adapter.
|
||||
HANDLE ReadEvent; ///< A notification event associated with the read calls on the adapter.
|
||||
///< It can be passed to standard Win32 functions (like WaitForSingleObject
|
||||
///< or WaitForMultipleObjects) to wait until the driver's buffer contains some
|
||||
///< data. It is particularly useful in GUI applications that need to wait
|
||||
///< or WaitForMultipleObjects) to wait until the driver's buffer contains some
|
||||
///< data. It is particularly useful in GUI applications that need to wait
|
||||
///< concurrently on several events. In Windows NT/2000 the PacketSetMinToCopy()
|
||||
///< function can be used to define the minimum amount of data in the kernel buffer
|
||||
///< that will cause the event to be signalled.
|
||||
|
||||
UINT ReadTimeOut; ///< \internal The amount of time after which a read on the driver will be released and
|
||||
///< that will cause the event to be signalled.
|
||||
|
||||
UINT ReadTimeOut; ///< \internal The amount of time after which a read on the driver will be released and
|
||||
///< ReadEvent will be signaled, also if no packets were captured
|
||||
CHAR Name[ADAPTER_NAME_LENGTH];
|
||||
PWAN_ADAPTER pWanAdapter;
|
||||
UINT Flags; ///< Adapter's flags. Tell if this adapter must be treated in a different way, using the Netmon API or the dagc API.
|
||||
UINT Flags; ///< Adapter's flags. Tell if this adapter must be treated in a different way, using the Netmon API or the dagc API.
|
||||
|
||||
#ifdef HAVE_AIRPCAP_API
|
||||
PAirpcapHandle AirpcapAd;
|
||||
PAirpcapHandle AirpcapAd;
|
||||
#endif // HAVE_AIRPCAP_API
|
||||
|
||||
#ifdef HAVE_NPFIM_API
|
||||
@ -249,11 +249,11 @@ typedef struct _ADAPTER {
|
||||
#endif // HAVE_NPFIM_API
|
||||
|
||||
#ifdef HAVE_DAG_API
|
||||
dagc_t *pDagCard; ///< Pointer to the dagc API adapter descriptor for this adapter
|
||||
PCHAR DagBuffer; ///< Pointer to the buffer with the packets that is received from the DAG card
|
||||
struct timeval DagReadTimeout; ///< Read timeout. The dagc API requires a timeval structure
|
||||
unsigned DagFcsLen; ///< Length of the frame check sequence attached to any packet by the card. Obtained from the registry
|
||||
DWORD DagFastProcess; ///< True if the user requests fast capture processing on this card. Higher level applications can use this value to provide a faster but possibly unprecise capture (for example, libpcap doesn't convert the timestamps).
|
||||
dagc_t *pDagCard; ///< Pointer to the dagc API adapter descriptor for this adapter
|
||||
PCHAR DagBuffer; ///< Pointer to the buffer with the packets that is received from the DAG card
|
||||
struct timeval DagReadTimeout; ///< Read timeout. The dagc API requires a timeval structure
|
||||
unsigned DagFcsLen; ///< Length of the frame check sequence attached to any packet by the card. Obtained from the registry
|
||||
DWORD DagFastProcess; ///< True if the user requests fast capture processing on this card. Higher level applications can use this value to provide a faster but possibly unprecise capture (for example, libpcap doesn't convert the timestamps).
|
||||
#endif // HAVE_DAG_API
|
||||
} ADAPTER, *LPADAPTER;
|
||||
|
||||
@ -262,31 +262,31 @@ typedef struct _ADAPTER {
|
||||
|
||||
This structure defines the header associated with every packet delivered to the application.
|
||||
*/
|
||||
typedef struct _PACKET {
|
||||
HANDLE hEvent; ///< \deprecated Still present for compatibility with old applications.
|
||||
OVERLAPPED OverLapped; ///< \deprecated Still present for compatibility with old applications.
|
||||
PVOID Buffer; ///< Buffer with containing the packets. See the PacketReceivePacket() for
|
||||
typedef struct _PACKET {
|
||||
HANDLE hEvent; ///< \deprecated Still present for compatibility with old applications.
|
||||
OVERLAPPED OverLapped; ///< \deprecated Still present for compatibility with old applications.
|
||||
PVOID Buffer; ///< Buffer with containing the packets. See the PacketReceivePacket() for
|
||||
///< details about the organization of the data in this buffer
|
||||
UINT Length; ///< Length of the buffer
|
||||
DWORD ulBytesReceived; ///< Number of valid bytes present in the buffer, i.e. amount of data
|
||||
UINT Length; ///< Length of the buffer
|
||||
DWORD ulBytesReceived; ///< Number of valid bytes present in the buffer, i.e. amount of data
|
||||
///< received by the last call to PacketReceivePacket()
|
||||
BOOLEAN bIoComplete; ///< \deprecated Still present for compatibility with old applications.
|
||||
BOOLEAN bIoComplete; ///< \deprecated Still present for compatibility with old applications.
|
||||
} PACKET, *LPPACKET;
|
||||
|
||||
/*!
|
||||
\brief Structure containing an OID request.
|
||||
|
||||
It is used by the PacketRequest() function to send an OID to the interface card driver.
|
||||
It can be used, for example, to retrieve the status of the error counters on the adapter, its MAC address,
|
||||
It is used by the PacketRequest() function to send an OID to the interface card driver.
|
||||
It can be used, for example, to retrieve the status of the error counters on the adapter, its MAC address,
|
||||
the list of the multicast groups defined on it, and so on.
|
||||
*/
|
||||
struct _PACKET_OID_DATA {
|
||||
ULONG Oid; ///< OID code. See the Microsoft DDK documentation or the file ntddndis.h
|
||||
ULONG Oid; ///< OID code. See the Microsoft DDK documentation or the file ntddndis.h
|
||||
///< for a complete list of valid codes.
|
||||
ULONG Length; ///< Length of the data field
|
||||
UCHAR Data[1]; ///< variable-lenght field that contains the information passed to or received
|
||||
ULONG Length; ///< Length of the data field
|
||||
UCHAR Data[1]; ///< variable-lenght field that contains the information passed to or received
|
||||
///< from the adapter.
|
||||
};
|
||||
};
|
||||
typedef struct _PACKET_OID_DATA PACKET_OID_DATA, *PPACKET_OID_DATA;
|
||||
|
||||
#ifdef __cplusplus
|
||||
@ -299,16 +299,16 @@ extern "C" {
|
||||
|
||||
/*
|
||||
BOOLEAN QueryWinPcapRegistryStringA(CHAR *SubKeyName,
|
||||
CHAR *Value,
|
||||
UINT *pValueLen,
|
||||
CHAR *DefaultVal);
|
||||
CHAR *Value,
|
||||
UINT *pValueLen,
|
||||
CHAR *DefaultVal);
|
||||
|
||||
BOOLEAN QueryWinPcapRegistryStringW(WCHAR *SubKeyName,
|
||||
WCHAR *Value,
|
||||
UINT *pValueLen,
|
||||
WCHAR *DefaultVal);
|
||||
WCHAR *Value,
|
||||
UINT *pValueLen,
|
||||
WCHAR *DefaultVal);
|
||||
*/
|
||||
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
// EXPORTED FUNCTIONS
|
||||
//---------------------------------------------------------------------------
|
||||
@ -350,10 +350,10 @@ PAirpcapHandle PacketGetAirPcapHandle(LPADAPTER AdapterObject);
|
||||
//
|
||||
// Used by PacketStartOemEx
|
||||
//
|
||||
#define PACKET_START_OEM_NO_NETMON 0x00000001
|
||||
#define PACKET_START_OEM_NO_NETMON 0x00000001
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif //__PACKET32
|
||||
|
@ -12,9 +12,9 @@
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||
* nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* 3. Neither the name of the Politecnico di Torino, CACE Technologies
|
||||
* nor the names of its contributors may be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
@ -45,9 +45,9 @@ extern "C" {
|
||||
*/
|
||||
struct pcap_send_queue
|
||||
{
|
||||
u_int maxlen; ///< Maximum size of the the queue, in bytes. This variable contains the size of the buffer field.
|
||||
u_int len; ///< Current size of the queue, in bytes.
|
||||
char *buffer; ///< Buffer containing the packets to be sent.
|
||||
u_int maxlen; ///< Maximum size of the the queue, in bytes. This variable contains the size of the buffer field.
|
||||
u_int len; ///< Current size of the queue, in bytes.
|
||||
char *buffer; ///< Buffer containing the packets to be sent.
|
||||
};
|
||||
|
||||
typedef struct pcap_send_queue pcap_send_queue;
|
||||
@ -60,26 +60,26 @@ typedef struct pcap_send_queue pcap_send_queue;
|
||||
typedef struct _AirpcapHandle *PAirpcapHandle;
|
||||
#endif
|
||||
|
||||
#define BPF_MEM_EX_IMM 0xc0
|
||||
#define BPF_MEM_EX_IND 0xe0
|
||||
#define BPF_MEM_EX_IMM 0xc0
|
||||
#define BPF_MEM_EX_IND 0xe0
|
||||
|
||||
/*used for ST*/
|
||||
#define BPF_MEM_EX 0xc0
|
||||
#define BPF_TME 0x08
|
||||
#define BPF_MEM_EX 0xc0
|
||||
#define BPF_TME 0x08
|
||||
|
||||
#define BPF_LOOKUP 0x90
|
||||
#define BPF_EXECUTE 0xa0
|
||||
#define BPF_INIT 0xb0
|
||||
#define BPF_VALIDATE 0xc0
|
||||
#define BPF_SET_ACTIVE 0xd0
|
||||
#define BPF_RESET 0xe0
|
||||
#define BPF_SET_MEMORY 0x80
|
||||
#define BPF_GET_REGISTER_VALUE 0x70
|
||||
#define BPF_SET_REGISTER_VALUE 0x60
|
||||
#define BPF_SET_WORKING 0x50
|
||||
#define BPF_SET_ACTIVE_READ 0x40
|
||||
#define BPF_SET_AUTODELETION 0x30
|
||||
#define BPF_SEPARATION 0xff
|
||||
#define BPF_LOOKUP 0x90
|
||||
#define BPF_EXECUTE 0xa0
|
||||
#define BPF_INIT 0xb0
|
||||
#define BPF_VALIDATE 0xc0
|
||||
#define BPF_SET_ACTIVE 0xd0
|
||||
#define BPF_RESET 0xe0
|
||||
#define BPF_SET_MEMORY 0x80
|
||||
#define BPF_GET_REGISTER_VALUE 0x70
|
||||
#define BPF_SET_REGISTER_VALUE 0x60
|
||||
#define BPF_SET_WORKING 0x50
|
||||
#define BPF_SET_ACTIVE_READ 0x40
|
||||
#define BPF_SET_AUTODELETION 0x30
|
||||
#define BPF_SEPARATION 0xff
|
||||
|
||||
/* Prototypes */
|
||||
pcap_send_queue* pcap_sendqueue_alloc(u_int memsize);
|
||||
|
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Copyright (C) 1999 WIDE Project.
|
||||
* All rights reserved.
|
||||
*
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
@ -13,7 +13,7 @@
|
||||
* 3. Neither the name of the project nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE PROJECT AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
@ -45,7 +45,7 @@ typedef signed int int8_t;
|
||||
|
||||
#endif /* HAVE_U_INT8_T */
|
||||
|
||||
#ifndef HAVE_U_INT16_T
|
||||
#ifndef HAVE_U_INT16_T
|
||||
|
||||
#if SIZEOF_SHORT == 2
|
||||
typedef unsigned short u_int16_t;
|
||||
@ -104,33 +104,33 @@ typedef unsigned short u_int64_t;
|
||||
|
||||
#ifndef PRId64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRId64 "I64d"
|
||||
#define PRId64 "I64d"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRId64 "lld"
|
||||
#define PRId64 "lld"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRId64 */
|
||||
|
||||
#ifndef PRIo64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIo64 "I64o"
|
||||
#define PRIo64 "I64o"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIo64 "llo"
|
||||
#define PRIo64 "llo"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIo64 */
|
||||
|
||||
#ifndef PRIx64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIx64 "I64x"
|
||||
#define PRIx64 "I64x"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIx64 "llx"
|
||||
#define PRIx64 "llx"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIx64 */
|
||||
|
||||
#ifndef PRIu64
|
||||
#ifdef _MSC_EXTENSIONS
|
||||
#define PRIu64 "I64u"
|
||||
#define PRIu64 "I64u"
|
||||
#else /* _MSC_EXTENSIONS */
|
||||
#define PRIu64 "llu"
|
||||
#define PRIu64 "llu"
|
||||
#endif /* _MSC_EXTENSIONS */
|
||||
#endif /* PRIu64 */
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1993, 1994, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that: (1) source code distributions
|
||||
@ -30,28 +30,28 @@
|
||||
#include <ws2tcpip.h>
|
||||
|
||||
#ifndef __MINGW32__
|
||||
#define IN_MULTICAST(a) IN_CLASSD(a)
|
||||
#define IN_MULTICAST(a) IN_CLASSD(a)
|
||||
#endif
|
||||
|
||||
#define IN_EXPERIMENTAL(a) ((((u_int32_t) (a)) & 0xf0000000) == 0xf0000000)
|
||||
#define IN_EXPERIMENTAL(a) ((((u_int32_t) (a)) & 0xf0000000) == 0xf0000000)
|
||||
|
||||
#define IN_LOOPBACKNET 127
|
||||
#define IN_LOOPBACKNET 127
|
||||
|
||||
#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
|
||||
/* IPv6 address */
|
||||
struct in6_addr
|
||||
{
|
||||
union
|
||||
{
|
||||
u_int8_t u6_addr8[16];
|
||||
u_int16_t u6_addr16[8];
|
||||
u_int32_t u6_addr32[4];
|
||||
} in6_u;
|
||||
#define s6_addr in6_u.u6_addr8
|
||||
#define s6_addr16 in6_u.u6_addr16
|
||||
#define s6_addr32 in6_u.u6_addr32
|
||||
#define s6_addr64 in6_u.u6_addr64
|
||||
};
|
||||
{
|
||||
union
|
||||
{
|
||||
u_int8_t u6_addr8[16];
|
||||
u_int16_t u6_addr16[8];
|
||||
u_int32_t u6_addr32[4];
|
||||
} in6_u;
|
||||
#define s6_addr in6_u.u6_addr8
|
||||
#define s6_addr16 in6_u.u6_addr16
|
||||
#define s6_addr32 in6_u.u6_addr32
|
||||
#define s6_addr64 in6_u.u6_addr64
|
||||
};
|
||||
|
||||
#define IN6ADDR_ANY_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }
|
||||
#define IN6ADDR_LOOPBACK_INIT { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 }
|
||||
@ -59,27 +59,27 @@ struct in6_addr
|
||||
|
||||
|
||||
#if (defined _MSC_VER) || (defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF))
|
||||
typedef unsigned short sa_family_t;
|
||||
typedef unsigned short sa_family_t;
|
||||
#endif
|
||||
|
||||
|
||||
#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
|
||||
|
||||
#define __SOCKADDR_COMMON(sa_prefix) \
|
||||
sa_family_t sa_prefix##family
|
||||
#define __SOCKADDR_COMMON(sa_prefix) \
|
||||
sa_family_t sa_prefix##family
|
||||
|
||||
/* Ditto, for IPv6. */
|
||||
struct sockaddr_in6
|
||||
{
|
||||
__SOCKADDR_COMMON (sin6_);
|
||||
u_int16_t sin6_port; /* Transport layer port # */
|
||||
u_int32_t sin6_flowinfo; /* IPv6 flow information */
|
||||
struct in6_addr sin6_addr; /* IPv6 address */
|
||||
};
|
||||
{
|
||||
__SOCKADDR_COMMON (sin6_);
|
||||
u_int16_t sin6_port; /* Transport layer port # */
|
||||
u_int32_t sin6_flowinfo; /* IPv6 flow information */
|
||||
struct in6_addr sin6_addr; /* IPv6 address */
|
||||
};
|
||||
|
||||
#define IN6_IS_ADDR_V4MAPPED(a) \
|
||||
((((u_int32_t *) (a))[0] == 0) && (((u_int32_t *) (a))[1] == 0) && \
|
||||
(((u_int32_t *) (a))[2] == htonl (0xffff)))
|
||||
(((u_int32_t *) (a))[2] == htonl (0xffff)))
|
||||
|
||||
#define IN6_IS_ADDR_MULTICAST(a) (((u_int8_t *) (a))[0] == 0xff)
|
||||
|
||||
@ -88,7 +88,7 @@ struct sockaddr_in6
|
||||
|
||||
#define IN6_IS_ADDR_LOOPBACK(a) \
|
||||
(((u_int32_t *) (a))[0] == 0 && ((u_int32_t *) (a))[1] == 0 && \
|
||||
((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
|
||||
((u_int32_t *) (a))[2] == 0 && ((u_int32_t *) (a))[3] == htonl (1))
|
||||
#endif /* __MINGW32__ */
|
||||
|
||||
#define ip6_vfc ip6_ctlun.ip6_un2_vfc
|
||||
@ -104,60 +104,60 @@ struct sockaddr_in6
|
||||
#define nd_rd_reserved nd_rd_hdr.icmp6_data32[0]
|
||||
|
||||
/*
|
||||
* IPV6 extension headers
|
||||
* IPV6 extension headers
|
||||
*/
|
||||
#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
|
||||
#define IPPROTO_IPV6 41 /* IPv6 header. */
|
||||
#define IPPROTO_ROUTING 43 /* IPv6 routing header */
|
||||
#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
|
||||
#define IPPROTO_ESP 50 /* encapsulating security payload */
|
||||
#define IPPROTO_AH 51 /* authentication header */
|
||||
#define IPPROTO_ICMPV6 58 /* ICMPv6 */
|
||||
#define IPPROTO_NONE 59 /* IPv6 no next header */
|
||||
#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
|
||||
#define IPPROTO_PIM 103 /* Protocol Independent Multicast. */
|
||||
#define IPPROTO_HOPOPTS 0 /* IPv6 hop-by-hop options */
|
||||
#define IPPROTO_IPV6 41 /* IPv6 header. */
|
||||
#define IPPROTO_ROUTING 43 /* IPv6 routing header */
|
||||
#define IPPROTO_FRAGMENT 44 /* IPv6 fragmentation header */
|
||||
#define IPPROTO_ESP 50 /* encapsulating security payload */
|
||||
#define IPPROTO_AH 51 /* authentication header */
|
||||
#define IPPROTO_ICMPV6 58 /* ICMPv6 */
|
||||
#define IPPROTO_NONE 59 /* IPv6 no next header */
|
||||
#define IPPROTO_DSTOPTS 60 /* IPv6 destination options */
|
||||
#define IPPROTO_PIM 103 /* Protocol Independent Multicast. */
|
||||
|
||||
#define IPV6_RTHDR_TYPE_0 0
|
||||
#define IPV6_RTHDR_TYPE_0 0
|
||||
|
||||
/* Option types and related macros */
|
||||
#define IP6OPT_PAD1 0x00 /* 00 0 00000 */
|
||||
#define IP6OPT_PADN 0x01 /* 00 0 00001 */
|
||||
#define IP6OPT_JUMBO 0xC2 /* 11 0 00010 = 194 */
|
||||
#define IP6OPT_JUMBO_LEN 6
|
||||
#define IP6OPT_ROUTER_ALERT 0x05 /* 00 0 00101 */
|
||||
#define IP6OPT_PAD1 0x00 /* 00 0 00000 */
|
||||
#define IP6OPT_PADN 0x01 /* 00 0 00001 */
|
||||
#define IP6OPT_JUMBO 0xC2 /* 11 0 00010 = 194 */
|
||||
#define IP6OPT_JUMBO_LEN 6
|
||||
#define IP6OPT_ROUTER_ALERT 0x05 /* 00 0 00101 */
|
||||
|
||||
#define IP6OPT_RTALERT_LEN 4
|
||||
#define IP6OPT_RTALERT_MLD 0 /* Datagram contains an MLD message */
|
||||
#define IP6OPT_RTALERT_RSVP 1 /* Datagram contains an RSVP message */
|
||||
#define IP6OPT_RTALERT_ACTNET 2 /* contains an Active Networks msg */
|
||||
#define IP6OPT_MINLEN 2
|
||||
#define IP6OPT_RTALERT_LEN 4
|
||||
#define IP6OPT_RTALERT_MLD 0 /* Datagram contains an MLD message */
|
||||
#define IP6OPT_RTALERT_RSVP 1 /* Datagram contains an RSVP message */
|
||||
#define IP6OPT_RTALERT_ACTNET 2 /* contains an Active Networks msg */
|
||||
#define IP6OPT_MINLEN 2
|
||||
|
||||
#define IP6OPT_BINDING_UPDATE 0xc6 /* 11 0 00110 */
|
||||
#define IP6OPT_BINDING_ACK 0x07 /* 00 0 00111 */
|
||||
#define IP6OPT_BINDING_REQ 0x08 /* 00 0 01000 */
|
||||
#define IP6OPT_HOME_ADDRESS 0xc9 /* 11 0 01001 */
|
||||
#define IP6OPT_EID 0x8a /* 10 0 01010 */
|
||||
#define IP6OPT_BINDING_UPDATE 0xc6 /* 11 0 00110 */
|
||||
#define IP6OPT_BINDING_ACK 0x07 /* 00 0 00111 */
|
||||
#define IP6OPT_BINDING_REQ 0x08 /* 00 0 01000 */
|
||||
#define IP6OPT_HOME_ADDRESS 0xc9 /* 11 0 01001 */
|
||||
#define IP6OPT_EID 0x8a /* 10 0 01010 */
|
||||
|
||||
#define IP6OPT_TYPE(o) ((o) & 0xC0)
|
||||
#define IP6OPT_TYPE_SKIP 0x00
|
||||
#define IP6OPT_TYPE_DISCARD 0x40
|
||||
#define IP6OPT_TYPE_FORCEICMP 0x80
|
||||
#define IP6OPT_TYPE_ICMP 0xC0
|
||||
#define IP6OPT_TYPE(o) ((o) & 0xC0)
|
||||
#define IP6OPT_TYPE_SKIP 0x00
|
||||
#define IP6OPT_TYPE_DISCARD 0x40
|
||||
#define IP6OPT_TYPE_FORCEICMP 0x80
|
||||
#define IP6OPT_TYPE_ICMP 0xC0
|
||||
|
||||
#define IP6OPT_MUTABLE 0x20
|
||||
#define IP6OPT_MUTABLE 0x20
|
||||
|
||||
|
||||
#if defined(__MINGW32__) && defined(DEFINE_ADDITIONAL_IPV6_STUFF)
|
||||
#ifndef EAI_ADDRFAMILY
|
||||
struct addrinfo {
|
||||
int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
|
||||
int ai_family; /* PF_xxx */
|
||||
int ai_socktype; /* SOCK_xxx */
|
||||
int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
|
||||
size_t ai_addrlen; /* length of ai_addr */
|
||||
char *ai_canonname; /* canonical name for hostname */
|
||||
struct sockaddr *ai_addr; /* binary address */
|
||||
struct addrinfo *ai_next; /* next structure in linked list */
|
||||
int ai_flags; /* AI_PASSIVE, AI_CANONNAME */
|
||||
int ai_family; /* PF_xxx */
|
||||
int ai_socktype; /* SOCK_xxx */
|
||||
int ai_protocol; /* 0 or IPPROTO_xxx for IPv4 and IPv6 */
|
||||
size_t ai_addrlen; /* length of ai_addr */
|
||||
char *ai_canonname; /* canonical name for hostname */
|
||||
struct sockaddr *ai_addr; /* binary address */
|
||||
struct addrinfo *ai_next; /* next structure in linked list */
|
||||
};
|
||||
#endif
|
||||
#endif /* __MINGW32__ */
|
||||
|
@ -1,10 +1,10 @@
|
||||
/*-
|
||||
* Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from the Stanford/CMU enet packet filter,
|
||||
* (net/enet.c) distributed as part of 4.3BSD, and code contributed
|
||||
* to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
|
||||
* to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
|
||||
* Berkeley Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1994, 1996
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -12,8 +12,8 @@
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
||||
* to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
|
@ -39,7 +39,7 @@
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Avoids a compiler warning in case this was already defined
|
||||
* Avoids a compiler warning in case this was already defined
|
||||
* (someone defined _WINSOCKAPI_ when including 'windows.h', in order
|
||||
* to prevent it from including 'winsock.h')
|
||||
*/
|
||||
@ -67,7 +67,7 @@
|
||||
#endif
|
||||
|
||||
#if defined(_MSC_VER) && (_MSC_VER < 1700)
|
||||
#define inline __inline
|
||||
#define inline __inline
|
||||
#endif
|
||||
|
||||
#ifdef __MINGW32__
|
||||
@ -90,6 +90,6 @@ typedef __int64 intptr_t;
|
||||
typedef _W64 int intptr_t;
|
||||
#endif
|
||||
#define _INTPTR_T_DEFINED
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif /*__MINGW32__*/
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -12,8 +12,8 @@
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
||||
* to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
|
@ -11,8 +11,8 @@
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
@ -32,7 +32,7 @@
|
||||
*
|
||||
* @(#) $Header: /tcpdump/master/libpcap/pcap/bluetooth.h,v 1.1 2007/09/22 02:10:17 guy Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _PCAP_BLUETOOTH_STRUCTS_H__
|
||||
#define _PCAP_BLUETOOTH_STRUCTS_H__
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
/*-
|
||||
* Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from the Stanford/CMU enet packet filter,
|
||||
* (net/enet.c) distributed as part of 4.3BSD, and code contributed
|
||||
* to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
|
||||
* to Berkeley by Steven McCanne and Van Jacobson both of Lawrence
|
||||
* Berkeley Laboratory.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
@ -64,13 +64,13 @@ extern "C" {
|
||||
typedef long bpf_int32;
|
||||
typedef unsigned long bpf_u_int32;
|
||||
#else
|
||||
typedef int bpf_int32;
|
||||
typedef u_int bpf_u_int32;
|
||||
typedef int bpf_int32;
|
||||
typedef u_int bpf_u_int32;
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Alignment macros. BPF_WORDALIGN rounds up to the next
|
||||
* even multiple of BPF_ALIGNMENT.
|
||||
* Alignment macros. BPF_WORDALIGN rounds up to the next
|
||||
* even multiple of BPF_ALIGNMENT.
|
||||
*/
|
||||
#ifndef __NetBSD__
|
||||
#define BPF_ALIGNMENT sizeof(bpf_int32)
|
||||
@ -89,9 +89,9 @@ struct bpf_program {
|
||||
u_int bf_len;
|
||||
struct bpf_insn *bf_insns;
|
||||
};
|
||||
|
||||
|
||||
/*
|
||||
* Struct return by BIOCVERSION. This represents the version number of
|
||||
* Struct return by BIOCVERSION. This represents the version number of
|
||||
* the filter language described by the instruction encodings below.
|
||||
* bpf understands a program iff kernel_major == filter_major &&
|
||||
* kernel_minor >= filter_minor, that is, if the value returned by the
|
||||
@ -125,17 +125,17 @@ struct bpf_version {
|
||||
* These are the types that are the same on all platforms, and that
|
||||
* have been defined by <net/bpf.h> for ages.
|
||||
*/
|
||||
#define DLT_NULL 0 /* BSD loopback encapsulation */
|
||||
#define DLT_EN10MB 1 /* Ethernet (10Mb) */
|
||||
#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */
|
||||
#define DLT_AX25 3 /* Amateur Radio AX.25 */
|
||||
#define DLT_PRONET 4 /* Proteon ProNET Token Ring */
|
||||
#define DLT_CHAOS 5 /* Chaos */
|
||||
#define DLT_IEEE802 6 /* 802.5 Token Ring */
|
||||
#define DLT_ARCNET 7 /* ARCNET, with BSD-style header */
|
||||
#define DLT_SLIP 8 /* Serial Line IP */
|
||||
#define DLT_PPP 9 /* Point-to-point Protocol */
|
||||
#define DLT_FDDI 10 /* FDDI */
|
||||
#define DLT_NULL 0 /* BSD loopback encapsulation */
|
||||
#define DLT_EN10MB 1 /* Ethernet (10Mb) */
|
||||
#define DLT_EN3MB 2 /* Experimental Ethernet (3Mb) */
|
||||
#define DLT_AX25 3 /* Amateur Radio AX.25 */
|
||||
#define DLT_PRONET 4 /* Proteon ProNET Token Ring */
|
||||
#define DLT_CHAOS 5 /* Chaos */
|
||||
#define DLT_IEEE802 6 /* 802.5 Token Ring */
|
||||
#define DLT_ARCNET 7 /* ARCNET, with BSD-style header */
|
||||
#define DLT_SLIP 8 /* Serial Line IP */
|
||||
#define DLT_PPP 9 /* Point-to-point Protocol */
|
||||
#define DLT_FDDI 10 /* FDDI */
|
||||
|
||||
/*
|
||||
* These are types that are different on some platforms, and that
|
||||
@ -146,12 +146,12 @@ struct bpf_version {
|
||||
* XXX - DLT_ATM_RFC1483 is 13 in BSD/OS, and DLT_RAW is 14 in BSD/OS,
|
||||
* but I don't know what the right #define is for BSD/OS.
|
||||
*/
|
||||
#define DLT_ATM_RFC1483 11 /* LLC-encapsulated ATM */
|
||||
#define DLT_ATM_RFC1483 11 /* LLC-encapsulated ATM */
|
||||
|
||||
#ifdef __OpenBSD__
|
||||
#define DLT_RAW 14 /* raw IP */
|
||||
#define DLT_RAW 14 /* raw IP */
|
||||
#else
|
||||
#define DLT_RAW 12 /* raw IP */
|
||||
#define DLT_RAW 12 /* raw IP */
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -162,12 +162,12 @@ struct bpf_version {
|
||||
*/
|
||||
#if defined(__NetBSD__) || defined(__FreeBSD__)
|
||||
#ifndef DLT_SLIP_BSDOS
|
||||
#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */
|
||||
#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */
|
||||
#define DLT_SLIP_BSDOS 13 /* BSD/OS Serial Line IP */
|
||||
#define DLT_PPP_BSDOS 14 /* BSD/OS Point-to-point Protocol */
|
||||
#endif
|
||||
#else
|
||||
#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */
|
||||
#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */
|
||||
#define DLT_SLIP_BSDOS 15 /* BSD/OS Serial Line IP */
|
||||
#define DLT_PPP_BSDOS 16 /* BSD/OS Point-to-point Protocol */
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -176,21 +176,21 @@ struct bpf_version {
|
||||
* 18 is used for DLT_PFSYNC in OpenBSD; don't use it for anything else.
|
||||
*/
|
||||
|
||||
#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */
|
||||
#define DLT_ATM_CLIP 19 /* Linux Classical-IP over ATM */
|
||||
|
||||
/*
|
||||
* Apparently Redback uses this for its SmartEdge 400/800. I hope
|
||||
* nobody else decided to use it, too.
|
||||
*/
|
||||
#define DLT_REDBACK_SMARTEDGE 32
|
||||
#define DLT_REDBACK_SMARTEDGE 32
|
||||
|
||||
/*
|
||||
* These values are defined by NetBSD; other platforms should refrain from
|
||||
* using them for other purposes, so that NetBSD savefiles with link
|
||||
* types of 50 or 51 can be read as this type on all platforms.
|
||||
*/
|
||||
#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */
|
||||
#define DLT_PPP_ETHER 51 /* PPP over Ethernet */
|
||||
#define DLT_PPP_SERIAL 50 /* PPP over serial with HDLC encapsulation */
|
||||
#define DLT_PPP_ETHER 51 /* PPP over Ethernet */
|
||||
|
||||
/*
|
||||
* The Axent Raptor firewall - now the Symantec Enterprise Firewall - uses
|
||||
@ -199,7 +199,7 @@ struct bpf_version {
|
||||
* Ethernet type, and 36 bytes that appear to be 0 in at least one capture
|
||||
* I've seen.
|
||||
*/
|
||||
#define DLT_SYMANTEC_FIREWALL 99
|
||||
#define DLT_SYMANTEC_FIREWALL 99
|
||||
|
||||
/*
|
||||
* Values between 100 and 103 are used in capture file headers as
|
||||
@ -221,10 +221,10 @@ struct bpf_version {
|
||||
* libpcap 0.5 defined it as DLT_CHDLC; we define DLT_CHDLC as well,
|
||||
* for source compatibility with programs written for libpcap 0.5.
|
||||
*/
|
||||
#define DLT_C_HDLC 104 /* Cisco HDLC */
|
||||
#define DLT_CHDLC DLT_C_HDLC
|
||||
#define DLT_C_HDLC 104 /* Cisco HDLC */
|
||||
#define DLT_CHDLC DLT_C_HDLC
|
||||
|
||||
#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */
|
||||
#define DLT_IEEE802_11 105 /* IEEE 802.11 wireless */
|
||||
|
||||
/*
|
||||
* 106 is reserved for Linux Classical IP over ATM; it's like DLT_RAW,
|
||||
@ -239,7 +239,7 @@ struct bpf_version {
|
||||
* DLT_FR and DLT_FRELAY packets start with the Q.922 Frame Relay header
|
||||
* (DLCI, etc.).
|
||||
*/
|
||||
#define DLT_FRELAY 107
|
||||
#define DLT_FRELAY 107
|
||||
|
||||
/*
|
||||
* OpenBSD DLT_LOOP, for loopback devices; it's like DLT_NULL, except
|
||||
@ -249,9 +249,9 @@ struct bpf_version {
|
||||
* we don't use 12 for it in OSes other than OpenBSD.
|
||||
*/
|
||||
#ifdef __OpenBSD__
|
||||
#define DLT_LOOP 12
|
||||
#define DLT_LOOP 12
|
||||
#else
|
||||
#define DLT_LOOP 108
|
||||
#define DLT_LOOP 108
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -260,9 +260,9 @@ struct bpf_version {
|
||||
* than OpenBSD.
|
||||
*/
|
||||
#ifdef __OpenBSD__
|
||||
#define DLT_ENC 13
|
||||
#define DLT_ENC 13
|
||||
#else
|
||||
#define DLT_ENC 109
|
||||
#define DLT_ENC 109
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -275,22 +275,22 @@ struct bpf_version {
|
||||
/*
|
||||
* This is for Linux cooked sockets.
|
||||
*/
|
||||
#define DLT_LINUX_SLL 113
|
||||
#define DLT_LINUX_SLL 113
|
||||
|
||||
/*
|
||||
* Apple LocalTalk hardware.
|
||||
*/
|
||||
#define DLT_LTALK 114
|
||||
#define DLT_LTALK 114
|
||||
|
||||
/*
|
||||
* Acorn Econet.
|
||||
*/
|
||||
#define DLT_ECONET 115
|
||||
#define DLT_ECONET 115
|
||||
|
||||
/*
|
||||
* Reserved for use with OpenBSD ipfilter.
|
||||
*/
|
||||
#define DLT_IPFILTER 116
|
||||
#define DLT_IPFILTER 116
|
||||
|
||||
/*
|
||||
* OpenBSD DLT_PFLOG; DLT_PFLOG is 17 in OpenBSD, but that's DLT_LANE8023
|
||||
@ -299,33 +299,33 @@ struct bpf_version {
|
||||
* XXX: is there a conflict with DLT_PFSYNC 18 as well?
|
||||
*/
|
||||
#ifdef __OpenBSD__
|
||||
#define DLT_OLD_PFLOG 17
|
||||
#define DLT_PFSYNC 18
|
||||
#define DLT_OLD_PFLOG 17
|
||||
#define DLT_PFSYNC 18
|
||||
#endif
|
||||
#define DLT_PFLOG 117
|
||||
#define DLT_PFLOG 117
|
||||
|
||||
/*
|
||||
* Registered for Cisco-internal use.
|
||||
*/
|
||||
#define DLT_CISCO_IOS 118
|
||||
#define DLT_CISCO_IOS 118
|
||||
|
||||
/*
|
||||
* For 802.11 cards using the Prism II chips, with a link-layer
|
||||
* header including Prism monitor mode information plus an 802.11
|
||||
* header.
|
||||
*/
|
||||
#define DLT_PRISM_HEADER 119
|
||||
#define DLT_PRISM_HEADER 119
|
||||
|
||||
/*
|
||||
* Reserved for Aironet 802.11 cards, with an Aironet link-layer header
|
||||
* (see Doug Ambrisko's FreeBSD patches).
|
||||
*/
|
||||
#define DLT_AIRONET_HEADER 120
|
||||
#define DLT_AIRONET_HEADER 120
|
||||
|
||||
/*
|
||||
* Reserved for Siemens HiPath HDLC.
|
||||
*/
|
||||
#define DLT_HHDLC 121
|
||||
#define DLT_HHDLC 121
|
||||
|
||||
/*
|
||||
* This is for RFC 2625 IP-over-Fibre Channel.
|
||||
@ -335,7 +335,7 @@ struct bpf_version {
|
||||
* where the link-layer header starts with an RFC 2625 Network_Header
|
||||
* field.
|
||||
*/
|
||||
#define DLT_IP_OVER_FC 122
|
||||
#define DLT_IP_OVER_FC 122
|
||||
|
||||
/*
|
||||
* This is for Full Frontal ATM on Solaris with SunATM, with a
|
||||
@ -351,9 +351,9 @@ struct bpf_version {
|
||||
* and the like don't have to infer the presence or absence of a
|
||||
* pseudo-header and the form of the pseudo-header.
|
||||
*/
|
||||
#define DLT_SUNATM 123 /* Solaris+SunATM */
|
||||
#define DLT_SUNATM 123 /* Solaris+SunATM */
|
||||
|
||||
/*
|
||||
/*
|
||||
* Reserved as per request from Kent Dahlgren <kent@praesum.com>
|
||||
* for private use.
|
||||
*/
|
||||
@ -366,7 +366,7 @@ struct bpf_version {
|
||||
* including radio information, used by some recent BSD drivers as
|
||||
* well as the madwifi Atheros driver for Linux.
|
||||
*/
|
||||
#define DLT_IEEE802_11_RADIO 127 /* 802.11 plus radiotap radio header */
|
||||
#define DLT_IEEE802_11_RADIO 127 /* 802.11 plus radiotap radio header */
|
||||
|
||||
/*
|
||||
* Reserved for the TZSP encapsulation, as per request from
|
||||
@ -389,7 +389,7 @@ struct bpf_version {
|
||||
*
|
||||
* We therefore have to have separate DLT_ values for them.
|
||||
*/
|
||||
#define DLT_ARCNET_LINUX 129 /* ARCNET */
|
||||
#define DLT_ARCNET_LINUX 129 /* ARCNET */
|
||||
|
||||
/*
|
||||
* Juniper-private data link types, as per request from
|
||||
@ -411,31 +411,31 @@ struct bpf_version {
|
||||
* <dieter@apple.com>. The header that's presented is an Ethernet-like
|
||||
* header:
|
||||
*
|
||||
* #define FIREWIRE_EUI64_LEN 8
|
||||
* struct firewire_header {
|
||||
* u_char firewire_dhost[FIREWIRE_EUI64_LEN];
|
||||
* u_char firewire_shost[FIREWIRE_EUI64_LEN];
|
||||
* u_short firewire_type;
|
||||
* };
|
||||
* #define FIREWIRE_EUI64_LEN 8
|
||||
* struct firewire_header {
|
||||
* u_char firewire_dhost[FIREWIRE_EUI64_LEN];
|
||||
* u_char firewire_shost[FIREWIRE_EUI64_LEN];
|
||||
* u_short firewire_type;
|
||||
* };
|
||||
*
|
||||
* with "firewire_type" being an Ethernet type value, rather than,
|
||||
* for example, raw GASP frames being handed up.
|
||||
*/
|
||||
#define DLT_APPLE_IP_OVER_IEEE1394 138
|
||||
#define DLT_APPLE_IP_OVER_IEEE1394 138
|
||||
|
||||
/*
|
||||
* Various SS7 encapsulations, as per a request from Jeff Morriss
|
||||
* <jeff.morriss[AT]ulticom.com> and subsequent discussions.
|
||||
*/
|
||||
#define DLT_MTP2_WITH_PHDR 139 /* pseudo-header with various info, followed by MTP2 */
|
||||
#define DLT_MTP2 140 /* MTP2, without pseudo-header */
|
||||
#define DLT_MTP3 141 /* MTP3, without pseudo-header or MTP2 */
|
||||
#define DLT_SCCP 142 /* SCCP, without pseudo-header or MTP2 or MTP3 */
|
||||
#define DLT_MTP2_WITH_PHDR 139 /* pseudo-header with various info, followed by MTP2 */
|
||||
#define DLT_MTP2 140 /* MTP2, without pseudo-header */
|
||||
#define DLT_MTP3 141 /* MTP3, without pseudo-header or MTP2 */
|
||||
#define DLT_SCCP 142 /* SCCP, without pseudo-header or MTP2 or MTP3 */
|
||||
|
||||
/*
|
||||
* DOCSIS MAC frames.
|
||||
*/
|
||||
#define DLT_DOCSIS 143
|
||||
#define DLT_DOCSIS 143
|
||||
|
||||
/*
|
||||
* Linux-IrDA packets. Protocol defined at http://www.irda.org.
|
||||
@ -452,13 +452,13 @@ struct bpf_version {
|
||||
* issue and define a real DLT_IRDA...
|
||||
* Jean II
|
||||
*/
|
||||
#define DLT_LINUX_IRDA 144
|
||||
#define DLT_LINUX_IRDA 144
|
||||
|
||||
/*
|
||||
* Reserved for IBM SP switch and IBM Next Federation switch.
|
||||
*/
|
||||
#define DLT_IBM_SP 145
|
||||
#define DLT_IBM_SN 146
|
||||
#define DLT_IBM_SP 145
|
||||
#define DLT_IBM_SN 146
|
||||
|
||||
/*
|
||||
* Reserved for private use. If you have some link-layer header type
|
||||
@ -485,34 +485,34 @@ struct bpf_version {
|
||||
* Instead, ask "tcpdump-workers@lists.tcpdump.org" for a new DLT_ value,
|
||||
* as per the comment above, and use the type you're given.
|
||||
*/
|
||||
#define DLT_USER0 147
|
||||
#define DLT_USER1 148
|
||||
#define DLT_USER2 149
|
||||
#define DLT_USER3 150
|
||||
#define DLT_USER4 151
|
||||
#define DLT_USER5 152
|
||||
#define DLT_USER6 153
|
||||
#define DLT_USER7 154
|
||||
#define DLT_USER8 155
|
||||
#define DLT_USER9 156
|
||||
#define DLT_USER10 157
|
||||
#define DLT_USER11 158
|
||||
#define DLT_USER12 159
|
||||
#define DLT_USER13 160
|
||||
#define DLT_USER14 161
|
||||
#define DLT_USER15 162
|
||||
#define DLT_USER0 147
|
||||
#define DLT_USER1 148
|
||||
#define DLT_USER2 149
|
||||
#define DLT_USER3 150
|
||||
#define DLT_USER4 151
|
||||
#define DLT_USER5 152
|
||||
#define DLT_USER6 153
|
||||
#define DLT_USER7 154
|
||||
#define DLT_USER8 155
|
||||
#define DLT_USER9 156
|
||||
#define DLT_USER10 157
|
||||
#define DLT_USER11 158
|
||||
#define DLT_USER12 159
|
||||
#define DLT_USER13 160
|
||||
#define DLT_USER14 161
|
||||
#define DLT_USER15 162
|
||||
|
||||
/*
|
||||
* For future use with 802.11 captures - defined by AbsoluteValue
|
||||
* Systems to store a number of bits of link-layer information
|
||||
* including radio information:
|
||||
*
|
||||
* http://www.shaftnet.org/~pizza/software/capturefrm.txt
|
||||
* http://www.shaftnet.org/~pizza/software/capturefrm.txt
|
||||
*
|
||||
* but it might be used by some non-AVS drivers now or in the
|
||||
* future.
|
||||
*/
|
||||
#define DLT_IEEE802_11_RADIO_AVS 163 /* 802.11 plus AVS radio header */
|
||||
#define DLT_IEEE802_11_RADIO_AVS 163 /* 802.11 plus AVS radio header */
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
@ -525,7 +525,7 @@ struct bpf_version {
|
||||
/*
|
||||
* Reserved for BACnet MS/TP.
|
||||
*/
|
||||
#define DLT_BACNET_MS_TP 165
|
||||
#define DLT_BACNET_MS_TP 165
|
||||
|
||||
/*
|
||||
* Another PPP variant as per request from Karsten Keil <kkeil@suse.de>.
|
||||
@ -541,14 +541,14 @@ struct bpf_version {
|
||||
* The first byte of the PPP header (0xff03) is modified to accomodate
|
||||
* the direction - 0x00 = IN, 0x01 = OUT.
|
||||
*/
|
||||
#define DLT_PPP_PPPD 166
|
||||
#define DLT_PPP_PPPD 166
|
||||
|
||||
/*
|
||||
* Names for backwards compatibility with older versions of some PPP
|
||||
* software; new software should use DLT_PPP_PPPD.
|
||||
*/
|
||||
#define DLT_PPP_WITH_DIRECTION DLT_PPP_PPPD
|
||||
#define DLT_LINUX_PPP_WITHDIRECTION DLT_PPP_PPPD
|
||||
#define DLT_PPP_WITH_DIRECTION DLT_PPP_PPPD
|
||||
#define DLT_LINUX_PPP_WITHDIRECTION DLT_PPP_PPPD
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
@ -559,16 +559,16 @@ struct bpf_version {
|
||||
#define DLT_JUNIPER_PPPOE 167
|
||||
#define DLT_JUNIPER_PPPOE_ATM 168
|
||||
|
||||
#define DLT_GPRS_LLC 169 /* GPRS LLC */
|
||||
#define DLT_GPF_T 170 /* GPF-T (ITU-T G.7041/Y.1303) */
|
||||
#define DLT_GPF_F 171 /* GPF-F (ITU-T G.7041/Y.1303) */
|
||||
#define DLT_GPRS_LLC 169 /* GPRS LLC */
|
||||
#define DLT_GPF_T 170 /* GPF-T (ITU-T G.7041/Y.1303) */
|
||||
#define DLT_GPF_F 171 /* GPF-F (ITU-T G.7041/Y.1303) */
|
||||
|
||||
/*
|
||||
* Requested by Oolan Zimmer <oz@gcom.com> for use in Gcom's T1/E1 line
|
||||
* monitoring equipment.
|
||||
*/
|
||||
#define DLT_GCOM_T1E1 172
|
||||
#define DLT_GCOM_SERIAL 173
|
||||
#define DLT_GCOM_T1E1 172
|
||||
#define DLT_GCOM_SERIAL 173
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
@ -583,8 +583,8 @@ struct bpf_version {
|
||||
* http://www.endace.com/support/EndaceRecordFormat.pdf) in front of
|
||||
* the link-layer header.
|
||||
*/
|
||||
#define DLT_ERF_ETH 175 /* Ethernet */
|
||||
#define DLT_ERF_POS 176 /* Packet-over-SONET */
|
||||
#define DLT_ERF_ETH 175 /* Ethernet */
|
||||
#define DLT_ERF_POS 176 /* Packet-over-SONET */
|
||||
|
||||
/*
|
||||
* Requested by Daniele Orlandi <daniele@orlandi.com> for raw LAPD
|
||||
@ -592,11 +592,11 @@ struct bpf_version {
|
||||
* includes additional information before the LAPD header, so it's
|
||||
* not necessarily a generic LAPD header.
|
||||
*/
|
||||
#define DLT_LINUX_LAPD 177
|
||||
#define DLT_LINUX_LAPD 177
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* The DLT_ are used for prepending meta-information
|
||||
* like interface index, interface name
|
||||
* before standard Ethernet, PPP, Frelay & C-HDLC Frames
|
||||
@ -613,7 +613,7 @@ struct bpf_version {
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* The DLT_ is used for internal communication with a
|
||||
* voice Adapter Card (PIC)
|
||||
*/
|
||||
@ -639,25 +639,25 @@ struct bpf_version {
|
||||
* USB packets, beginning with a USB setup header; requested by
|
||||
* Paolo Abeni <paolo.abeni@email.it>.
|
||||
*/
|
||||
#define DLT_USB 186
|
||||
#define DLT_USB 186
|
||||
|
||||
/*
|
||||
* Bluetooth HCI UART transport layer (part H:4); requested by
|
||||
* Paolo Abeni.
|
||||
*/
|
||||
#define DLT_BLUETOOTH_HCI_H4 187
|
||||
#define DLT_BLUETOOTH_HCI_H4 187
|
||||
|
||||
/*
|
||||
* IEEE 802.16 MAC Common Part Sublayer; requested by Maria Cruz
|
||||
* <cruz_petagay@bah.com>.
|
||||
*/
|
||||
#define DLT_IEEE802_16_MAC_CPS 188
|
||||
#define DLT_IEEE802_16_MAC_CPS 188
|
||||
|
||||
/*
|
||||
* USB packets, beginning with a Linux USB header; requested by
|
||||
* Paolo Abeni <paolo.abeni@email.it>.
|
||||
*/
|
||||
#define DLT_USB_LINUX 189
|
||||
#define DLT_USB_LINUX 189
|
||||
|
||||
/*
|
||||
* Controller Area Network (CAN) v. 2.0B packets.
|
||||
@ -672,23 +672,23 @@ struct bpf_version {
|
||||
* IEEE 802.15.4, with address fields padded, as is done by Linux
|
||||
* drivers; requested by Juergen Schimmer.
|
||||
*/
|
||||
#define DLT_IEEE802_15_4_LINUX 191
|
||||
#define DLT_IEEE802_15_4_LINUX 191
|
||||
|
||||
/*
|
||||
* Per Packet Information encapsulated packets.
|
||||
* DLT_ requested by Gianluca Varenni <gianluca.varenni@cacetech.com>.
|
||||
*/
|
||||
#define DLT_PPI 192
|
||||
#define DLT_PPI 192
|
||||
|
||||
/*
|
||||
* Header for 802.16 MAC Common Part Sublayer plus a radiotap radio header;
|
||||
* requested by Charles Clancy.
|
||||
*/
|
||||
#define DLT_IEEE802_16_MAC_CPS_RADIO 193
|
||||
#define DLT_IEEE802_16_MAC_CPS_RADIO 193
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* The DLT_ is used for internal communication with a
|
||||
* integrated service module (ISM).
|
||||
*/
|
||||
@ -698,38 +698,38 @@ struct bpf_version {
|
||||
* IEEE 802.15.4, exactly as it appears in the spec (no padding, no
|
||||
* nothing); requested by Mikko Saarnivala <mikko.saarnivala@sensinode.com>.
|
||||
*/
|
||||
#define DLT_IEEE802_15_4 195
|
||||
#define DLT_IEEE802_15_4 195
|
||||
|
||||
/*
|
||||
* Various link-layer types, with a pseudo-header, for SITA
|
||||
* (http://www.sita.aero/); requested by Fulko Hew (fulko.hew@gmail.com).
|
||||
*/
|
||||
#define DLT_SITA 196
|
||||
#define DLT_SITA 196
|
||||
|
||||
/*
|
||||
* Various link-layer types, with a pseudo-header, for Endace DAG cards;
|
||||
* encapsulates Endace ERF records. Requested by Stephen Donnelly
|
||||
* <stephen@endace.com>.
|
||||
*/
|
||||
#define DLT_ERF 197
|
||||
#define DLT_ERF 197
|
||||
|
||||
/*
|
||||
* Special header prepended to Ethernet packets when capturing from a
|
||||
* u10 Networks board. Requested by Phil Mulholland
|
||||
* <phil@u10networks.com>.
|
||||
*/
|
||||
#define DLT_RAIF1 198
|
||||
#define DLT_RAIF1 198
|
||||
|
||||
/*
|
||||
* IPMB packet for IPMI, beginning with the I2C slave address, followed
|
||||
* by the netFn and LUN, etc.. Requested by Chanthy Toeung
|
||||
* <chanthy.toeung@ca.kontron.com>.
|
||||
*/
|
||||
#define DLT_IPMB 199
|
||||
#define DLT_IPMB 199
|
||||
|
||||
/*
|
||||
* Juniper-private data link type, as per request from
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* Hannes Gredler <hannes@juniper.net>.
|
||||
* The DLT_ is used for capturing data on a secure tunnel interface.
|
||||
*/
|
||||
#define DLT_JUNIPER_ST 200
|
||||
@ -738,23 +738,23 @@ struct bpf_version {
|
||||
* Bluetooth HCI UART transport layer (part H:4), with pseudo-header
|
||||
* that includes direction information; requested by Paolo Abeni.
|
||||
*/
|
||||
#define DLT_BLUETOOTH_HCI_H4_WITH_PHDR 201
|
||||
#define DLT_BLUETOOTH_HCI_H4_WITH_PHDR 201
|
||||
|
||||
/*
|
||||
* AX.25 packet with a 1-byte KISS header; see
|
||||
*
|
||||
* http://www.ax25.net/kiss.htm
|
||||
* http://www.ax25.net/kiss.htm
|
||||
*
|
||||
* as per Richard Stearn <richard@rns-stearn.demon.co.uk>.
|
||||
*/
|
||||
#define DLT_AX25_KISS 202
|
||||
#define DLT_AX25_KISS 202
|
||||
|
||||
/*
|
||||
* LAPD packets from an ISDN channel, starting with the address field,
|
||||
* with no pseudo-header.
|
||||
* Requested by Varuna De Silva <varunax@gmail.com>.
|
||||
*/
|
||||
#define DLT_LAPD 203
|
||||
#define DLT_LAPD 203
|
||||
|
||||
/*
|
||||
* Variants of various link-layer headers, with a one-byte direction
|
||||
@ -762,10 +762,10 @@ struct bpf_version {
|
||||
* non-zero (any non-zero value) means "sent by this host" - as per
|
||||
* Will Barker <w.barker@zen.co.uk>.
|
||||
*/
|
||||
#define DLT_PPP_WITH_DIR 204 /* PPP - don't confuse with DLT_PPP_WITH_DIRECTION */
|
||||
#define DLT_C_HDLC_WITH_DIR 205 /* Cisco HDLC */
|
||||
#define DLT_FRELAY_WITH_DIR 206 /* Frame Relay */
|
||||
#define DLT_LAPB_WITH_DIR 207 /* LAPB */
|
||||
#define DLT_PPP_WITH_DIR 204 /* PPP - don't confuse with DLT_PPP_WITH_DIRECTION */
|
||||
#define DLT_C_HDLC_WITH_DIR 205 /* Cisco HDLC */
|
||||
#define DLT_FRELAY_WITH_DIR 206 /* Frame Relay */
|
||||
#define DLT_LAPB_WITH_DIR 207 /* LAPB */
|
||||
|
||||
/*
|
||||
* 208 is reserved for an as-yet-unspecified proprietary link-layer
|
||||
@ -776,39 +776,39 @@ struct bpf_version {
|
||||
* IPMB with a Linux-specific pseudo-header; as requested by Alexey Neyman
|
||||
* <avn@pigeonpoint.com>.
|
||||
*/
|
||||
#define DLT_IPMB_LINUX 209
|
||||
#define DLT_IPMB_LINUX 209
|
||||
|
||||
/*
|
||||
* FlexRay automotive bus - http://www.flexray.com/ - as requested
|
||||
* by Hannes Kaelber <hannes.kaelber@x2e.de>.
|
||||
*/
|
||||
#define DLT_FLEXRAY 210
|
||||
#define DLT_FLEXRAY 210
|
||||
|
||||
/*
|
||||
* Media Oriented Systems Transport (MOST) bus for multimedia
|
||||
* transport - http://www.mostcooperation.com/ - as requested
|
||||
* by Hannes Kaelber <hannes.kaelber@x2e.de>.
|
||||
*/
|
||||
#define DLT_MOST 211
|
||||
#define DLT_MOST 211
|
||||
|
||||
/*
|
||||
* Local Interconnect Network (LIN) bus for vehicle networks -
|
||||
* http://www.lin-subbus.org/ - as requested by Hannes Kaelber
|
||||
* <hannes.kaelber@x2e.de>.
|
||||
*/
|
||||
#define DLT_LIN 212
|
||||
#define DLT_LIN 212
|
||||
|
||||
/*
|
||||
* X2E-private data link type used for serial line capture,
|
||||
* as requested by Hannes Kaelber <hannes.kaelber@x2e.de>.
|
||||
*/
|
||||
#define DLT_X2E_SERIAL 213
|
||||
#define DLT_X2E_SERIAL 213
|
||||
|
||||
/*
|
||||
* X2E-private data link type used for the Xoraya data logger
|
||||
* family, as requested by Hannes Kaelber <hannes.kaelber@x2e.de>.
|
||||
*/
|
||||
#define DLT_X2E_XORAYA 214
|
||||
#define DLT_X2E_XORAYA 214
|
||||
|
||||
/*
|
||||
* IEEE 802.15.4, exactly as it appears in the spec (no padding, no
|
||||
@ -819,7 +819,7 @@ struct bpf_version {
|
||||
*
|
||||
* Requested by Max Filippov <jcmvbkbc@gmail.com>.
|
||||
*/
|
||||
#define DLT_IEEE802_15_4_NONASK_PHY 215
|
||||
#define DLT_IEEE802_15_4_NONASK_PHY 215
|
||||
|
||||
|
||||
/*
|
||||
@ -827,7 +827,7 @@ struct bpf_version {
|
||||
* a member of that class. A class value of 0 indicates a regular
|
||||
* DLT_/LINKTYPE_ value.
|
||||
*/
|
||||
#define DLT_CLASS(x) ((x) & 0x03ff0000)
|
||||
#define DLT_CLASS(x) ((x) & 0x03ff0000)
|
||||
|
||||
/*
|
||||
* NetBSD-specific generic "raw" link type. The class value indicates
|
||||
@ -836,10 +836,10 @@ struct bpf_version {
|
||||
* do not assume that they correspond to AF_ values for your operating
|
||||
* system.
|
||||
*/
|
||||
#define DLT_CLASS_NETBSD_RAWAF 0x02240000
|
||||
#define DLT_NETBSD_RAWAF(af) (DLT_CLASS_NETBSD_RAWAF | (af))
|
||||
#define DLT_NETBSD_RAWAF_AF(x) ((x) & 0x0000ffff)
|
||||
#define DLT_IS_NETBSD_RAWAF(x) (DLT_CLASS(x) == DLT_CLASS_NETBSD_RAWAF)
|
||||
#define DLT_CLASS_NETBSD_RAWAF 0x02240000
|
||||
#define DLT_NETBSD_RAWAF(af) (DLT_CLASS_NETBSD_RAWAF | (af))
|
||||
#define DLT_NETBSD_RAWAF_AF(x) ((x) & 0x0000ffff)
|
||||
#define DLT_IS_NETBSD_RAWAF(x) (DLT_CLASS(x) == DLT_CLASS_NETBSD_RAWAF)
|
||||
|
||||
|
||||
/*
|
||||
@ -847,64 +847,64 @@ struct bpf_version {
|
||||
*/
|
||||
/* instruction classes */
|
||||
#define BPF_CLASS(code) ((code) & 0x07)
|
||||
#define BPF_LD 0x00
|
||||
#define BPF_LDX 0x01
|
||||
#define BPF_ST 0x02
|
||||
#define BPF_STX 0x03
|
||||
#define BPF_ALU 0x04
|
||||
#define BPF_JMP 0x05
|
||||
#define BPF_RET 0x06
|
||||
#define BPF_MISC 0x07
|
||||
#define BPF_LD 0x00
|
||||
#define BPF_LDX 0x01
|
||||
#define BPF_ST 0x02
|
||||
#define BPF_STX 0x03
|
||||
#define BPF_ALU 0x04
|
||||
#define BPF_JMP 0x05
|
||||
#define BPF_RET 0x06
|
||||
#define BPF_MISC 0x07
|
||||
|
||||
/* ld/ldx fields */
|
||||
#define BPF_SIZE(code) ((code) & 0x18)
|
||||
#define BPF_W 0x00
|
||||
#define BPF_H 0x08
|
||||
#define BPF_B 0x10
|
||||
#define BPF_MODE(code) ((code) & 0xe0)
|
||||
#define BPF_IMM 0x00
|
||||
#define BPF_ABS 0x20
|
||||
#define BPF_IND 0x40
|
||||
#define BPF_MEM 0x60
|
||||
#define BPF_LEN 0x80
|
||||
#define BPF_MSH 0xa0
|
||||
#define BPF_SIZE(code) ((code) & 0x18)
|
||||
#define BPF_W 0x00
|
||||
#define BPF_H 0x08
|
||||
#define BPF_B 0x10
|
||||
#define BPF_MODE(code) ((code) & 0xe0)
|
||||
#define BPF_IMM 0x00
|
||||
#define BPF_ABS 0x20
|
||||
#define BPF_IND 0x40
|
||||
#define BPF_MEM 0x60
|
||||
#define BPF_LEN 0x80
|
||||
#define BPF_MSH 0xa0
|
||||
|
||||
/* alu/jmp fields */
|
||||
#define BPF_OP(code) ((code) & 0xf0)
|
||||
#define BPF_ADD 0x00
|
||||
#define BPF_SUB 0x10
|
||||
#define BPF_MUL 0x20
|
||||
#define BPF_DIV 0x30
|
||||
#define BPF_OR 0x40
|
||||
#define BPF_AND 0x50
|
||||
#define BPF_LSH 0x60
|
||||
#define BPF_RSH 0x70
|
||||
#define BPF_NEG 0x80
|
||||
#define BPF_JA 0x00
|
||||
#define BPF_JEQ 0x10
|
||||
#define BPF_JGT 0x20
|
||||
#define BPF_JGE 0x30
|
||||
#define BPF_JSET 0x40
|
||||
#define BPF_SRC(code) ((code) & 0x08)
|
||||
#define BPF_K 0x00
|
||||
#define BPF_X 0x08
|
||||
#define BPF_OP(code) ((code) & 0xf0)
|
||||
#define BPF_ADD 0x00
|
||||
#define BPF_SUB 0x10
|
||||
#define BPF_MUL 0x20
|
||||
#define BPF_DIV 0x30
|
||||
#define BPF_OR 0x40
|
||||
#define BPF_AND 0x50
|
||||
#define BPF_LSH 0x60
|
||||
#define BPF_RSH 0x70
|
||||
#define BPF_NEG 0x80
|
||||
#define BPF_JA 0x00
|
||||
#define BPF_JEQ 0x10
|
||||
#define BPF_JGT 0x20
|
||||
#define BPF_JGE 0x30
|
||||
#define BPF_JSET 0x40
|
||||
#define BPF_SRC(code) ((code) & 0x08)
|
||||
#define BPF_K 0x00
|
||||
#define BPF_X 0x08
|
||||
|
||||
/* ret - BPF_K and BPF_X also apply */
|
||||
#define BPF_RVAL(code) ((code) & 0x18)
|
||||
#define BPF_A 0x10
|
||||
#define BPF_RVAL(code) ((code) & 0x18)
|
||||
#define BPF_A 0x10
|
||||
|
||||
/* misc */
|
||||
#define BPF_MISCOP(code) ((code) & 0xf8)
|
||||
#define BPF_TAX 0x00
|
||||
#define BPF_TXA 0x80
|
||||
#define BPF_TAX 0x00
|
||||
#define BPF_TXA 0x80
|
||||
|
||||
/*
|
||||
* The instruction data structure.
|
||||
*/
|
||||
struct bpf_insn {
|
||||
u_short code;
|
||||
u_char jt;
|
||||
u_char jf;
|
||||
u_short code;
|
||||
u_char jt;
|
||||
u_char jf;
|
||||
bpf_u_int32 k;
|
||||
};
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* Copyright (c) 1994, 1996
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -12,8 +12,8 @@
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
||||
* to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
@ -54,7 +54,7 @@ struct pcap_etherent {
|
||||
#ifndef PCAP_ETHERS_FILE
|
||||
#define PCAP_ETHERS_FILE "/etc/ethers"
|
||||
#endif
|
||||
struct pcap_etherent *pcap_next_etherent(FILE *);
|
||||
struct pcap_etherent *pcap_next_etherent(FILE *);
|
||||
u_char *pcap_ether_hostton(const char*);
|
||||
u_char *pcap_ether_aton(const char *);
|
||||
|
||||
@ -64,23 +64,23 @@ struct addrinfo *pcap_nametoaddrinfo(const char *);
|
||||
#endif
|
||||
bpf_u_int32 pcap_nametonetaddr(const char *);
|
||||
|
||||
int pcap_nametoport(const char *, int *, int *);
|
||||
int pcap_nametoportrange(const char *, int *, int *, int *);
|
||||
int pcap_nametoproto(const char *);
|
||||
int pcap_nametoeproto(const char *);
|
||||
int pcap_nametollc(const char *);
|
||||
int pcap_nametoport(const char *, int *, int *);
|
||||
int pcap_nametoportrange(const char *, int *, int *, int *);
|
||||
int pcap_nametoproto(const char *);
|
||||
int pcap_nametoeproto(const char *);
|
||||
int pcap_nametollc(const char *);
|
||||
/*
|
||||
* If a protocol is unknown, PROTO_UNDEF is returned.
|
||||
* Also, pcap_nametoport() returns the protocol along with the port number.
|
||||
* If there are ambiguous entried in /etc/services (i.e. domain
|
||||
* can be either tcp or udp) PROTO_UNDEF is returned.
|
||||
*/
|
||||
#define PROTO_UNDEF -1
|
||||
#define PROTO_UNDEF -1
|
||||
|
||||
/* XXX move these to pcap-int.h? */
|
||||
int __pcap_atodn(const char *, bpf_u_int32 *);
|
||||
int __pcap_atoin(const char *, bpf_u_int32 *);
|
||||
u_short __pcap_nametodnaddr(const char *);
|
||||
u_short __pcap_nametodnaddr(const char *);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -1,7 +1,7 @@
|
||||
/* -*- Mode: c; tab-width: 8; indent-tabs-mode: 1; c-basic-offset: 8; -*- */
|
||||
/*
|
||||
* Copyright (c) 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -13,8 +13,8 @@
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* This product includes software developed by the Computer Systems
|
||||
* Engineering Group at Lawrence Berkeley Laboratory.
|
||||
* 4. Neither the name of the University nor of the Laboratory may be used
|
||||
* to endorse or promote products derived from this software without
|
||||
* specific prior written permission.
|
||||
@ -38,13 +38,13 @@
|
||||
#define lib_pcap_pcap_h
|
||||
|
||||
#if defined(WIN32)
|
||||
#include <pcap-stdinc.h>
|
||||
#include <pcap-stdinc.h>
|
||||
#elif defined(MSDOS)
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h> /* u_int, u_char etc. */
|
||||
#include <sys/types.h>
|
||||
#include <sys/socket.h> /* u_int, u_char etc. */
|
||||
#else /* UN*X */
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/time.h>
|
||||
#endif /* WIN32/MSDOS/UN*X */
|
||||
|
||||
#ifndef PCAP_DONT_INCLUDE_PCAP_BPF_H
|
||||
@ -80,8 +80,8 @@ extern "C" {
|
||||
* predates the bpf typedefs for 64-bit support.
|
||||
*/
|
||||
#if BPF_RELEASE - 0 < 199406
|
||||
typedef int bpf_int32;
|
||||
typedef u_int bpf_u_int32;
|
||||
typedef int bpf_int32;
|
||||
typedef u_int bpf_u_int32;
|
||||
#endif
|
||||
|
||||
typedef struct pcap pcap_t;
|
||||
@ -105,23 +105,23 @@ typedef struct pcap_addr pcap_addr_t;
|
||||
*
|
||||
* Instead:
|
||||
*
|
||||
* introduce a new structure for the new format, if the layout
|
||||
* of the structure changed;
|
||||
* introduce a new structure for the new format, if the layout
|
||||
* of the structure changed;
|
||||
*
|
||||
* send mail to "tcpdump-workers@lists.tcpdump.org", requesting
|
||||
* a new magic number for your new capture file format, and, when
|
||||
* you get the new magic number, put it in "savefile.c";
|
||||
* send mail to "tcpdump-workers@lists.tcpdump.org", requesting
|
||||
* a new magic number for your new capture file format, and, when
|
||||
* you get the new magic number, put it in "savefile.c";
|
||||
*
|
||||
* use that magic number for save files with the changed file
|
||||
* header;
|
||||
* use that magic number for save files with the changed file
|
||||
* header;
|
||||
*
|
||||
* make the code in "savefile.c" capable of reading files with
|
||||
* the old file header as well as files with the new file header
|
||||
* (using the magic number to determine the header format).
|
||||
* make the code in "savefile.c" capable of reading files with
|
||||
* the old file header as well as files with the new file header
|
||||
* (using the magic number to determine the header format).
|
||||
*
|
||||
* Then supply the changes as a patch at
|
||||
*
|
||||
* http://sourceforge.net/projects/libpcap/
|
||||
* http://sourceforge.net/projects/libpcap/
|
||||
*
|
||||
* so that future versions of libpcap and programs that use it (such as
|
||||
* tcpdump) will be able to read your new capture file format.
|
||||
@ -130,26 +130,26 @@ struct pcap_file_header {
|
||||
bpf_u_int32 magic;
|
||||
u_short version_major;
|
||||
u_short version_minor;
|
||||
bpf_int32 thiszone; /* gmt to local correction */
|
||||
bpf_u_int32 sigfigs; /* accuracy of timestamps */
|
||||
bpf_u_int32 snaplen; /* max length saved portion of each pkt */
|
||||
bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */
|
||||
bpf_int32 thiszone; /* gmt to local correction */
|
||||
bpf_u_int32 sigfigs; /* accuracy of timestamps */
|
||||
bpf_u_int32 snaplen; /* max length saved portion of each pkt */
|
||||
bpf_u_int32 linktype; /* data link type (LINKTYPE_*) */
|
||||
};
|
||||
|
||||
/*
|
||||
* Macros for the value returned by pcap_datalink_ext().
|
||||
*
|
||||
*
|
||||
* If LT_FCS_LENGTH_PRESENT(x) is true, the LT_FCS_LENGTH(x) macro
|
||||
* gives the FCS length of packets in the capture.
|
||||
*/
|
||||
#define LT_FCS_LENGTH_PRESENT(x) ((x) & 0x04000000)
|
||||
#define LT_FCS_LENGTH(x) (((x) & 0xF0000000) >> 28)
|
||||
#define LT_FCS_DATALINK_EXT(x) ((((x) & 0xF) << 28) | 0x04000000)
|
||||
#define LT_FCS_LENGTH_PRESENT(x) ((x) & 0x04000000)
|
||||
#define LT_FCS_LENGTH(x) (((x) & 0xF0000000) >> 28)
|
||||
#define LT_FCS_DATALINK_EXT(x) ((((x) & 0xF) << 28) | 0x04000000)
|
||||
|
||||
typedef enum {
|
||||
PCAP_D_INOUT = 0,
|
||||
PCAP_D_IN,
|
||||
PCAP_D_OUT
|
||||
PCAP_D_INOUT = 0,
|
||||
PCAP_D_IN,
|
||||
PCAP_D_OUT
|
||||
} pcap_direction_t;
|
||||
|
||||
/*
|
||||
@ -165,22 +165,22 @@ typedef enum {
|
||||
* that's not what the underlying packet capture mechanism supplies.
|
||||
*/
|
||||
struct pcap_pkthdr {
|
||||
struct timeval ts; /* time stamp */
|
||||
bpf_u_int32 caplen; /* length of portion present */
|
||||
bpf_u_int32 len; /* length this packet (off wire) */
|
||||
struct timeval ts; /* time stamp */
|
||||
bpf_u_int32 caplen; /* length of portion present */
|
||||
bpf_u_int32 len; /* length this packet (off wire) */
|
||||
};
|
||||
|
||||
/*
|
||||
* As returned by the pcap_stats()
|
||||
*/
|
||||
struct pcap_stat {
|
||||
u_int ps_recv; /* number of packets received */
|
||||
u_int ps_drop; /* number of packets dropped */
|
||||
u_int ps_ifdrop; /* drops by interface XXX not yet supported */
|
||||
u_int ps_recv; /* number of packets received */
|
||||
u_int ps_drop; /* number of packets dropped */
|
||||
u_int ps_ifdrop; /* drops by interface XXX not yet supported */
|
||||
#ifdef HAVE_REMOTE
|
||||
u_int ps_capt; /* number of packets that are received by the application; please get rid off the Win32 ifdef */
|
||||
u_int ps_sent; /* number of packets sent by the server on the network */
|
||||
u_int ps_netdrop; /* number of packets lost on the network */
|
||||
u_int ps_capt; /* number of packets that are received by the application; please get rid off the Win32 ifdef */
|
||||
u_int ps_sent; /* number of packets sent by the server on the network */
|
||||
u_int ps_netdrop; /* number of packets lost on the network */
|
||||
#endif /* HAVE_REMOTE */
|
||||
};
|
||||
|
||||
@ -189,32 +189,32 @@ struct pcap_stat {
|
||||
* As returned by the pcap_stats_ex()
|
||||
*/
|
||||
struct pcap_stat_ex {
|
||||
u_long rx_packets; /* total packets received */
|
||||
u_long tx_packets; /* total packets transmitted */
|
||||
u_long rx_bytes; /* total bytes received */
|
||||
u_long tx_bytes; /* total bytes transmitted */
|
||||
u_long rx_errors; /* bad packets received */
|
||||
u_long tx_errors; /* packet transmit problems */
|
||||
u_long rx_dropped; /* no space in Rx buffers */
|
||||
u_long tx_dropped; /* no space available for Tx */
|
||||
u_long multicast; /* multicast packets received */
|
||||
u_long collisions;
|
||||
u_long rx_packets; /* total packets received */
|
||||
u_long tx_packets; /* total packets transmitted */
|
||||
u_long rx_bytes; /* total bytes received */
|
||||
u_long tx_bytes; /* total bytes transmitted */
|
||||
u_long rx_errors; /* bad packets received */
|
||||
u_long tx_errors; /* packet transmit problems */
|
||||
u_long rx_dropped; /* no space in Rx buffers */
|
||||
u_long tx_dropped; /* no space available for Tx */
|
||||
u_long multicast; /* multicast packets received */
|
||||
u_long collisions;
|
||||
|
||||
/* detailed rx_errors: */
|
||||
u_long rx_length_errors;
|
||||
u_long rx_over_errors; /* receiver ring buff overflow */
|
||||
u_long rx_crc_errors; /* recv'd pkt with crc error */
|
||||
u_long rx_frame_errors; /* recv'd frame alignment error */
|
||||
u_long rx_fifo_errors; /* recv'r fifo overrun */
|
||||
u_long rx_missed_errors; /* recv'r missed packet */
|
||||
/* detailed rx_errors: */
|
||||
u_long rx_length_errors;
|
||||
u_long rx_over_errors; /* receiver ring buff overflow */
|
||||
u_long rx_crc_errors; /* recv'd pkt with crc error */
|
||||
u_long rx_frame_errors; /* recv'd frame alignment error */
|
||||
u_long rx_fifo_errors; /* recv'r fifo overrun */
|
||||
u_long rx_missed_errors; /* recv'r missed packet */
|
||||
|
||||
/* detailed tx_errors */
|
||||
u_long tx_aborted_errors;
|
||||
u_long tx_carrier_errors;
|
||||
u_long tx_fifo_errors;
|
||||
u_long tx_heartbeat_errors;
|
||||
u_long tx_window_errors;
|
||||
};
|
||||
/* detailed tx_errors */
|
||||
u_long tx_aborted_errors;
|
||||
u_long tx_carrier_errors;
|
||||
u_long tx_fifo_errors;
|
||||
u_long tx_heartbeat_errors;
|
||||
u_long tx_window_errors;
|
||||
};
|
||||
#endif
|
||||
|
||||
/*
|
||||
@ -222,27 +222,27 @@ struct pcap_stat_ex {
|
||||
*/
|
||||
struct pcap_if {
|
||||
struct pcap_if *next;
|
||||
char *name; /* name to hand to "pcap_open_live()" */
|
||||
char *description; /* textual description of interface, or NULL */
|
||||
char *name; /* name to hand to "pcap_open_live()" */
|
||||
char *description; /* textual description of interface, or NULL */
|
||||
struct pcap_addr *addresses;
|
||||
bpf_u_int32 flags; /* PCAP_IF_ interface flags */
|
||||
bpf_u_int32 flags; /* PCAP_IF_ interface flags */
|
||||
};
|
||||
|
||||
#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */
|
||||
#define PCAP_IF_LOOPBACK 0x00000001 /* interface is loopback */
|
||||
|
||||
/*
|
||||
* Representation of an interface address.
|
||||
*/
|
||||
struct pcap_addr {
|
||||
struct pcap_addr *next;
|
||||
struct sockaddr *addr; /* address */
|
||||
struct sockaddr *netmask; /* netmask for that address */
|
||||
struct sockaddr *broadaddr; /* broadcast address for that address */
|
||||
struct sockaddr *dstaddr; /* P2P destination address for that address */
|
||||
struct sockaddr *addr; /* address */
|
||||
struct sockaddr *netmask; /* netmask for that address */
|
||||
struct sockaddr *broadaddr; /* broadcast address for that address */
|
||||
struct sockaddr *dstaddr; /* P2P destination address for that address */
|
||||
};
|
||||
|
||||
typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
const u_char *);
|
||||
|
||||
/*
|
||||
* Error codes for the pcap API.
|
||||
@ -250,39 +250,39 @@ typedef void (*pcap_handler)(u_char *, const struct pcap_pkthdr *,
|
||||
* failure of a call that returns these codes by checking for a
|
||||
* negative value.
|
||||
*/
|
||||
#define PCAP_ERROR -1 /* generic error code */
|
||||
#define PCAP_ERROR_BREAK -2 /* loop terminated by pcap_breakloop */
|
||||
#define PCAP_ERROR_NOT_ACTIVATED -3 /* the capture needs to be activated */
|
||||
#define PCAP_ERROR_ACTIVATED -4 /* the operation can't be performed on already activated captures */
|
||||
#define PCAP_ERROR_NO_SUCH_DEVICE -5 /* no such device exists */
|
||||
#define PCAP_ERROR_RFMON_NOTSUP -6 /* this device doesn't support rfmon (monitor) mode */
|
||||
#define PCAP_ERROR_NOT_RFMON -7 /* operation supported only in monitor mode */
|
||||
#define PCAP_ERROR_PERM_DENIED -8 /* no permission to open the device */
|
||||
#define PCAP_ERROR_IFACE_NOT_UP -9 /* interface isn't up */
|
||||
#define PCAP_ERROR -1 /* generic error code */
|
||||
#define PCAP_ERROR_BREAK -2 /* loop terminated by pcap_breakloop */
|
||||
#define PCAP_ERROR_NOT_ACTIVATED -3 /* the capture needs to be activated */
|
||||
#define PCAP_ERROR_ACTIVATED -4 /* the operation can't be performed on already activated captures */
|
||||
#define PCAP_ERROR_NO_SUCH_DEVICE -5 /* no such device exists */
|
||||
#define PCAP_ERROR_RFMON_NOTSUP -6 /* this device doesn't support rfmon (monitor) mode */
|
||||
#define PCAP_ERROR_NOT_RFMON -7 /* operation supported only in monitor mode */
|
||||
#define PCAP_ERROR_PERM_DENIED -8 /* no permission to open the device */
|
||||
#define PCAP_ERROR_IFACE_NOT_UP -9 /* interface isn't up */
|
||||
|
||||
/*
|
||||
* Warning codes for the pcap API.
|
||||
* These will all be positive and non-zero, so they won't look like
|
||||
* errors.
|
||||
*/
|
||||
#define PCAP_WARNING 1 /* generic warning code */
|
||||
#define PCAP_WARNING_PROMISC_NOTSUP 2 /* this device doesn't support promiscuous mode */
|
||||
#define PCAP_WARNING 1 /* generic warning code */
|
||||
#define PCAP_WARNING_PROMISC_NOTSUP 2 /* this device doesn't support promiscuous mode */
|
||||
|
||||
char *pcap_lookupdev(char *);
|
||||
int pcap_lookupnet(const char *, bpf_u_int32 *, bpf_u_int32 *, char *);
|
||||
char *pcap_lookupdev(char *);
|
||||
int pcap_lookupnet(const char *, bpf_u_int32 *, bpf_u_int32 *, char *);
|
||||
|
||||
pcap_t *pcap_create(const char *, char *);
|
||||
int pcap_set_snaplen(pcap_t *, int);
|
||||
int pcap_set_promisc(pcap_t *, int);
|
||||
int pcap_can_set_rfmon(pcap_t *);
|
||||
int pcap_set_rfmon(pcap_t *, int);
|
||||
int pcap_set_timeout(pcap_t *, int);
|
||||
int pcap_set_buffer_size(pcap_t *, int);
|
||||
int pcap_activate(pcap_t *);
|
||||
pcap_t *pcap_create(const char *, char *);
|
||||
int pcap_set_snaplen(pcap_t *, int);
|
||||
int pcap_set_promisc(pcap_t *, int);
|
||||
int pcap_can_set_rfmon(pcap_t *);
|
||||
int pcap_set_rfmon(pcap_t *, int);
|
||||
int pcap_set_timeout(pcap_t *, int);
|
||||
int pcap_set_buffer_size(pcap_t *, int);
|
||||
int pcap_activate(pcap_t *);
|
||||
|
||||
pcap_t *pcap_open_live(const char *, int, int, int, char *);
|
||||
pcap_t *pcap_open_dead(int, int);
|
||||
pcap_t *pcap_open_offline(const char *, char *);
|
||||
pcap_t *pcap_open_live(const char *, int, int, int, char *);
|
||||
pcap_t *pcap_open_dead(int, int);
|
||||
pcap_t *pcap_open_offline(const char *, char *);
|
||||
#if defined(WIN32)
|
||||
pcap_t *pcap_hopen_offline(intptr_t, char *);
|
||||
#if !defined(LIBPCAP_EXPORTS)
|
||||
@ -292,69 +292,69 @@ pcap_t *pcap_hopen_offline(intptr_t, char *);
|
||||
static pcap_t *pcap_fopen_offline(FILE *, char *);
|
||||
#endif
|
||||
#else /*WIN32*/
|
||||
pcap_t *pcap_fopen_offline(FILE *, char *);
|
||||
pcap_t *pcap_fopen_offline(FILE *, char *);
|
||||
#endif /*WIN32*/
|
||||
|
||||
void pcap_close(pcap_t *);
|
||||
int pcap_loop(pcap_t *, int, pcap_handler, u_char *);
|
||||
int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *);
|
||||
void pcap_close(pcap_t *);
|
||||
int pcap_loop(pcap_t *, int, pcap_handler, u_char *);
|
||||
int pcap_dispatch(pcap_t *, int, pcap_handler, u_char *);
|
||||
const u_char*
|
||||
pcap_next(pcap_t *, struct pcap_pkthdr *);
|
||||
int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);
|
||||
void pcap_breakloop(pcap_t *);
|
||||
int pcap_stats(pcap_t *, struct pcap_stat *);
|
||||
int pcap_setfilter(pcap_t *, struct bpf_program *);
|
||||
int pcap_setdirection(pcap_t *, pcap_direction_t);
|
||||
int pcap_getnonblock(pcap_t *, char *);
|
||||
int pcap_setnonblock(pcap_t *, int, char *);
|
||||
int pcap_inject(pcap_t *, const void *, size_t);
|
||||
int pcap_sendpacket(pcap_t *, const u_char *, int);
|
||||
int pcap_next_ex(pcap_t *, struct pcap_pkthdr **, const u_char **);
|
||||
void pcap_breakloop(pcap_t *);
|
||||
int pcap_stats(pcap_t *, struct pcap_stat *);
|
||||
int pcap_setfilter(pcap_t *, struct bpf_program *);
|
||||
int pcap_setdirection(pcap_t *, pcap_direction_t);
|
||||
int pcap_getnonblock(pcap_t *, char *);
|
||||
int pcap_setnonblock(pcap_t *, int, char *);
|
||||
int pcap_inject(pcap_t *, const void *, size_t);
|
||||
int pcap_sendpacket(pcap_t *, const u_char *, int);
|
||||
const char *pcap_statustostr(int);
|
||||
const char *pcap_strerror(int);
|
||||
char *pcap_geterr(pcap_t *);
|
||||
void pcap_perror(pcap_t *, char *);
|
||||
int pcap_compile(pcap_t *, struct bpf_program *, const char *, int,
|
||||
bpf_u_int32);
|
||||
int pcap_compile_nopcap(int, int, struct bpf_program *,
|
||||
const char *, int, bpf_u_int32);
|
||||
void pcap_freecode(struct bpf_program *);
|
||||
int pcap_offline_filter(struct bpf_program *, const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
int pcap_datalink(pcap_t *);
|
||||
int pcap_datalink_ext(pcap_t *);
|
||||
int pcap_list_datalinks(pcap_t *, int **);
|
||||
int pcap_set_datalink(pcap_t *, int);
|
||||
void pcap_free_datalinks(int *);
|
||||
int pcap_datalink_name_to_val(const char *);
|
||||
char *pcap_geterr(pcap_t *);
|
||||
void pcap_perror(pcap_t *, char *);
|
||||
int pcap_compile(pcap_t *, struct bpf_program *, const char *, int,
|
||||
bpf_u_int32);
|
||||
int pcap_compile_nopcap(int, int, struct bpf_program *,
|
||||
const char *, int, bpf_u_int32);
|
||||
void pcap_freecode(struct bpf_program *);
|
||||
int pcap_offline_filter(struct bpf_program *, const struct pcap_pkthdr *,
|
||||
const u_char *);
|
||||
int pcap_datalink(pcap_t *);
|
||||
int pcap_datalink_ext(pcap_t *);
|
||||
int pcap_list_datalinks(pcap_t *, int **);
|
||||
int pcap_set_datalink(pcap_t *, int);
|
||||
void pcap_free_datalinks(int *);
|
||||
int pcap_datalink_name_to_val(const char *);
|
||||
const char *pcap_datalink_val_to_name(int);
|
||||
const char *pcap_datalink_val_to_description(int);
|
||||
int pcap_snapshot(pcap_t *);
|
||||
int pcap_is_swapped(pcap_t *);
|
||||
int pcap_major_version(pcap_t *);
|
||||
int pcap_minor_version(pcap_t *);
|
||||
int pcap_snapshot(pcap_t *);
|
||||
int pcap_is_swapped(pcap_t *);
|
||||
int pcap_major_version(pcap_t *);
|
||||
int pcap_minor_version(pcap_t *);
|
||||
|
||||
/* XXX */
|
||||
FILE *pcap_file(pcap_t *);
|
||||
int pcap_fileno(pcap_t *);
|
||||
FILE *pcap_file(pcap_t *);
|
||||
int pcap_fileno(pcap_t *);
|
||||
|
||||
pcap_dumper_t *pcap_dump_open(pcap_t *, const char *);
|
||||
pcap_dumper_t *pcap_dump_fopen(pcap_t *, FILE *fp);
|
||||
FILE *pcap_dump_file(pcap_dumper_t *);
|
||||
long pcap_dump_ftell(pcap_dumper_t *);
|
||||
int pcap_dump_flush(pcap_dumper_t *);
|
||||
void pcap_dump_close(pcap_dumper_t *);
|
||||
void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *);
|
||||
FILE *pcap_dump_file(pcap_dumper_t *);
|
||||
long pcap_dump_ftell(pcap_dumper_t *);
|
||||
int pcap_dump_flush(pcap_dumper_t *);
|
||||
void pcap_dump_close(pcap_dumper_t *);
|
||||
void pcap_dump(u_char *, const struct pcap_pkthdr *, const u_char *);
|
||||
|
||||
int pcap_findalldevs(pcap_if_t **, char *);
|
||||
void pcap_freealldevs(pcap_if_t *);
|
||||
int pcap_findalldevs(pcap_if_t **, char *);
|
||||
void pcap_freealldevs(pcap_if_t *);
|
||||
|
||||
const char *pcap_lib_version(void);
|
||||
|
||||
/* XXX this guy lives in the bpf tree */
|
||||
u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int);
|
||||
int bpf_validate(const struct bpf_insn *f, int len);
|
||||
char *bpf_image(const struct bpf_insn *, int);
|
||||
void bpf_dump(const struct bpf_program *, int);
|
||||
u_int bpf_filter(const struct bpf_insn *, const u_char *, u_int, u_int);
|
||||
int bpf_validate(const struct bpf_insn *f, int len);
|
||||
char *bpf_image(const struct bpf_insn *, int);
|
||||
void bpf_dump(const struct bpf_program *, int);
|
||||
|
||||
#if defined(WIN32)
|
||||
|
||||
@ -391,14 +391,14 @@ u_long pcap_mac_packets (void);
|
||||
* UN*X definitions
|
||||
*/
|
||||
|
||||
int pcap_get_selectable_fd(pcap_t *);
|
||||
int pcap_get_selectable_fd(pcap_t *);
|
||||
|
||||
#endif /* WIN32/MSDOS/UN*X */
|
||||
|
||||
#ifdef HAVE_REMOTE
|
||||
/* Includes most of the public stuff that is needed for the remote capture */
|
||||
#include <remote-ext.h>
|
||||
#endif /* HAVE_REMOTE */
|
||||
#endif /* HAVE_REMOTE */
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*-
|
||||
* Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* This code is derived from the Stanford/CMU enet packet filter,
|
||||
* (net/enet.c) distributed as part of 4.3BSD, and code contributed
|
||||
@ -42,22 +42,22 @@
|
||||
* For captures on Linux cooked sockets, we construct a fake header
|
||||
* that includes:
|
||||
*
|
||||
* a 2-byte "packet type" which is one of:
|
||||
* a 2-byte "packet type" which is one of:
|
||||
*
|
||||
* LINUX_SLL_HOST packet was sent to us
|
||||
* LINUX_SLL_BROADCAST packet was broadcast
|
||||
* LINUX_SLL_MULTICAST packet was multicast
|
||||
* LINUX_SLL_OTHERHOST packet was sent to somebody else
|
||||
* LINUX_SLL_OUTGOING packet was sent *by* us;
|
||||
* LINUX_SLL_HOST packet was sent to us
|
||||
* LINUX_SLL_BROADCAST packet was broadcast
|
||||
* LINUX_SLL_MULTICAST packet was multicast
|
||||
* LINUX_SLL_OTHERHOST packet was sent to somebody else
|
||||
* LINUX_SLL_OUTGOING packet was sent *by* us;
|
||||
*
|
||||
* a 2-byte Ethernet protocol field;
|
||||
* a 2-byte Ethernet protocol field;
|
||||
*
|
||||
* a 2-byte link-layer type;
|
||||
* a 2-byte link-layer type;
|
||||
*
|
||||
* a 2-byte link-layer address length;
|
||||
* a 2-byte link-layer address length;
|
||||
*
|
||||
* an 8-byte source link-layer address, whose actual length is
|
||||
* specified by the previous value.
|
||||
* an 8-byte source link-layer address, whose actual length is
|
||||
* specified by the previous value.
|
||||
*
|
||||
* All fields except for the link-layer address are in network byte order.
|
||||
*
|
||||
@ -79,15 +79,15 @@
|
||||
/*
|
||||
* A DLT_LINUX_SLL fake link-layer header.
|
||||
*/
|
||||
#define SLL_HDR_LEN 16 /* total header length */
|
||||
#define SLL_ADDRLEN 8 /* length of address field */
|
||||
#define SLL_HDR_LEN 16 /* total header length */
|
||||
#define SLL_ADDRLEN 8 /* length of address field */
|
||||
|
||||
struct sll_header {
|
||||
u_int16_t sll_pkttype; /* packet type */
|
||||
u_int16_t sll_hatype; /* link-layer address type */
|
||||
u_int16_t sll_halen; /* link-layer address length */
|
||||
u_int8_t sll_addr[SLL_ADDRLEN]; /* link-layer address */
|
||||
u_int16_t sll_protocol; /* protocol */
|
||||
u_int16_t sll_pkttype; /* packet type */
|
||||
u_int16_t sll_hatype; /* link-layer address type */
|
||||
u_int16_t sll_halen; /* link-layer address length */
|
||||
u_int8_t sll_addr[SLL_ADDRLEN]; /* link-layer address */
|
||||
u_int16_t sll_protocol; /* protocol */
|
||||
};
|
||||
|
||||
/*
|
||||
@ -96,11 +96,11 @@ struct sll_header {
|
||||
* available even on systems other than Linux, and so that they
|
||||
* don't change even if the PACKET_ values change.
|
||||
*/
|
||||
#define LINUX_SLL_HOST 0
|
||||
#define LINUX_SLL_BROADCAST 1
|
||||
#define LINUX_SLL_MULTICAST 2
|
||||
#define LINUX_SLL_OTHERHOST 3
|
||||
#define LINUX_SLL_OUTGOING 4
|
||||
#define LINUX_SLL_HOST 0
|
||||
#define LINUX_SLL_BROADCAST 1
|
||||
#define LINUX_SLL_MULTICAST 2
|
||||
#define LINUX_SLL_OTHERHOST 3
|
||||
#define LINUX_SLL_OUTGOING 4
|
||||
|
||||
/*
|
||||
* The LINUX_SLL_ values for "sll_protocol"; these correspond to the
|
||||
@ -108,22 +108,22 @@ struct sll_header {
|
||||
* available even on systems other than Linux. We assume, for now,
|
||||
* that the ETH_P_ values won't change in Linux; if they do, then:
|
||||
*
|
||||
* if we don't translate them in "pcap-linux.c", capture files
|
||||
* won't necessarily be readable if captured on a system that
|
||||
* defines ETH_P_ values that don't match these values;
|
||||
* if we don't translate them in "pcap-linux.c", capture files
|
||||
* won't necessarily be readable if captured on a system that
|
||||
* defines ETH_P_ values that don't match these values;
|
||||
*
|
||||
* if we do translate them in "pcap-linux.c", that makes life
|
||||
* unpleasant for the BPF code generator, as the values you test
|
||||
* for in the kernel aren't the values that you test for when
|
||||
* reading a capture file, so the fixup code run on BPF programs
|
||||
* handed to the kernel ends up having to do more work.
|
||||
* if we do translate them in "pcap-linux.c", that makes life
|
||||
* unpleasant for the BPF code generator, as the values you test
|
||||
* for in the kernel aren't the values that you test for when
|
||||
* reading a capture file, so the fixup code run on BPF programs
|
||||
* handed to the kernel ends up having to do more work.
|
||||
*
|
||||
* Add other values here as necessary, for handling packet types that
|
||||
* might show up on non-Ethernet, non-802.x networks. (Not all the ones
|
||||
* in the Linux "if_ether.h" will, I suspect, actually show up in
|
||||
* captures.)
|
||||
*/
|
||||
#define LINUX_SLL_P_802_3 0x0001 /* Novell 802.3 frames without 802.2 LLC header */
|
||||
#define LINUX_SLL_P_802_2 0x0004 /* 802.2 frames (not D/I/X Ethernet) */
|
||||
#define LINUX_SLL_P_802_3 0x0001 /* Novell 802.3 frames without 802.2 LLC header */
|
||||
#define LINUX_SLL_P_802_2 0x0004 /* 802.2 frames (not D/I/X Ethernet) */
|
||||
|
||||
#endif
|
||||
|
@ -11,8 +11,8 @@
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* 3. The name of the author may not be used to endorse or promote
|
||||
* products derived from this software without specific prior written
|
||||
* permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
@ -32,11 +32,11 @@
|
||||
*
|
||||
* @(#) $Header: /tcpdump/master/libpcap/pcap/usb.h,v 1.6 2007/09/22 02:06:08 guy Exp $
|
||||
*/
|
||||
|
||||
|
||||
#ifndef _PCAP_USB_STRUCTS_H__
|
||||
#define _PCAP_USB_STRUCTS_H__
|
||||
|
||||
/*
|
||||
/*
|
||||
* possible transfer mode
|
||||
*/
|
||||
#define URB_TRANSFER_IN 0x80
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*-
|
||||
* Copyright (c) 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
@ -37,10 +37,10 @@
|
||||
#define lib_pcap_vlan_h
|
||||
|
||||
struct vlan_tag {
|
||||
u_int16_t vlan_tpid; /* ETH_P_8021Q */
|
||||
u_int16_t vlan_tci; /* VLAN TCI */
|
||||
u_int16_t vlan_tpid; /* ETH_P_8021Q */
|
||||
u_int16_t vlan_tci; /* VLAN TCI */
|
||||
};
|
||||
|
||||
#define VLAN_TAG_LEN 4
|
||||
#define VLAN_TAG_LEN 4
|
||||
|
||||
#endif
|
||||
|
@ -2,32 +2,32 @@
|
||||
* Copyright (c) 2002 - 2003
|
||||
* NetGroup, Politecnico di Torino (Italy)
|
||||
* All rights reserved.
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Politecnico di Torino nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. Neither the name of the Politecnico di Torino nor the names of its
|
||||
* contributors may be used to endorse or promote products derived from
|
||||
* this software without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
||||
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
||||
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
||||
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
|
||||
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
|
||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
|
||||
@ -49,135 +49,135 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
/*!
|
||||
\file remote-ext.h
|
||||
\file remote-ext.h
|
||||
|
||||
The goal of this file it to include most of the new definitions that should be
|
||||
placed into the pcap.h file.
|
||||
The goal of this file it to include most of the new definitions that should be
|
||||
placed into the pcap.h file.
|
||||
|
||||
It includes all new definitions (structures and functions like pcap_open().
|
||||
Some of the functions are not really a remote feature, but, right now,
|
||||
they are placed here.
|
||||
It includes all new definitions (structures and functions like pcap_open().
|
||||
Some of the functions are not really a remote feature, but, right now,
|
||||
they are placed here.
|
||||
*/
|
||||
|
||||
|
||||
|
||||
// All this stuff is public
|
||||
/*! \addtogroup remote_struct
|
||||
\{
|
||||
\{
|
||||
*/
|
||||
|
||||
|
||||
|
||||
|
||||
/*!
|
||||
\brief Defines the maximum buffer size in which address, port, interface names are kept.
|
||||
\brief Defines the maximum buffer size in which address, port, interface names are kept.
|
||||
|
||||
In case the adapter name or such is larger than this value, it is truncated.
|
||||
This is not used by the user; however it must be aware that an hostname / interface
|
||||
name longer than this value will be truncated.
|
||||
In case the adapter name or such is larger than this value, it is truncated.
|
||||
This is not used by the user; however it must be aware that an hostname / interface
|
||||
name longer than this value will be truncated.
|
||||
*/
|
||||
#define PCAP_BUF_SIZE 1024
|
||||
|
||||
|
||||
/*! \addtogroup remote_source_ID
|
||||
\{
|
||||
\{
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
|
||||
This indicates a file, i.e. the user want to open a capture from a local file.
|
||||
This indicates a file, i.e. the user want to open a capture from a local file.
|
||||
*/
|
||||
#define PCAP_SRC_FILE 2
|
||||
/*!
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
|
||||
This indicates a local interface, i.e. the user want to open a capture from
|
||||
a local interface. This does not involve the RPCAP protocol.
|
||||
This indicates a local interface, i.e. the user want to open a capture from
|
||||
a local interface. This does not involve the RPCAP protocol.
|
||||
*/
|
||||
#define PCAP_SRC_IFLOCAL 3
|
||||
/*!
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
\brief Internal representation of the type of source in use (file,
|
||||
remote/local interface).
|
||||
|
||||
This indicates a remote interface, i.e. the user want to open a capture from
|
||||
an interface on a remote host. This does involve the RPCAP protocol.
|
||||
This indicates a remote interface, i.e. the user want to open a capture from
|
||||
an interface on a remote host. This does involve the RPCAP protocol.
|
||||
*/
|
||||
#define PCAP_SRC_IFREMOTE 4
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/
|
||||
|
||||
|
||||
|
||||
/*! \addtogroup remote_source_string
|
||||
|
||||
The formats allowed by the pcap_open() are the following:
|
||||
- file://path_and_filename [opens a local file]
|
||||
- rpcap://devicename [opens the selected device devices available on the local host, without using the RPCAP protocol]
|
||||
- rpcap://host/devicename [opens the selected device available on a remote host]
|
||||
- rpcap://host:port/devicename [opens the selected device available on a remote host, using a non-standard port for RPCAP]
|
||||
- adaptername [to open a local adapter; kept for compability, but it is strongly discouraged]
|
||||
- (NULL) [to open the first local adapter; kept for compability, but it is strongly discouraged]
|
||||
The formats allowed by the pcap_open() are the following:
|
||||
- file://path_and_filename [opens a local file]
|
||||
- rpcap://devicename [opens the selected device devices available on the local host, without using the RPCAP protocol]
|
||||
- rpcap://host/devicename [opens the selected device available on a remote host]
|
||||
- rpcap://host:port/devicename [opens the selected device available on a remote host, using a non-standard port for RPCAP]
|
||||
- adaptername [to open a local adapter; kept for compability, but it is strongly discouraged]
|
||||
- (NULL) [to open the first local adapter; kept for compability, but it is strongly discouraged]
|
||||
|
||||
The formats allowed by the pcap_findalldevs_ex() are the following:
|
||||
- file://folder/ [lists all the files in the given folder]
|
||||
- rpcap:// [lists all local adapters]
|
||||
- rpcap://host:port/ [lists the devices available on a remote host]
|
||||
The formats allowed by the pcap_findalldevs_ex() are the following:
|
||||
- file://folder/ [lists all the files in the given folder]
|
||||
- rpcap:// [lists all local adapters]
|
||||
- rpcap://host:port/ [lists the devices available on a remote host]
|
||||
|
||||
Referring to the 'host' and 'port' paramters, they can be either numeric or literal. Since
|
||||
IPv6 is fully supported, these are the allowed formats:
|
||||
Referring to the 'host' and 'port' paramters, they can be either numeric or literal. Since
|
||||
IPv6 is fully supported, these are the allowed formats:
|
||||
|
||||
- host (literal): e.g. host.foo.bar
|
||||
- host (numeric IPv4): e.g. 10.11.12.13
|
||||
- host (numeric IPv4, IPv6 style): e.g. [10.11.12.13]
|
||||
- host (numeric IPv6): e.g. [1:2:3::4]
|
||||
- port: can be either numeric (e.g. '80') or literal (e.g. 'http')
|
||||
- host (literal): e.g. host.foo.bar
|
||||
- host (numeric IPv4): e.g. 10.11.12.13
|
||||
- host (numeric IPv4, IPv6 style): e.g. [10.11.12.13]
|
||||
- host (numeric IPv6): e.g. [1:2:3::4]
|
||||
- port: can be either numeric (e.g. '80') or literal (e.g. 'http')
|
||||
|
||||
Here you find some allowed examples:
|
||||
- rpcap://host.foo.bar/devicename [everything literal, no port number]
|
||||
- rpcap://host.foo.bar:1234/devicename [everything literal, with port number]
|
||||
- rpcap://10.11.12.13/devicename [IPv4 numeric, no port number]
|
||||
- rpcap://10.11.12.13:1234/devicename [IPv4 numeric, with port number]
|
||||
- rpcap://[10.11.12.13]:1234/devicename [IPv4 numeric with IPv6 format, with port number]
|
||||
- rpcap://[1:2:3::4]/devicename [IPv6 numeric, no port number]
|
||||
- rpcap://[1:2:3::4]:1234/devicename [IPv6 numeric, with port number]
|
||||
- rpcap://[1:2:3::4]:http/devicename [IPv6 numeric, with literal port number]
|
||||
|
||||
\{
|
||||
Here you find some allowed examples:
|
||||
- rpcap://host.foo.bar/devicename [everything literal, no port number]
|
||||
- rpcap://host.foo.bar:1234/devicename [everything literal, with port number]
|
||||
- rpcap://10.11.12.13/devicename [IPv4 numeric, no port number]
|
||||
- rpcap://10.11.12.13:1234/devicename [IPv4 numeric, with port number]
|
||||
- rpcap://[10.11.12.13]:1234/devicename [IPv4 numeric with IPv6 format, with port number]
|
||||
- rpcap://[1:2:3::4]/devicename [IPv6 numeric, no port number]
|
||||
- rpcap://[1:2:3::4]:1234/devicename [IPv6 numeric, with port number]
|
||||
- rpcap://[1:2:3::4]:http/devicename [IPv6 numeric, with literal port number]
|
||||
|
||||
\{
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\brief String that will be used to determine the type of source in use (file,
|
||||
remote/local interface).
|
||||
\brief String that will be used to determine the type of source in use (file,
|
||||
remote/local interface).
|
||||
|
||||
This string will be prepended to the interface name in order to create a string
|
||||
that contains all the information required to open the source.
|
||||
This string will be prepended to the interface name in order to create a string
|
||||
that contains all the information required to open the source.
|
||||
|
||||
This string indicates that the user wants to open a capture from a local file.
|
||||
This string indicates that the user wants to open a capture from a local file.
|
||||
*/
|
||||
#define PCAP_SRC_FILE_STRING "file://"
|
||||
/*!
|
||||
\brief String that will be used to determine the type of source in use (file,
|
||||
remote/local interface).
|
||||
\brief String that will be used to determine the type of source in use (file,
|
||||
remote/local interface).
|
||||
|
||||
This string will be prepended to the interface name in order to create a string
|
||||
that contains all the information required to open the source.
|
||||
This string will be prepended to the interface name in order to create a string
|
||||
that contains all the information required to open the source.
|
||||
|
||||
This string indicates that the user wants to open a capture from a network interface.
|
||||
This string does not necessarily involve the use of the RPCAP protocol. If the
|
||||
interface required resides on the local host, the RPCAP protocol is not involved
|
||||
and the local functions are used.
|
||||
This string indicates that the user wants to open a capture from a network interface.
|
||||
This string does not necessarily involve the use of the RPCAP protocol. If the
|
||||
interface required resides on the local host, the RPCAP protocol is not involved
|
||||
and the local functions are used.
|
||||
*/
|
||||
#define PCAP_SRC_IF_STRING "rpcap://"
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/
|
||||
|
||||
|
||||
@ -185,137 +185,137 @@ extern "C" {
|
||||
|
||||
|
||||
/*!
|
||||
\addtogroup remote_open_flags
|
||||
\{
|
||||
\addtogroup remote_open_flags
|
||||
\{
|
||||
*/
|
||||
|
||||
/*!
|
||||
\brief Defines if the adapter has to go in promiscuous mode.
|
||||
\brief Defines if the adapter has to go in promiscuous mode.
|
||||
|
||||
It is '1' if you have to open the adapter in promiscuous mode, '0' otherwise.
|
||||
Note that even if this parameter is false, the interface could well be in promiscuous
|
||||
mode for some other reason (for example because another capture process with
|
||||
promiscuous mode enabled is currently using that interface).
|
||||
On on Linux systems with 2.2 or later kernels (that have the "any" device), this
|
||||
flag does not work on the "any" device; if an argument of "any" is supplied,
|
||||
the 'promisc' flag is ignored.
|
||||
It is '1' if you have to open the adapter in promiscuous mode, '0' otherwise.
|
||||
Note that even if this parameter is false, the interface could well be in promiscuous
|
||||
mode for some other reason (for example because another capture process with
|
||||
promiscuous mode enabled is currently using that interface).
|
||||
On on Linux systems with 2.2 or later kernels (that have the "any" device), this
|
||||
flag does not work on the "any" device; if an argument of "any" is supplied,
|
||||
the 'promisc' flag is ignored.
|
||||
*/
|
||||
#define PCAP_OPENFLAG_PROMISCUOUS 1
|
||||
#define PCAP_OPENFLAG_PROMISCUOUS 1
|
||||
|
||||
/*!
|
||||
\brief Defines if the data trasfer (in case of a remote
|
||||
capture) has to be done with UDP protocol.
|
||||
\brief Defines if the data trasfer (in case of a remote
|
||||
capture) has to be done with UDP protocol.
|
||||
|
||||
If it is '1' if you want a UDP data connection, '0' if you want
|
||||
a TCP data connection; control connection is always TCP-based.
|
||||
A UDP connection is much lighter, but it does not guarantee that all
|
||||
the captured packets arrive to the client workstation. Moreover,
|
||||
it could be harmful in case of network congestion.
|
||||
This flag is meaningless if the source is not a remote interface.
|
||||
In that case, it is simply ignored.
|
||||
If it is '1' if you want a UDP data connection, '0' if you want
|
||||
a TCP data connection; control connection is always TCP-based.
|
||||
A UDP connection is much lighter, but it does not guarantee that all
|
||||
the captured packets arrive to the client workstation. Moreover,
|
||||
it could be harmful in case of network congestion.
|
||||
This flag is meaningless if the source is not a remote interface.
|
||||
In that case, it is simply ignored.
|
||||
*/
|
||||
#define PCAP_OPENFLAG_DATATX_UDP 2
|
||||
#define PCAP_OPENFLAG_DATATX_UDP 2
|
||||
|
||||
|
||||
/*!
|
||||
\brief Defines if the remote probe will capture its own generated traffic.
|
||||
\brief Defines if the remote probe will capture its own generated traffic.
|
||||
|
||||
In case the remote probe uses the same interface to capture traffic and to send
|
||||
data back to the caller, the captured traffic includes the RPCAP traffic as well.
|
||||
If this flag is turned on, the RPCAP traffic is excluded from the capture, so that
|
||||
the trace returned back to the collector is does not include this traffic.
|
||||
In case the remote probe uses the same interface to capture traffic and to send
|
||||
data back to the caller, the captured traffic includes the RPCAP traffic as well.
|
||||
If this flag is turned on, the RPCAP traffic is excluded from the capture, so that
|
||||
the trace returned back to the collector is does not include this traffic.
|
||||
*/
|
||||
#define PCAP_OPENFLAG_NOCAPTURE_RPCAP 4
|
||||
#define PCAP_OPENFLAG_NOCAPTURE_RPCAP 4
|
||||
|
||||
/*!
|
||||
\brief Defines if the local adapter will capture its own generated traffic.
|
||||
\brief Defines if the local adapter will capture its own generated traffic.
|
||||
|
||||
This flag tells the underlying capture driver to drop the packets that were sent by itself.
|
||||
This is usefult when building applications like bridges, that should ignore the traffic
|
||||
they just sent.
|
||||
This flag tells the underlying capture driver to drop the packets that were sent by itself.
|
||||
This is usefult when building applications like bridges, that should ignore the traffic
|
||||
they just sent.
|
||||
*/
|
||||
#define PCAP_OPENFLAG_NOCAPTURE_LOCAL 8
|
||||
#define PCAP_OPENFLAG_NOCAPTURE_LOCAL 8
|
||||
|
||||
/*!
|
||||
\brief This flag configures the adapter for maximum responsiveness.
|
||||
\brief This flag configures the adapter for maximum responsiveness.
|
||||
|
||||
In presence of a large value for nbytes, WinPcap waits for the arrival of several packets before
|
||||
copying the data to the user. This guarantees a low number of system calls, i.e. lower processor usage,
|
||||
i.e. better performance, which is good for applications like sniffers. If the user sets the
|
||||
PCAP_OPENFLAG_MAX_RESPONSIVENESS flag, the capture driver will copy the packets as soon as the application
|
||||
is ready to receive them. This is suggested for real time applications (like, for example, a bridge)
|
||||
that need the best responsiveness.*/
|
||||
#define PCAP_OPENFLAG_MAX_RESPONSIVENESS 16
|
||||
In presence of a large value for nbytes, WinPcap waits for the arrival of several packets before
|
||||
copying the data to the user. This guarantees a low number of system calls, i.e. lower processor usage,
|
||||
i.e. better performance, which is good for applications like sniffers. If the user sets the
|
||||
PCAP_OPENFLAG_MAX_RESPONSIVENESS flag, the capture driver will copy the packets as soon as the application
|
||||
is ready to receive them. This is suggested for real time applications (like, for example, a bridge)
|
||||
that need the best responsiveness.*/
|
||||
#define PCAP_OPENFLAG_MAX_RESPONSIVENESS 16
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\addtogroup remote_samp_methods
|
||||
\{
|
||||
\addtogroup remote_samp_methods
|
||||
\{
|
||||
*/
|
||||
|
||||
/*!
|
||||
\brief No sampling has to be done on the current capture.
|
||||
\brief No sampling has to be done on the current capture.
|
||||
|
||||
In this case, no sampling algorithms are applied to the current capture.
|
||||
In this case, no sampling algorithms are applied to the current capture.
|
||||
*/
|
||||
#define PCAP_SAMP_NOSAMP 0
|
||||
#define PCAP_SAMP_NOSAMP 0
|
||||
|
||||
/*!
|
||||
\brief It defines that only 1 out of N packets must be returned to the user.
|
||||
\brief It defines that only 1 out of N packets must be returned to the user.
|
||||
|
||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the
|
||||
number of packets (minus 1) that must be discarded before one packet got accepted.
|
||||
In other words, if 'value = 10', the first packet is returned to the caller, while
|
||||
the following 9 are discarded.
|
||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the
|
||||
number of packets (minus 1) that must be discarded before one packet got accepted.
|
||||
In other words, if 'value = 10', the first packet is returned to the caller, while
|
||||
the following 9 are discarded.
|
||||
*/
|
||||
#define PCAP_SAMP_1_EVERY_N 1
|
||||
#define PCAP_SAMP_1_EVERY_N 1
|
||||
|
||||
/*!
|
||||
\brief It defines that we have to return 1 packet every N milliseconds.
|
||||
\brief It defines that we have to return 1 packet every N milliseconds.
|
||||
|
||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the 'waiting
|
||||
time' in milliseconds before one packet got accepted.
|
||||
In other words, if 'value = 10', the first packet is returned to the caller; the next
|
||||
returned one will be the first packet that arrives when 10ms have elapsed.
|
||||
In this case, the 'value' field of the 'pcap_samp' structure indicates the 'waiting
|
||||
time' in milliseconds before one packet got accepted.
|
||||
In other words, if 'value = 10', the first packet is returned to the caller; the next
|
||||
returned one will be the first packet that arrives when 10ms have elapsed.
|
||||
*/
|
||||
#define PCAP_SAMP_FIRST_AFTER_N_MS 2
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/
|
||||
|
||||
|
||||
/*!
|
||||
\addtogroup remote_auth_methods
|
||||
\{
|
||||
\addtogroup remote_auth_methods
|
||||
\{
|
||||
*/
|
||||
|
||||
/*!
|
||||
\brief It defines the NULL authentication.
|
||||
\brief It defines the NULL authentication.
|
||||
|
||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||
The 'NULL' authentication has to be equal to 'zero', so that old applications
|
||||
can just put every field of struct pcap_rmtauth to zero, and it does work.
|
||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||
The 'NULL' authentication has to be equal to 'zero', so that old applications
|
||||
can just put every field of struct pcap_rmtauth to zero, and it does work.
|
||||
*/
|
||||
#define RPCAP_RMTAUTH_NULL 0
|
||||
/*!
|
||||
\brief It defines the username/password authentication.
|
||||
\brief It defines the username/password authentication.
|
||||
|
||||
With this type of authentication, the RPCAP protocol will use the username/
|
||||
password provided to authenticate the user on the remote machine. If the
|
||||
authentication is successful (and the user has the right to open network devices)
|
||||
the RPCAP connection will continue; otherwise it will be dropped.
|
||||
With this type of authentication, the RPCAP protocol will use the username/
|
||||
password provided to authenticate the user on the remote machine. If the
|
||||
authentication is successful (and the user has the right to open network devices)
|
||||
the RPCAP connection will continue; otherwise it will be dropped.
|
||||
|
||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||
This value has to be used within the 'type' member of the pcap_rmtauth structure.
|
||||
*/
|
||||
#define RPCAP_RMTAUTH_PWD 1
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/
|
||||
|
||||
|
||||
@ -323,71 +323,71 @@ extern "C" {
|
||||
|
||||
/*!
|
||||
|
||||
\brief This structure keeps the information needed to autheticate
|
||||
the user on a remote machine.
|
||||
|
||||
The remote machine can either grant or refuse the access according
|
||||
to the information provided.
|
||||
In case the NULL authentication is required, both 'username' and
|
||||
'password' can be NULL pointers.
|
||||
|
||||
This structure is meaningless if the source is not a remote interface;
|
||||
in that case, the functions which requires such a structure can accept
|
||||
a NULL pointer as well.
|
||||
\brief This structure keeps the information needed to autheticate
|
||||
the user on a remote machine.
|
||||
|
||||
The remote machine can either grant or refuse the access according
|
||||
to the information provided.
|
||||
In case the NULL authentication is required, both 'username' and
|
||||
'password' can be NULL pointers.
|
||||
|
||||
This structure is meaningless if the source is not a remote interface;
|
||||
in that case, the functions which requires such a structure can accept
|
||||
a NULL pointer as well.
|
||||
*/
|
||||
struct pcap_rmtauth
|
||||
{
|
||||
/*!
|
||||
\brief Type of the authentication required.
|
||||
\brief Type of the authentication required.
|
||||
|
||||
In order to provide maximum flexibility, we can support different types
|
||||
of authentication based on the value of this 'type' variable. The currently
|
||||
supported authentication methods are defined into the
|
||||
\link remote_auth_methods Remote Authentication Methods Section\endlink.
|
||||
In order to provide maximum flexibility, we can support different types
|
||||
of authentication based on the value of this 'type' variable. The currently
|
||||
supported authentication methods are defined into the
|
||||
\link remote_auth_methods Remote Authentication Methods Section\endlink.
|
||||
|
||||
*/
|
||||
int type;
|
||||
/*!
|
||||
\brief Zero-terminated string containing the username that has to be
|
||||
used on the remote machine for authentication.
|
||||
|
||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||
and it can be NULL.
|
||||
\brief Zero-terminated string containing the username that has to be
|
||||
used on the remote machine for authentication.
|
||||
|
||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||
and it can be NULL.
|
||||
*/
|
||||
char *username;
|
||||
/*!
|
||||
\brief Zero-terminated string containing the password that has to be
|
||||
used on the remote machine for authentication.
|
||||
|
||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||
and it can be NULL.
|
||||
\brief Zero-terminated string containing the password that has to be
|
||||
used on the remote machine for authentication.
|
||||
|
||||
This field is meaningless in case of the RPCAP_RMTAUTH_NULL authentication
|
||||
and it can be NULL.
|
||||
*/
|
||||
char *password;
|
||||
};
|
||||
|
||||
|
||||
/*!
|
||||
\brief This structure defines the information related to sampling.
|
||||
\brief This structure defines the information related to sampling.
|
||||
|
||||
In case the sampling is requested, the capturing device should read
|
||||
only a subset of the packets coming from the source. The returned packets depend
|
||||
on the sampling parameters.
|
||||
In case the sampling is requested, the capturing device should read
|
||||
only a subset of the packets coming from the source. The returned packets depend
|
||||
on the sampling parameters.
|
||||
|
||||
\warning The sampling process is applied <strong>after</strong> the filtering process.
|
||||
In other words, packets are filtered first, then the sampling process selects a
|
||||
subset of the 'filtered' packets and it returns them to the caller.
|
||||
\warning The sampling process is applied <strong>after</strong> the filtering process.
|
||||
In other words, packets are filtered first, then the sampling process selects a
|
||||
subset of the 'filtered' packets and it returns them to the caller.
|
||||
*/
|
||||
struct pcap_samp
|
||||
{
|
||||
/*!
|
||||
Method used for sampling. Currently, the supported methods are listed in the
|
||||
\link remote_samp_methods Sampling Methods Section\endlink.
|
||||
Method used for sampling. Currently, the supported methods are listed in the
|
||||
\link remote_samp_methods Sampling Methods Section\endlink.
|
||||
*/
|
||||
int method;
|
||||
|
||||
/*!
|
||||
This value depends on the sampling method defined. For its meaning, please check
|
||||
at the \link remote_samp_methods Sampling Methods Section\endlink.
|
||||
This value depends on the sampling method defined. For its meaning, please check
|
||||
at the \link remote_samp_methods Sampling Methods Section\endlink.
|
||||
*/
|
||||
int value;
|
||||
};
|
||||
@ -400,7 +400,7 @@ struct pcap_samp
|
||||
|
||||
|
||||
/*!
|
||||
\}
|
||||
\}
|
||||
*/ // end of public documentation
|
||||
|
||||
|
||||
@ -410,8 +410,8 @@ struct pcap_samp
|
||||
|
||||
/** \name New WinPcap functions
|
||||
|
||||
This section lists the new functions that are able to help considerably in writing
|
||||
WinPcap programs because of their easiness of use.
|
||||
This section lists the new functions that are able to help considerably in writing
|
||||
WinPcap programs because of their easiness of use.
|
||||
*/
|
||||
//\{
|
||||
pcap_t *pcap_open(const char *source, int snaplen, int flags, int read_timeout, struct pcap_rmtauth *auth, char *errbuf);
|
||||
@ -427,7 +427,7 @@ struct pcap_samp *pcap_setsampling(pcap_t *p);
|
||||
|
||||
/** \name Remote Capture functions
|
||||
*/
|
||||
//\{
|
||||
//\{
|
||||
SOCKET pcap_remoteact_accept(const char *address, const char *port, const char *hostlist, char *connectinghost, struct pcap_rmtauth *auth, char *errbuf);
|
||||
int pcap_remoteact_list(char *hostlist, char sep, int size, char *errbuf);
|
||||
int pcap_remoteact_close(const char *host, char *errbuf);
|
||||
@ -441,4 +441,3 @@ void pcap_remoteact_cleanup();
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
@ -581,17 +581,17 @@ void airbustr_state::machine_reset()
|
||||
static MACHINE_CONFIG_START( airbustr, airbustr_state )
|
||||
|
||||
/* basic machine hardware */
|
||||
MCFG_CPU_ADD("master", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_ADD("master", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(master_map)
|
||||
MCFG_CPU_IO_MAP(master_io_map)
|
||||
MCFG_TIMER_DRIVER_ADD_SCANLINE("scantimer", airbustr_state, airbustr_scanline, "screen", 0, 1)
|
||||
|
||||
MCFG_CPU_ADD("slave", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_ADD("slave", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(slave_map)
|
||||
MCFG_CPU_IO_MAP(slave_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", airbustr_state, slave_interrupt) /* nmi signal from master cpu */
|
||||
|
||||
MCFG_CPU_ADD("audiocpu", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_ADD("audiocpu", Z80, XTAL_12MHz/2) /* verified on pcb */
|
||||
MCFG_CPU_PROGRAM_MAP(sound_map)
|
||||
MCFG_CPU_IO_MAP(sound_io_map)
|
||||
MCFG_CPU_VBLANK_INT_DRIVER("screen", airbustr_state, irq0_line_hold) // nmi are caused by sub cpu writing a sound command
|
||||
@ -622,7 +622,7 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
|
||||
/* sound hardware */
|
||||
MCFG_SPEAKER_STANDARD_MONO("mono")
|
||||
|
||||
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
|
||||
MCFG_SOUND_ADD("ymsnd", YM2203, XTAL_12MHz/4) /* verified on pcb */
|
||||
MCFG_AY8910_PORT_A_READ_CB(IOPORT("DSW1")) // DSW-1 connected to port A
|
||||
MCFG_AY8910_PORT_B_READ_CB(IOPORT("DSW2")) // DSW-2 connected to port B
|
||||
MCFG_SOUND_ROUTE(0, "mono", 0.25)
|
||||
@ -630,7 +630,7 @@ static MACHINE_CONFIG_START( airbustr, airbustr_state )
|
||||
MCFG_SOUND_ROUTE(2, "mono", 0.25)
|
||||
MCFG_SOUND_ROUTE(3, "mono", 0.50)
|
||||
|
||||
MCFG_OKIM6295_ADD("oki", XTAL_12MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */
|
||||
MCFG_OKIM6295_ADD("oki", XTAL_12MHz/4, OKIM6295_PIN7_LOW) /* verified on pcb */
|
||||
MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.80)
|
||||
MACHINE_CONFIG_END
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
/*
|
||||
|
||||
tiny bartop b&w Space Invaders type game with colour overlay
|
||||
|
||||
|
||||
Driver by David Haywood and Mariusz Wojcieszek
|
||||
|
||||
TODO:
|
||||
- 16 bytes are protected in the c*** range. I'm guessing they used a PROM to protect a
|
||||
simple sub-routine because:
|
||||
* It attempts to jsr from RAM to that area with a 0x10 byte offset (i.e. ROM copies a code snippet to RAM; when it executes
|
||||
* It attempts to jsr from RAM to that area with a 0x10 byte offset (i.e. ROM copies a code snippet to RAM; when it executes
|
||||
it code executes jsr 0xc400 then self-modifies it to 0xc410, rinse and repeat ... up to 0xc7f0 and rolls back);
|
||||
* After that the program has an amusing left-over located at 0xe000-0xe00f (yup, NOPs + a RTS), with the
|
||||
* After that the program has an amusing left-over located at 0xe000-0xe00f (yup, NOPs + a RTS), with the
|
||||
exact same number of times as above;
|
||||
It's unknown at current stage what it really protects tho, game seems working for all I can see ... -AS
|
||||
|
||||
- Sound is entirely guesswork.
|
||||
|
||||
|
||||
*/
|
||||
|
||||
#include "emu.h"
|
||||
@ -28,10 +28,10 @@ public:
|
||||
alinvade_state(const machine_config &mconfig, device_type type, const char *tag)
|
||||
: driver_device(mconfig, type, tag)
|
||||
, m_maincpu(*this, "maincpu")
|
||||
, m_videoram(*this, "videoram")
|
||||
, m_videoram(*this, "videoram")
|
||||
, m_discrete(*this, "discrete")
|
||||
{ }
|
||||
|
||||
|
||||
DECLARE_READ8_MEMBER(irqmask_r);
|
||||
DECLARE_WRITE8_MEMBER(irqmask_w);
|
||||
DECLARE_WRITE8_MEMBER(sound_w);
|
||||
@ -90,7 +90,7 @@ WRITE8_MEMBER(alinvade_state::irqmask_w)
|
||||
{
|
||||
if((!(irqff & 1)) && (data & 1)) // f/f, active high? If the above actually returns 0xff this could be active low ...
|
||||
irqmask^= 1;
|
||||
|
||||
|
||||
irqff = data;
|
||||
}
|
||||
|
||||
|
@ -1876,7 +1876,7 @@ static ADDRESS_MAP_START( i8748_portmap, AS_IO, 8, alpha68k_state )
|
||||
// AM_RANGE(MCS48_PORT_P2, MCS48_PORT_P2) AM_DEVWRITE_LEGACY("adpcm", saiyugoub1_adpcm_control_w)
|
||||
ADDRESS_MAP_END
|
||||
|
||||
// Pixel clock, assuming that it can't be 4 MHz because 4 MHz / 15,20 KHz = 263 HTOTAL (VERY unlikely).
|
||||
// Pixel clock, assuming that it can't be 4 MHz because 4 MHz / 15,20 KHz = 263 HTOTAL (VERY unlikely).
|
||||
#define ALPHA68K_PIXEL_CLOCK XTAL_24MHz/4
|
||||
#define ALPHA68K_HTOTAL 394
|
||||
#define ALPHA68K_HBEND 0
|
||||
@ -1909,10 +1909,10 @@ static MACHINE_CONFIG_START( sstingry, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_sstingry)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -1958,10 +1958,10 @@ static MACHINE_CONFIG_START( kyros, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2006,10 +2006,10 @@ static MACHINE_CONFIG_START( jongbou, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_kyros)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2043,10 +2043,10 @@ static MACHINE_CONFIG_START( alpha68k_I, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2088,10 +2088,10 @@ static MACHINE_CONFIG_START( alpha68k_II, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2141,10 +2141,10 @@ static MACHINE_CONFIG_START( alpha68k_II_gm, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_II)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2187,10 +2187,10 @@ static MACHINE_CONFIG_START( alpha68k_V, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2233,10 +2233,10 @@ static MACHINE_CONFIG_START( alpha68k_V_sb, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_V_sb)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -2278,10 +2278,10 @@ static MACHINE_CONFIG_START( tnextspc, alpha68k_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ALPHA68K_PIXEL_CLOCK,ALPHA68K_HTOTAL,ALPHA68K_HBEND,ALPHA68K_HBSTART,ALPHA68K_VTOTAL,ALPHA68K_VBEND,ALPHA68K_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(alpha68k_state, screen_update_alpha68k_I)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
@ -1248,10 +1248,10 @@ static MACHINE_CONFIG_START( arkanoid, arkanoid_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_arkanoid)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -1282,10 +1282,10 @@ static MACHINE_CONFIG_START( hexa, arkanoid_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
@ -1338,10 +1338,10 @@ static MACHINE_CONFIG_START( brixian, arkanoid_state )
|
||||
|
||||
/* video hardware */
|
||||
MCFG_SCREEN_ADD("screen", RASTER)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
// MCFG_SCREEN_REFRESH_RATE(60)
|
||||
// MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0))
|
||||
// MCFG_SCREEN_SIZE(32*8, 32*8)
|
||||
// MCFG_SCREEN_VISIBLE_AREA(0*8, 32*8-1, 2*8, 30*8-1)
|
||||
MCFG_SCREEN_RAW_PARAMS(ARKANOID_PIXEL_CLOCK,ARKANOID_HTOTAL,ARKANOID_HBEND,ARKANOID_HBSTART,ARKANOID_VTOTAL,ARKANOID_VBEND,ARKANOID_VBSTART)
|
||||
MCFG_SCREEN_UPDATE_DRIVER(arkanoid_state, screen_update_hexa)
|
||||
MCFG_SCREEN_PALETTE("palette")
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user