ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/BasiliskII/src/AmigaOS/ether_amiga.cpp
(Generate patch)

Comparing BasiliskII/src/AmigaOS/ether_amiga.cpp (file contents):
Revision 1.6 by cebix, 2001-02-02T20:52:57Z vs.
Revision 1.11 by cebix, 2002-01-15T14:58:34Z

# Line 1 | Line 1
1   /*
2   *  ether_amiga.cpp - Ethernet device driver, AmigaOS specific stuff
3   *
4 < *  Basilisk II (C) 1997-2001 Christian Bauer
4 > *  Basilisk II (C) 1997-2002 Christian Bauer
5   *
6   *  This program is free software; you can redistribute it and/or modify
7   *  it under the terms of the GNU General Public License as published by
# Line 116 | Line 116 | static int16 send_to_proc(uint32 what, u
116   *  Initialization
117   */
118  
119 < void EtherInit(void)
119 > bool ether_init(void)
120   {
121          // Do nothing if no Ethernet device specified
122          if (PrefsFindString("ether") == NULL)
123 <                return;
123 >                return false;
124  
125          // Initialize protocol list
126          NewList(&prot_list);
# Line 151 | Line 151 | void EtherInit(void)
151                  goto open_error;
152  
153          // Everything OK
154 <        net_open = true;
155 <        return;
154 >        return true;
155  
156   open_error:
157          net_proc = NULL;
# Line 160 | Line 159 | open_error:
159                  DeleteMsgPort(reply_port);
160                  reply_port = NULL;
161          }
162 +        return false;
163   }
164  
165  
# Line 167 | Line 167 | open_error:
167   *  Deinitialization
168   */
169  
170 < void EtherExit(void)
170 > void ether_exit(void)
171   {
172          // Stop process
173          if (net_proc) {
# Line 188 | Line 188 | void EtherExit(void)
188   *  Reset
189   */
190  
191 < void EtherReset(void)
191 > void ether_reset(void)
192   {
193          // Remove all protocols
194 <        if (net_open)
194 >        if (net_proc)
195                  send_to_proc(MSG_CLEANUP);
196   }
197  
# Line 392 | Line 392 | static __saveds void net_func(void)
392          ULONG dev_unit;
393  
394          str = PrefsFindString("ether");
395 <        if (str)
396 <                {
395 >        if (str) {
396                  const char *FirstSlash = strchr(str, '/');
397                  const char *LastSlash = strrchr(str, '/');
398  
399 <                if (FirstSlash && FirstSlash && FirstSlash != LastSlash)
400 <                        {
399 >                if (FirstSlash && FirstSlash && FirstSlash != LastSlash) {
400 >
401                          // Device name contains path, i.e. "Networks/xyzzy.device"
402                          const char *lp = str;
403                          char *dp = dev_name;
# Line 410 | Line 409 | static __saveds void net_func(void)
409                          if (strlen(dev_name) < 1)
410                                  goto quit;
411  
412 <                        if (1 != sscanf(LastSlash, "/%ld", &dev_unit))
412 >                        if (sscanf(LastSlash, "/%ld", &dev_unit) != 1)
413                                  goto quit;
414 <
415 < //                      printf("dev=<%s> unit=%d\n", dev_name, dev_unit);
417 <                        }
418 <                else
419 <                        {
420 <                        if (2 != sscanf(str, "%[^/]/%ld", dev_name, &dev_unit))
414 >                } else {
415 >                        if (sscanf(str, "%[^/]/%ld", dev_name, &dev_unit) != 2)
416                                  goto quit;
422                        }
417                  }
418 <        else
418 >        } else
419                  goto quit;
420  
421          // Open device
422          control_io->ios2_BufferManagement = buffer_tags;
423          od_error = OpenDevice((UBYTE *)dev_name, dev_unit, (struct IORequest *)control_io, 0);
424 <        if (0 != od_error || control_io->ios2_Req.io_Device == 0)
431 <                {
424 >        if (od_error != 0 || control_io->ios2_Req.io_Device == 0) {
425                  printf("WARNING: OpenDevice(<%s>, unit=%d) returned error %d)\n", (UBYTE *)dev_name, dev_unit, od_error);
426                  goto quit;
427 <                }
427 >        }
428          opened = true;
429  
430          // Is it Ethernet?
# Line 585 | Line 578 | static __saveds void net_func(void)
578                                                  }
579                                                  write_io->ios2_DataLength = len;
580  
581 <                                                // Get destination address, set source address
581 >                                                // Get destination address
582                                                  uint32 hdr = ReadMacInt32(wds + 2);
583                                                  Mac2Host_memcpy(write_io->ios2_DstAddr, hdr, 6);
591                                                Host2Mac_memcpy(hdr + 6, ether_addr, 6);
584  
585                                                  // Get packet type
586                                                  uint32 type = ReadMacInt16(hdr + 12);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines