include/linux/zorro.h
Source file repositories/reference/linux-study-clean/include/linux/zorro.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/zorro.h- Extension
.h- Size
- 3659 bytes
- Lines
- 139
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: operation-table or driver-model contract
- Status
- pattern implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines an operation table; this is where Linux turns generic core objects into subsystem-specific behavior.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
uapi/linux/zorro.hlinux/device.hlinux/init.hlinux/ioport.hlinux/mod_devicetable.hasm/zorro.h
Detected Declarations
struct zorro_devstruct zorro_driverstruct zorro_dev_initfunction request_mem_regionfunction zorro_set_drvdata
Annotated Snippet
struct device_driver driver;
};
#define to_zorro_driver(drv) container_of_const(drv, struct zorro_driver, driver)
#define zorro_for_each_dev(dev) \
for (dev = &zorro_autocon[0]; dev < zorro_autocon+zorro_num_autocon; dev++)
/* New-style probing */
extern int zorro_register_driver(struct zorro_driver *);
extern void zorro_unregister_driver(struct zorro_driver *);
extern unsigned int zorro_num_autocon; /* # of autoconfig devices found */
extern struct zorro_dev *zorro_autocon;
/*
* Minimal information about a Zorro device, passed from bootinfo
* Only available temporarily, i.e. until initmem has been freed!
*/
struct zorro_dev_init {
struct ExpansionRom rom;
u16 slotaddr;
u16 slotsize;
u32 boardaddr;
u32 boardsize;
};
extern struct zorro_dev_init zorro_autocon_init[ZORRO_NUM_AUTO] __initdata;
/*
* Zorro Functions
*/
extern struct zorro_dev *zorro_find_device(zorro_id id,
struct zorro_dev *from);
#define zorro_resource_start(z) ((z)->resource.start)
#define zorro_resource_end(z) ((z)->resource.end)
#define zorro_resource_len(z) (resource_size(&(z)->resource))
#define zorro_resource_flags(z) ((z)->resource.flags)
#define zorro_request_device(z, name) \
request_mem_region(zorro_resource_start(z), zorro_resource_len(z), name)
#define zorro_release_device(z) \
release_mem_region(zorro_resource_start(z), zorro_resource_len(z))
/* Similar to the helpers above, these manipulate per-zorro_dev
* driver-specific data. They are really just a wrapper around
* the generic device structure functions of these calls.
*/
static inline void *zorro_get_drvdata (struct zorro_dev *z)
{
return dev_get_drvdata(&z->dev);
}
static inline void zorro_set_drvdata (struct zorro_dev *z, void *data)
{
dev_set_drvdata(&z->dev, data);
}
/*
* Bitmask indicating portions of available Zorro II RAM that are unused
* by the system. Every bit represents a 64K chunk, for a maximum of 8MB
* (128 chunks, physical 0x00200000-0x009fffff).
*
* If you want to use (= allocate) portions of this RAM, you should clear
* the corresponding bits.
*/
extern DECLARE_BITMAP(zorro_unused_z2ram, 128);
#define Z2RAM_START (0x00200000)
#define Z2RAM_END (0x00a00000)
#define Z2RAM_SIZE (0x00800000)
#define Z2RAM_CHUNKSIZE (0x00010000)
#define Z2RAM_CHUNKMASK (0x0000ffff)
#define Z2RAM_CHUNKSHIFT (16)
#endif /* _LINUX_ZORRO_H */
Annotation
- Immediate include surface: `uapi/linux/zorro.h`, `linux/device.h`, `linux/init.h`, `linux/ioport.h`, `linux/mod_devicetable.h`, `asm/zorro.h`.
- Detected declarations: `struct zorro_dev`, `struct zorro_driver`, `struct zorro_dev_init`, `function request_mem_region`, `function zorro_set_drvdata`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: pattern implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.