User Tools

Site Tools


x68000:writing_drivers

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
x68000:writing_drivers [2014/07/11 00:56] eidisx68000:writing_drivers [2014/07/11 00:59] – [0x01 - Media Check] eidis
Line 47: Line 47:
  
   * __next header__ (long) : A single .SYS or .X file may contains more than one drivers, so this a pointer to the next driver header within this file. Set this member to -1 (0xFFFFFFFF) if this driver entry is the last one in the chain.   * __next header__ (long) : A single .SYS or .X file may contains more than one drivers, so this a pointer to the next driver header within this file. Set this member to -1 (0xFFFFFFFF) if this driver entry is the last one in the chain.
- 
   * __attributes__ (word): This 16 bits (1 word) member are flags that give informations about the driver behavior. Valid flags are :   * __attributes__ (word): This 16 bits (1 word) member are flags that give informations about the driver behavior. Valid flags are :
     * 0x8000 : Character device driver (any driver that'll **NOT** talk to storage device, generally a disk containing a FAT filesystem). Unset this for a block device driver.     * 0x8000 : Character device driver (any driver that'll **NOT** talk to storage device, generally a disk containing a FAT filesystem). Unset this for a block device driver.
Line 58: Line 57:
     * 0x0002 : STDOUT device. The driver will redefine the stdout, for example : screen, serial output, printers,...     * 0x0002 : STDOUT device. The driver will redefine the stdout, for example : screen, serial output, printers,...
     * 0x0001 : STDIN device. The driver will redefine the stdin : keyboard or serial input.     * 0x0001 : STDIN device. The driver will redefine the stdin : keyboard or serial input.
- 
   * __strategy routine (long)__: A pointer to the very first routine the kernel will execute ! This will initiate the driver loading.   * __strategy routine (long)__: A pointer to the very first routine the kernel will execute ! This will initiate the driver loading.
- 
   * __interrupt routine (long)__: A pointer to a routine that will perform the communication between the kernel and the device.   * __interrupt routine (long)__: A pointer to a routine that will perform the communication between the kernel and the device.
- 
   * __driver name (8 chars)__: An unique identifier, also used by userspace application when executing IOCTL commands.   * __driver name (8 chars)__: An unique identifier, also used by userspace application when executing IOCTL commands.
  
Line 91: Line 87:
 **Command execution result flags :** **Command execution result flags :**
  
-This list contains all acceptable values to fill the result status flags in the request packet header. S_**** flags will display (or hide) the "A"bort, "R"etry and "I"gnore line, and E_**** will show an appropriate error message. "Result status" member can be any combination of S_**** flags (ORed together), but only one E_**** can be set.+This list contains all acceptable values to fill the result status flags in the request packet header. S_**** flags will display (or hide) the "A"bort, "R"etry and "I"gnore line, and E_**** will show an appropriate error message. 
 + 
 +"Result status" member can be any combination of S_**** flags (ORed together), but only one E_**** can be set.
  
   * 0x1000 - S_ABORT : "A"bort the whole request.   * 0x1000 - S_ABORT : "A"bort the whole request.
Line 157: Line 155:
  
   
-Output parameters :+**Output parameters :**
  
 ^  Position  ^  Type  ^  Description  ^ ^  Position  ^  Type  ^  Description  ^
x68000/writing_drivers.txt · Last modified: 2019/08/27 20:45 by 127.0.0.1