Annotation of nono/vm/ethernet.h, revision 1.1.1.8

1.1       root        1: //
                      2: // nono
1.1.1.3   root        3: // Copyright (C) 2020 nono project
                      4: // Licensed under nono-license.txt
1.1       root        5: //
                      6: 
1.1.1.8 ! root        7: //
        !             8: // Ethernet 基本クラス
        !             9: //
1.1       root       10: 
                     11: //          IODevice
                     12: //              |
                     13: //              v
                     14: //        EthernetDevice (イーサネットとしての共通部分)
                     15: //              |
                     16: //     +--------+-------+
                     17: //     v                v
                     18: // LanceDevice     RTL8019Device
                     19: // (LUNA, AM7990)  (X68000, RTL8019)
                     20: 
1.1.1.8 ! root       21: #pragma once
1.1.1.3   root       22: 
1.1.1.8 ! root       23: #include "device.h"
        !            24: #include "macaddr.h"
1.1       root       25: 
1.1.1.8 ! root       26: class HostNetDevice;
1.1.1.7   root       27: 
1.1       root       28: class EthernetDevice : public IODevice
                     29: {
1.1.1.3   root       30:        using inherited = IODevice;
1.1       root       31:  protected:
1.1.1.7   root       32:        EthernetDevice(const std::string& objname_);
1.1       root       33:  public:
1.1.1.5   root       34:        virtual ~EthernetDevice() override;
1.1       root       35: 
1.1.1.3   root       36:        bool Create() override;
1.1.1.5   root       37: 
1.1.1.3   root       38:        // MAC アドレスを取得
                     39:        macaddr_t GetMacAddr() const {
                     40:                return macaddr;
                     41:        }
                     42: 
1.1.1.8 ! root       43:        // ホストデバイスを取得する。Create() 完了後から使用可能。
        !            44:        // (ステータスパネルが呼び出す)
        !            45:        HostNetDevice *GetHostNet() const { return hostnet.get(); }
1.1.1.7   root       46: 
                     47:  protected:
1.1.1.8 ! root       48:        // ホストスレッドからの受信通知
        !            49:        void HostRxCallback();
1.1.1.7   root       50: 
1.1.1.3   root       51:        // MAC アドレス
1.1.1.4   root       52:        macaddr_t macaddr {};
1.1.1.7   root       53: 
1.1.1.8 ! root       54:        std::unique_ptr<HostNetDevice> hostnet /*{}*/;
1.1       root       55: };
                     56: 
1.1.1.8 ! root       57: extern EthernetDevice *gEthernet;

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.