Return to msdos.h CVS log | Up to [local] / sys / arch / i386 / include / pc |
File: [local] / sys / arch / i386 / include / pc / msdos.h (download)
Revision 1.1.1.1 (vendor branch), Tue Mar 4 16:06:18 2008 UTC (16 years, 6 months ago) by nbrk
Import of OpenBSD 4.2 release kernel tree with initial code to support Jornada 720/728, StrongARM 1110-based handheld PC. At this point kernel roots on NFS and boots into vfs_mountroot() and traps. What is supported: - glass console, Jornada framebuffer (jfb) works in 16bpp direct color mode (needs some palette tweaks for non black/white/blue colors, i think) - saic, SA11x0 interrupt controller (needs cleanup) - sacom, SA11x0 UART (supported only as boot console for now) - SA11x0 GPIO controller fully supported (but can't handle multiple interrupt handlers on one gpio pin) - sassp, SSP port on SA11x0 that attaches spibus - Jornada microcontroller (jmcu) to control kbd, battery, etc throught the SPI bus (wskbd attaches on jmcu, but not tested) - tod functions seem work - initial code for SA-1111 (chip companion) : this is TODO Next important steps, i think: - gpio and intc on sa1111 - pcmcia support for sa11x0 (and sa1111 help logic) - REAL root on nfs when we have PCMCIA support (we may use any of supported pccard NICs) - root on wd0! (using already supported PCMCIA-ATA) |
/* $OpenBSD: msdos.h,v 1.2 2000/08/05 22:05:31 niklas Exp $ */ /* $NetBSD: msdos.h,v 1.3 1994/10/27 04:16:37 cgd Exp $ */ /* * msdos common header file * [obtained from mtools -wfj] * how to decipher DOS disk structures in coexisting with DOS */ #define MSECTOR_SIZE 512 /* MSDOS sector size in bytes */ #define MDIR_SIZE 32 /* MSDOS directory size in bytes */ #define MAX_CLUSTER 8192 /* largest cluster size */ #define MAX_PATH 128 /* largest MSDOS path length */ #define MAX_DIR_SECS 64 /* largest directory (in sectors) */ #define NEW 1 #define OLD 0 struct directory { unsigned char name[8]; /* file name */ unsigned char ext[3]; /* file extension */ unsigned char attr; /* attribute byte */ unsigned char reserved[10]; /* ?? */ unsigned char time[2]; /* time stamp */ unsigned char date[2]; /* date stamp */ unsigned char start[2]; /* starting cluster number */ unsigned char size[4]; /* size of the file */ }; struct bootsector { unsigned char jump[3]; /* Jump to boot code */ unsigned char banner[8]; /* OEM name & version */ unsigned char secsiz[2]; /* Bytes per sector hopefully 512 */ unsigned char clsiz; /* Cluster size in sectors */ unsigned char nrsvsect[2]; /* Number of reserved (boot) sectors */ unsigned char nfat; /* Number of FAT tables hopefully 2 */ unsigned char dirents[2]; /* Number of directory slots */ unsigned char psect[2]; /* Total sectors on disk */ unsigned char descr; /* Media descriptor=first byte of FAT */ unsigned char fatlen[2]; /* Sectors in FAT */ unsigned char nsect[2]; /* Sectors/track */ unsigned char nheads[2]; /* Heads */ unsigned char nhs[4]; /* number of hidden sectors */ unsigned char bigsect[4]; /* big total sectors */ unsigned char junk[476]; /* who cares? */ }; /* DOS partition table -- located in boot block */ #define DOSBBSECTOR 0 /* DOS boot block relative sector number */ #define DOSPARTOFF 446 #define NDOSPART 4 struct dos_partition { unsigned char dp_flag; /* bootstrap flags */ unsigned char dp_shd; /* starting head */ unsigned char dp_ssect; /* starting sector */ unsigned char dp_scyl; /* starting cylinder */ unsigned char dp_typ; /* partition type */ #define DOSPTYP_386BSD 0xa5 /* 386BSD partition type */ unsigned char dp_ehd; /* end head */ unsigned char dp_esect; /* end sector */ unsigned char dp_ecyl; /* end cylinder */ unsigned long dp_start; /* absolute starting sector number */ unsigned long dp_size; /* partition size in sectors */ } dos_partitions[NDOSPART];