mirror of
https://github.com/simh/simh.git
synced 2026-05-03 06:28:41 +00:00
PDP11, VAX: Fix AutoConfigure to allow multiple dynamically configured devices to allocate from the same pool of fixed addresses.
Dynamically configured devices simulate multiple controllers with a single DEVICE structure and can have the number of controllers being simulated set by the user. DLI, DZ, DUP, DMC, TDC, VH, DC are all dynamically configured devices. DLI and TDC are dynamically configured devices which get static bus addresses.
This commit is contained in:
@@ -196,7 +196,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */
|
||||
|
||||
@@ -246,7 +246,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */
|
||||
|
||||
@@ -238,7 +238,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Unibus I/O page layout - see pdp11_io_lib.c for address layout details */
|
||||
|
||||
@@ -278,7 +278,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Unibus I/O page layout - see pdp11_io_lib.c for address layout details
|
||||
|
||||
@@ -292,7 +292,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Unibus I/O page layout - see pdp11_io_lib.c for address layout details
|
||||
|
||||
@@ -322,7 +322,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Unibus I/O page layout - XUB,RQB,RQC,RQD float based on number of DZ's
|
||||
|
||||
@@ -296,7 +296,15 @@ typedef struct {
|
||||
int32 vloc; /* locator */
|
||||
int32 vec; /* value */
|
||||
int32 (*ack[VEC_DEVMAX])(void); /* ack routine */
|
||||
uint32 ulnt; /* IO length per unit */
|
||||
uint32 ulnt; /* IO length per-device */
|
||||
/* Only need to be populated */
|
||||
/* when numunits != num devices */
|
||||
int32 numc; /* Number of controllers */
|
||||
/* this field handles devices */
|
||||
/* where multiple instances are */
|
||||
/* simulated through a single */
|
||||
/* DEVICE structure (e.g., DZ, VH, DL, DC). */
|
||||
/* Populated by auto-configure */
|
||||
} DIB;
|
||||
|
||||
/* Qbus I/O page layout - see pdp11_io_lib.c for address layout details */
|
||||
|
||||
Reference in New Issue
Block a user