a1200   NEWS   APPS   DOCS   ABOUT
a1200
----
a1200
----
Autodocs
 Libraries:
 expansion.library
  AddBootNode
  AddConfigDev
  AddDosNode
  AllocConfigDev
  AllocExpansionMem
  ConfigBoard
  FindConfigDev
  FreeConfigDev
  FreeExpansionMem
  GetCurrentBinding
  MakeDosNode
  ObtainConfigBinding
  ReadExpansionByte
  ReadExpansionRom
  ReleaseConfigBinding
  RemConfigDev
  SetCurrentBinding
  WriteExpansionByte
Include
GuruMeditation
Docs » Autodocs » expansion.library » MakeDosNode

NAME

	MakeDosNode -- construct dos data structures that a disk needs

SYNOPSIS

	deviceNode = MakeDosNode( parameterPkt )
D0 A0
struct DeviceNode * MakeDosNode( void * );

FUNCTION

	This routine manufactures the data structures needed to enter
a dos disk device into the system. This consists of a DeviceNode,
a FileSysStartupMsg, a disk environment vector, and up to two
bcpl strings. See the libraries/dosextens.h and
libraries/filehandler.h include files for more information.
MakeDosNode will allocate all the memory it needs, and then
link the various structure together. It will make sure all
the structures are long-word aligned (as required by the DOS).
It then returns the information to the user so he can
change anything else that needs changing. Typically he will
then call AddDosNode() to enter the new device into the dos
tables.

INPUTS

	parameterPkt - a longword array containing all the information
needed to initialize the data structures. Normally I
would have provided a structure for this, but the variable
length of the packet caused problems. The two strings are
null terminated strings, like all other exec strings.
longword description
-------- -----------
0 string with dos handler name
1 string with exec device name
2 unit number (for OpenDevice)
3 flags (for OpenDevice)
4 # of longwords in rest of environment
5-n file handler environment (see libraries/filehandler.h)

RESULT

	deviceNode - pointer to initialize device node structure, or
null if there was not enough memory. You may need to change
certain fields before passing the DeviceNode to AddDosNode().
EXAMPLES
/* set up a 3.5" Amiga format floppy drive for unit 1 */
char execName[] = "trackdisk.device";
char dosName[] = "df1";
ULONG parmPkt[] = {
(ULONG) dosName,
(ULONG) execName,
1, /* unit number */
0, /* OpenDevice flags */
/* here is the environment block */
16, /* table upper bound */
512>>2, /* # longwords in a block */
0, /* sector origin -- unused */
2, /* number of surfaces */
1, /* secs per logical block -- leave as 1 */
11, /* blocks per track */
2, /* reserved blocks -- 2 boot blocks */
0, /* ?? -- unused */
0, /* interleave */
0, /* lower cylinder */
79, /* upper cylinder */
5, /* number of buffers */
MEMF_CHIP, /* type of memory for buffers */
(~0 >> 1), /* largest transfer size (largest signed #) */
~1, /* addmask */
0, /* boot priority */
0x444f5300, /* dostype: 'DOS\0' */
};
struct Device Node *node, *MakeDosNode();
node = MakeDosNode( parmPkt );

SEE ALSO

AddDosNode(), <libraries/dosextens.h>, <libraries/filehandler.h>

Comments

Name:
E-mail: Use this if you want a message if you get a response, will not be shown.
Comment:
Select correct short for:

Dual Crew

TRSI
CSL
TBL
DC

Comments:

$VER: d0.se 1.14 Copyright © 2011-2024 Tobias Geijersson support at d0 dot se