Интегрированные сети ISDN


Структура переменных rd_stat



Рисунок 7.2.3. Структура переменных rd_stat




Enp

конец пакета;

Stp

начало пакета;

Buff

ошибка в буфере;

CRC

CRC-ошибка;

Oflo

переполнение буфера;

Fram

ошибка при записи в буфер;

Err

наличие ошибки;

Own

0 = полное заполнение.

Выходной буфер имеет сходную структуру.

Я не буду описывать здесь то, как следует писать системные драйверы (Исчерпывающую информацию по написанию таких драйверов читатель может найти в книге "Написание драйверов для MS-DOS" Р.Лея и "Уэйт Груп", Москва "Мир", 1995), тем более что существует достаточное их количество в депозитариях общего доступа (Например, анонимное FTP по адресам ftp.funet.fi, ftp.switch.ch или oak.oakland.edu, депозитарий SimTel ). Приведенное выше описание регистров интерфейса не является единственно возможным (см. также руководство по сетевому контроллеру 8390 и файл NE2.ASM из ссылки ftp.funet.fi. Структура драйверов варьируется для разных операционных систем. Для системных программистов полезно иметь возможность настраивать драйвер или непосредственно интерфейс на определенный режим, например, на прием всех пакетов, проходящих по кабельному сегменту. Последнее может представлять интерес в диагностических целях, так как вслед за пакетным драйвером загружается Etherdrv, Winsock или winpkt и т.д., блокирующие режим приема всех пакетов (mode=6). Ниже приведен пример описания основных параметров драйвера:

BLUEBOOK

equ

1

 

IEEE8023

equ

11

 

ADDR_LEN

equ

6

; размер Ethernet-адреса

MAX_M_CAST

equ

8

; максимальное число мультикаст-адресов.


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

 

<


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



Книжный магазин