Updated Zorro-LAN-IDE Driver to 2.15

- Multicast fixes
- new Microchip OUIs added to verification table
This commit is contained in:
Henryk Richter
2026-03-02 10:41:17 +01:00
parent 0f18ce181d
commit 52ba722800
26 changed files with 1284 additions and 93 deletions
+17 -5
View File
@@ -154,7 +154,7 @@ static LONG server_setOnline( DEVBASEP , ULONG unit, ULONG evt )
struct Library *TimerBase;
MemSet( &timereq, 0, sizeof(struct timerequest));
OpenDevice("timer.device", 0, (struct IORequest*)&timereq, 0);
OpenDevice( (STRPTR)"timer.device", 0, (struct IORequest*)&timereq, 0);
TimerBase = (struct Library *)timereq.tr_node.io_Device;
GetSysTime( &db->db_Units[unit].du_DevStats.LastStart );
CloseDevice( (struct IORequest*)&timereq);
@@ -293,7 +293,7 @@ static LONG server_Config( DEVBASEP )
hw_ConfigInit( db ); /* hw defaults */
if((cfgfile = Open(HW_CONFIGFILE, MODE_OLDFILE))) /* see hwprivate.h for CONFIGFILE */
if((cfgfile = Open( (STRPTR)HW_CONFIGFILE, MODE_OLDFILE))) /* see hwprivate.h for CONFIGFILE */
{
struct HWConfig args; /* see hwprivate.h */
struct RDArgs *readargs;
@@ -302,7 +302,7 @@ static LONG server_Config( DEVBASEP )
MemSet( &args, 0, sizeof( args ) );
readargs = ReadArgs( (BYTE*)configtemplate, (LONG *)&args, NULL);
readargs = ReadArgs( (STRPTR)configtemplate, (LONG *)&args, NULL);
Close( SelectInput( cfgfile ) ); /* restore default input and retrieve cfgfile */
@@ -354,7 +354,7 @@ static LONG server_changeMulticast( DEVBASEP, ULONG unit, struct IOSana2Req *ior
entry = (struct MCastEntry *)db->db_svdat.sv_mclist.lh_Head;
while( entry->mce_Node.mln_Succ )
{
if( CMPeqMAC( entry->mce_start, ioreq->ios2_SrcAddr ) )
if( CMPeqMAC( (BYTE*)entry->mce_start, (BYTE*)ioreq->ios2_SrcAddr ) )
break;
entry = (struct MCastEntry *)entry->mce_Node.mln_Succ;
}
@@ -1143,11 +1143,17 @@ VOID SAVEDS ServerTask(void)
server_HandleS2Commands( db );
gotmask &= ~portsigmask;
}
/* Important: first check CTRL_D to go offline cleanly
before acting on CTRL_C
*/
if( gotmask & SIGBREAKF_CTRL_D )
{
D(("Got CTRL-D in Server. Checking Online status\n"));
gotmask &= ~SIGBREAKF_CTRL_D;
server_CloseDevice_offline( db );
/* acknowledge command (unless CTRL_C was also set) */
if( (db->db_Task) && (!(gotmask & SIGBREAKF_CTRL_C)) )
Signal( db->db_Task, db->db_ServerSigMask );
}
if( gotmask & SIGBREAKF_CTRL_C )
{
@@ -1161,10 +1167,16 @@ VOID SAVEDS ServerTask(void)
QuitServer:
if( db )
db->db_ServerProc = (0);
{
db->db_ServerProc = (0);
/* acknowledge command */
if( db->db_Task )
Signal( db->db_Task, db->db_ServerSigMask );
}
{ /* revert to "real" execbase, in case that we never got the startup msg */
struct { struct Library *db_SysBase; } *db = (void*)0x4;
D(("Server exiting"));
Forbid();
}