Протоколы Internet


Сетевые драйверы - часть 4


/p>


Public

int_no,

io_addr

 

int_no

db

2,0,0,0

; должно иметь 4 байта для get_number.

io_addr

dw

0300h,0

; I/O адрес карты (переключатели)


public

driver_class

driver_type,

driver_name,

driver_function,

parameter_list

driver_class

db

BLUEBOOK, IEEE8023, 0

; из спецификации интерфейса

driver_type

dw

54

; из спецификации интерфейса

driver_name

db

'NE2000',0

; имя драйвера.

driver_function

db

2

 

parameter_list

label

byte

 

 

db

1

;

 

db

9

;

 

db

14

; длина списка параметров в байтах

 

db

ADDR_LEN

; длина адреса MAC-уровня в байтах

 

dw

GIANT

; MTU, включая MAC-заголовок

 

dw

MAX_M_CAST * ADDR_LEN

 

; размер буфера для мультикаст-адресов

 

dw

0

;(# принимаемых подряд пакетов с; размером MTU) - 1

 

dw

0

; (# посылаемых подряд пакетов) - 1

int_num

dw

0

; Номер прерывания

Работа с пакетным драйвером в MS-DOS

Существует множество пакетных драйверов. Можно обнаружить несколько модификаций для одного и того же типа интерфейса. Эти драйверы могут быть ориентированы на работу в разных программных средах (Novell, UNIX, MS-DOS и т.д.) и иметь разные возможности. Для MS-DOS сложился неофициальный стандарт, который позволяет использовать драйвер для самых разных приложений. Драйвер может использовать минимум возможностей интерфейса (базовый уровень), реализовать более широкий набор функций (мультикастинг, сбор статистики и т.д.) или поддерживать практически все, на что способен данный прибор. В последнем случае он занимает больше места в памяти. Описания операций с пакетными драйверами, приведенные ниже, выполнены в нотации ассемблера IBM/PC. При написании программы следует помнить, что порядок байтов в Ethernet противоположен тому, который используется в вашей IBM/PC.

Пакетные драйверы используют программные прерывания в интервале 0x60 - 0x80. Следует сразу заметить, что не все прерывания из этого списка свободны и при конфигурировании системы следует проявлять осмотрительность. Для того чтобы избежать конфликтов с другими внешними устройствами, предусматривается возможность реконфигурации прерываний. Предполагается, что программа обработки прерываний начинается с команды безусловной передачи управления (JMP), за которой следует текстовая строка "PKT DRVR". Именно эта строка служит указателем при поиске адреса пакетного прерывания. Практически все драйверы могут работать с различными протоколами (TCP/IP, OSI и др.). Решить задачу мультиплексирования на связном уровне помогает процедура access_type, которая обеспечивает доступ для пакетов определенного типа.




Начало  Назад  Вперед