IMD 1.05: 26/09/2005 22:02:23 Ser.No.: X03-201 Item: XENIX Dev Sys Version: 3.0BS0 (ACS-Xenix) Volume: #7 of 7 (Utilities)   usr/dict/words100644 3 3 577641 3425136000 6766  Adair Adam adamant Adams Adamson adapt adaptation adaptive add added addend addenda addendum addict Addis Addison addition additional additive addle address addressee Addressograph adduce Adelaide Adele Adelia Aden adenoma adept adequacy adequate adhere adherent adhesion adhesive adiabatic adieu adipic Adirondack adjacent adjectival adjective adjoin adjoint adjourn adjudge adjudicate adjunct adjust adjutant Adkins Adler administer administrable administrate administratrix admiral admiralty admiration admir10th 1st 2nd 3rd 4th 5th 6th 7th 8th 9th a A&M A&P a's AAA AAAS Aaron AAU ABA Ababa aback abalone abandon abase abash abate abater abbas abbe abbey abbot Abbott abbreviate abc abdicate abdomen abdominal abduct Abe abed Abel Abelian Abelson Aberdeen Abernathy aberrant aberrate abet abetted abeyance abeyant abhorred abhorrent abide Abidjan Abigail abject ablate ablaze able ablution Abner abnormal Abo aboard abode abolish abolition abominable abominate aboriginal aborigine aborning abort abound about above aboe admissible admission admit admittance admitted admitting admix admixture admonish admonition ado adobe adolescent Adolph Adolphus Adonis adopt adoption adoptive adore adorn adrenal adrenaline Adrian Adriatic Adrienne adrift adroit adsorb adsorbate adsorption adsorptive adulate adult adulterate adulterous adultery adulthood advance advantage advantageous advent adventitious adventure adventurous adverb adverbial adversary adverse advert advertise advice advisable advise advisee advisor advisory advocacy adveboard aboveground abovementioned abrade Abraham Abram Abramson abrasion abrasive abreact abreast abridge abridgment abroad abrogate abrupt abscess abscissa abscissae absence absent absentee absenteeism absentia absentminded absinthe absolute absolution absolve absorb absorbent absorption absorptive abstain abstention abstinent abstract abstractor abstruse absurd abuilding abundant abusable abuse abusive abut abutted abutting abysmal abyss Abyssinia AC academia academic academician academy Acadia acanthus vocate Aegean aegis Aeneas Aeneid aeolian Aeolus aerate aerial Aerobacter aerobic aerodynamic aerogene aeronautic aerosol aerospace Aeschylus aesthete aesthetic afar affable affair affect affectate affectionate afferent affiance affidavit affiliate affine affinity affirm affirmation affirmative affix afflict affluence affluent afford afforest afforestation affront Afghan Afghanistan aficionado afield afire aflame afloat afoot aforementioned aforesaid aforethought afraid afresh Africa afro aft aftereffect afAcapulco accede accelerate accelerometer accent accentual accentuate accept acceptant acceptor access accessible accession accessory accident accidental accipiter acclaim acclamation acclimate acclimatize accolade accommodate accompaniment accompanist accompany accomplice accomplish accord accordant accordion accost account accountant accouter Accra accredit accreditate accretion accrual accrue acculturate accumulate accuracy accurate accusation accusative accuse accustom ace acetate acetic acetone acetylenterglow afterimage afterlife aftermath afternoon afterthought afterward again against Agamemnon agate Agatha agave age Agee agenda agent agglomerate agglutinate agglutinin aggravate aggregate aggression aggressive aggressor aggrieve aghast agile agitate agleam Agnes Agnew agnomen agnostic ago agone agony agouti agrarian agree agreeable agreed agreeing Agricola agricultural agriculture agrimony ague Agway ah ahead ahem Ahmadabad ahoy aid Aida aide Aides Aiken ail ailanthus aile aileron aim ain't Ainu air aire ache achieve Achilles aching achromatic acid acidic acidulous Ackerman Ackley acknowledge acknowledgeable ACM acme acolyte acorn acoustic acquaint acquaintance acquiesce acquiescent acquire acquisition acquisitive acquit acquittal acquitting acre acreage acrid acrobacy acrobat acrobatic acronym acropolis across acrylate acrylic ACS act Actaeon actinic actinide actinium actinometer activate activation activism Acton actor actress Acts actual actuarial actuate acuity acumen acute acyclic ad Ada adage adagio  borne aircraft airdrop airedale Aires airfare airfield airflow airframe airlift airline airlock airmail airman airmass airmen airpark airplane airport airspeed airstrip airtight airway airy aisle Aitken ajar Ajax Akers akin Akron ala Alabama Alabamian alabaster alacrity alai Alameda Alamo alan alarm Alaska alb alba albacore Albania Albanian Albany albatross albeit Alberich Albert Alberta Alberto Albrecht Albright album albumin Albuquerque Alcestis alchemy Alcmena Alcoa alcohol alcoholic alcoholism Alcott alan amphibious amphibole amphibology ample amplifier amplify amplitude amply amputate amra Amsterdam Amtrak amulet amuse amy amygdaloid an ana Anabaptist Anabel anachronism anachronistic anaconda anaerobic anaglyph anagram Anaheim analeptic analgesic analogous analogue analogy analyses analysis analyst analytic anamorphic anaplasmosis anarch anarchic anarchy anastigmat anastigmatic anastomosis anastomotic anathema Anatole anatomic anatomy ancestor ancestral ancestry anchor anchorage anchorite anchoritism anccove Aldebaran aldehyde Alden alder alderman aldermen Aldrich aldrin ale Alec Aleck aleph alert alewife Alex Alexander Alexandra Alexandre Alexandria Alexei Alexis alfalfa alfonso Alfred Alfredo alfresco alga algae algaecide algal algebra algebraic Algenib Alger Algeria Algerian Algiers alginate Algol Algonquin algorithm algorithmic Alhambra alia alias alibi Alice Alicia alien alienate alight align alike alimony aliphatic aliquot Alison Alistair alive alizarin alkali alkaline alkaloid alkane alkene all Allahovy ancient ancillary and Andean Andersen Anderson Andes andesine andesite Andorra Andover Andre Andrea Andrei Andrew Andrews Andromache Andromeda Andy anecdotal anecdote anemone anent anew angel Angela Angeles angelfish angelic Angelica Angelina Angeline Angelo anger Angie angiosperm angle Angles Anglican Anglicanism anglicize angling Anglo Anglophobia Angola Angora angry angst angstrom anguish angular Angus anharmonic Anheuser anhydride anhydrite anhydrous ani aniline animadversion animadvert animal animh allay allegate allege Allegheny allegiant allegoric allegory Allegra allegro allele allemand Allen Allentown allergic allergy alleviate alley alleyway alliance allied alligator Allis Allison alliterate allocable allocate allot allotropic allotted allotting allow allowance alloy allspice Allstate allude allure allusion allusive alluvial alluvium ally allyl Allyn alma Almaden almagest almanac almighty almond almost aloe aloft aloha alone along alongside aloof aloud alp alpenstock Alpert alpha alphabet alphaate animism animosity anion anionic anise aniseikonic anisotropic anisotropy Anita Ankara ankle Ann Anna annal Annale Annalen Annapolis Anne anneal Annette annex Annie annihilate anniversary annotate announce annoy annoyance annual annuity annul annular annuli annulled annulling annulus annum annunciate anode anodic anomalous anomaly anomie anonymity anonymous anorexia anorthic anorthosite another Anselm Anselmo ANSI answer ant antacid Antaeus antagonism antagonist antagonistic antarctic Antarctica Antares betic alphanumeric Alpheratz Alphonse alpine Alps already Alsatian also Alsop Altair altar alter alterate altercate alterman altern alternate althea although altimeter altitude alto altogether Alton altruism altruist alum alumina aluminate alumna alumnae alumni alumnus alundum Alva Alvarez alveolar alveoli alveolus Alvin alway alyssum am AMA Amadeus amalgam amalgamate amanita amanuensis amaranth Amarillo amass amateur amateurish amatory amaze Amazon ambassador amber ambiance ambidextrous ambient ambiguity aante anteater antebellum antecedent antedate antelope antenna antennae anterior anthem anther anthology Anthony anthracite anthracnose anthropogenic anthropology anthropomorphic anti antic anticipate anticipatory Antietam antigen Antigone antimony Antioch antipasto antipathy antiperspirant antiphonal antipodes antiquarian antiquary antiquated antique antiquity antisemitic antisemitism antithetic antler Antoine Antoinette Anton Antonio Antony antonym anus anvil anxiety anxious any anybody anybody'd anyhow anmbiguous ambition ambitious ambivalent amble ambling ambrose ambrosia ambrosial ambulant ambulate ambulatory ambuscade ambush Amelia ameliorate amen amend amende Amerada America American Americana Americanism americium Ames amethyst amethystine Amherst ami amicable amid amide amidst amigo amino aminobenzoic amiss amity Amman Ammerman ammeter ammo ammonia ammoniac ammonium ammunition Amoco amoeba amoebae amok among amongst amoral amorphous amort Amos amount amperage ampere ampersand Ampex amphetamine amphibi  yone anyplace anything anyway anywhere aorta apache apart apartheid apathetic apathy ape aperiodic aperture apex aphasia aphasic aphelion aphid aphorism Aphrodite apices apiece aplomb apocalypse apocalyptic Apocrypha apocryphal apogee Apollo Apollonian apologetic apologia apology apostate apostle apostolic apostrophe apothecary apothegm apotheosis Appalachia appall appanage apparatus apparel apparent apparition appeal appear appearance appeasable appease appellant appellate append appendage appendices appent ascertain ascetic asceticism ascomycetes ascribe ascription aseptic ash ashame ashen Asher Asheville Ashland Ashley ashman ashmen Ashmolean ashore ashtray ashy Asia Asiatic aside Asilomar asinine ask askance askew asleep asocial asparagus aspect aspen asperity aspersion asphalt aspheric asphyxiate aspidistra aspirant aspirate aspire aspirin asplenium ass assai assail assailant Assam assassin assassinate assault assay assemblage assemble assent assert assess assessor asset assiduity assiduous assign assigndix appertain appetite Appian applaud applause apple Appleby applejack Appleton appliance applicable applicant applicate applied applique apply appoint appointe appointee apportion apposite apposition appraisal appraise appreciable appreciate apprehend apprehension apprehensive apprentice apprise approach approbation appropriable appropriate approval approve approximable approximant approximate apricot April apron apropos APS apse apt aptitude aqua aquarium Aquarius aquatic aqueduct aqueous Aquila Aquinas Aation assignee assimilable assimilate assist assistant associable associate associative assonant assort assuage assume assumption assurance assure Assyria Assyriology Astarte astatine aster asteria asterisk asteroid asteroidal asthma astigmat astigmatic astigmatism ASTM astonish Astor Astoria astound astraddle astral astray astride astringent astronaut astronautic astronomer astronomic astronomy astrophysical astrophysics astute Asuncion asunder asylum asymmetry asymptote asymptotic asynchronous asynchrony rab arabesque Arabia Arabic Araby Arachne arachnid arbiter arbitrage arbitrary arbitrate arboreal arboretum arbutus arc arcade Arcadia arcana arcane arccos arccosine arch archae archaic archaism archangel archbishop archdiocese archenemy Archer archery archetype archetypical archfool Archibald Archimedes arching archipelago architect architectonic architectural architecture archival archive arcing arcsin arcsine arctan arctangent arctic Arcturus Arden ardency ardent arduous are area areaway areawide aren't at AT&T Atalanta atavism atavistic Atchison ate Athabascan atheism atheist Athena Athenian Athens athlete athletic athwart Atkins Atkinson Atlanta atlantes atlantic Atlantica Atlantis atlas atmosphere atmospheric atom atomic atonal atone atop Atreus atrocious atrocity atrophic atrophy Atropos attach attache attack attain attainder attempt attend attendant attendee attention attentive attenuate attest attestation attic Attica attire attitude attorney attract attribute attribution attributive attrition attunearena arenaceous Arequipa Ares Argentina argillaceous Argive argo argon Argonaut Argonne argot argue argument argumentation argumentative Argus arhat Ariadne Arianism arid Aries arise arisen aristocracy aristocrat aristocratic Aristotelean Aristotelian Aristotle arithmetic Arizona ark Arkansan Arkansas Arlen Arlene Arlington arm armada armadillo Armageddon armament Armata armature armchair Armco Armenian armhole armillaria armistice armload armoire Armonk Armour armpit Armstrong army Arnold aroma aromatic a Atwater Atwood atypic Auberge Aubrey auburn auction auctioneer audacious audacity audible audience audio audiotape audiovisual audit audition auditor auditorium auditory Audrey Audubon Auerbach Aug Augean auger augment augmentation augur august Augusta Augustan Augustine Augustus auk aunt auntie aura aural Aurelius aureomycin auric Auriga aurora Auschwitz auspices auspicious austere Austin Australia Australis australite Austria authentic authenticate author authoritarian authoritative autism autistic auto rose around arousal arouse ARPA arpeggio arrack Arragon arraign arrange arrangeable array arrear arrest Arrhenius arrival arrive arrogant arrogate arrow arrowhead arrowroot arroyo arsenal arsenate arsenic arsenide arsine arson art Artemis artemisia arterial arteriole arteriolosclerosis arteriosclerosis artery arthritis Arthur artichoke article articulate articulatory Artie artifact artifice artificial artillery artisan artistry Arturo artwork arty Aruba arum aryl as asbestos ascend ascendant ascension ascen  autobiography autoclave autocollimate autocorrelate autocracy autocrat autocratic autograph automat automata automate automatic automaton automobile automotive autonomic autonomous autonomy autopsy autosuggestible autotransformer autumn autumnal auxiliary avail avalanche avarice avaricious Ave avenge Aventine avenue aver average averred averring averse aversion aversive avert avertive Avery Avesta aviary aviate aviatrix avid avionic Avis Aviv avocado avocate avocet Avogadro avoid avoidance Avon avow await atlett Bartok Barton barycentric basal base baseball baseband baseboard Basel baseline baseman basemen baseplate bash bashaw basic basidiomycetes basil basilar basilisk basin basis bask basket basketball basophilic bass Bassett bassi bassinet basso basswood bastard baste bastion bat Batavia batch Batchelder bate bateau Bateman bater Bates bath bathe bathos bathrobe bathroom bathtub Bathurst batik baton Bator batt battalion Battelle batten battery battle battlefield battlefront battleground batwing bauble bauwake awaken award aware awash away awe awesome awful awhile awkward awl awn awoke awry ax axe axes axial axiology axiom axiomatic axis axle axon aye Ayers Aylesbury azalea Azerbaijan azimuth azimuthal Aztec Aztecan azure b b's babbitt babble Babcock babe Babel baboon baby babyhood Babylon Babylonian babysat babysit baccarat Bacchus Bach bachelor bacilli bacillus back backboard backbone backdrop backfill backgammon background backhand backlash backlog backorder backpack backplane backplate backside backspaced Baudelaire Bauer Bauhaus Bausch bauxite Bavaria bawd bawdy bawl Baxter bay bayberry Bayda bayed Bayesian Baylor bayonet Bayonne bayou Bayport Bayreuth bazaar be beach beachhead beacon bead beadle beady beak beam bean bear bearberry beard Beardsley bearish beast beat beaten beater beatific beatify beatitude beatnik Beatrice beau Beaujolais Beaumont Beauregard beauteous beautify beauty beaux beaver bebop becalm became because Bechtel beck Becker becket Beckman beckon Becky become bed bedazzle bedbug bedfast backstage backstitch backstop backtrack backup backward backwater backwood backyard bacon bacteria bacterial bacterium bad bade Baden badge badinage badland badminton Baffin baffle bag bagatelle baggage bagging baggy Baghdad Bagley bagpipe bah Bahama Bahrein bail Bailey bailiff Baird bait bake Bakelite Bakersfield bakery Bakhtiari baklava Baku balance Balboa balcony bald baldpate Baldwin baldy bale baleen Balfour Bali Balinese balk Balkan balky ball ballad Ballard ballast balled ballerina ballet balletoman Bedford bedim bedimmed bedimming bedlam bedpost bedraggle bedridden bedrock bedroom bedside bedspread bedspring bedstraw bedtime bee Beebe beebread beech Beecham beechwood beef beefsteak beefy beehive been beep beer beet Beethoven beetle befall befallen befell befit befitting befog before beforehand befoul befuddle beg began beget begetting beggar beggary begging begin beginner beginning begonia begotten begrudge beguile begun behalf behave behavioral behead beheld behind behold beige being Beirut bel Belae ballfield balloon ballot ballroom ballyhoo balm balmy balsa balsam Baltic Baltimore Baltimorean balustrade Balzac bam Bamako Bamberger Bambi bamboo ban banal banana Banbury band bandage bandgap bandit bandpass bandstand bandstop bandwagon bandwidth bandy bane baneberry bang bangkok Bangladesh bangle Bangor Bangui banish banister banjo bank bankrupt bankruptcy Banks banquet banshee bantam banter Bantu Bantus baptism baptismal Baptist Baptiste baptistery bar barb Barbados Barbara barbarian barbaric barbaris belate belch Belfast belfry Belgian Belgium Belgrade belie belief believe belittle bell Bella belladonna Bellamy Bellatrix bellboy belle bellflower bellhop bellicose belligerent Bellingham Bellini bellman bellmen bellow bellum bellwether belly bellyache Belmont Beloit belong belove below Belshazzar belt Beltsville belvedere belvidere belying BEMA bemadden beman bemoan bemuse Ben bench benchmark bend Bender Bendix beneath Benedict Benedictine benediction benefactor benefice beneficent beneficial beneficiarym barbarous barbecue barbell barber barberry barbital barbiturate Barbour barbudo Barcelona Barclay bard bare barefaced barefoot barfly bargain barge baritone barium bark barkeep barley Barlow barn Barnabas barnacle Barnard Barnes Barnet Barnett Barney Barnhard barnstorm barnyard barometer baron baroness baronet baronial barony baroque Barr barrack barracuda barrage barre barrel barren Barrett barrette barricade barrier Barrington barrow Barry Barrymore Barstow bartend bartender barter Barth Bartholomew Bar   benefit Benelux benevolent Bengal Bengali benight benign Benjamin Bennett Bennington Benny Benson bent Bentham benthic Bentley Benton Benz Benzedrine benzene Beowulf beplaster bequeath bequest berate Berea bereave bereft Berenices beret berg bergamot Bergen Bergland Berglund Bergman Bergson Bergstrom beribbon beriberi Berkeley berkelium Berkowitz Berkshire Berlin Berlioz Berlitz Berman Bermuda Bern Bernadine Bernard Bernardino Bernardo berne Bernet Bernhard Bernice Bernie Berniece Bernini Bernoulli Bernster blemish blend Blenheim bless blest blew blight blimp blind blindfold blink Blinn blip bliss blister blithe blitz blizzard bloat blob bloc Bloch block blockade blockage blockhouse blocky bloke Blomberg Blomquist blond blonde blood bloodbath bloodhound bloodroot bloodshed bloodshot bloodstain bloodstone bloodstream bloody bloom Bloomfield Bloomington bloop blossom blot blotch blouse blow blowback blowfish blown blowup blubber bludgeon blue blueback blueberry bluebill bluebird bluebonnet bluebook bluebush blin Berra berry berserk Bert berth Bertha Bertie Bertram Bertrand Berwick beryl beryllium beseech beset beside besiege besmirch besotted bespeak bespectacled bespoke Bess Bessel Bessemer Bessie best bestial bestir bestow bestowal bestseller bestselling bestubble bet beta betatron betel Betelgeuse beth bethel Bethesda Bethlehem bethought betide betoken betony betray betrayal betrayer betroth betrothal Betsey Betsy Bette bettor Betty between betwixt bevel beverage Beverly bevy bewail beware bewhisker bewilder uefish bluegill bluegrass bluejacket blueprint bluestocking bluet bluff bluish Blum Blumenthal blunder blunt blur blurry blurt blush bluster blustery blutwurst Blythe BMW boa boar board boardinghouse boast boat boathouse boatload boatman boatmen boatswain boatyard bob Bobbie bobbin bobble bobby bobcat bobolink Boca bock bocklogged bode bodhisattva bodice bodied Bodleian body bodybuild bodyguard Boeing Boeotian bog bogey bogeymen bogging boggle boggy Bogota bogus bogy Bohemia Bohr boil Bois Boise boisterous bewitch bey beyond bezel bhoy Bhutan bianco bias biaxial bib bibb Bible biblical bibliography bibliophile bicameral bicarbonate bicep biceps bichromate bicker biconcave biconnected bicycle bid biddable biddy bide bidiagonal bidirectional bien biennial biennium bifocal bifurcate big Bigelow Biggs bigot bigotry biharmonic bijouterie bikini bilateral bilayer bile bilge bilharziasis bilinear bilingual bilk bill billboard billet billiard Billie Billiken Billings billion billionth billow billy Biltmore bimetallicbold boldface bole boletus bolivar Bolivia bolo Bologna bolometer Bolshevik Bolshevism Bolshevist Bolshoi bolster bolt Bolton Boltzmann bomb bombard bombast bombastic Bombay bombproof bon bona bonanza Bonaparte Bonaventure bond bondage bondsman bondsmen bone bonfire bong bongo Boniface bonito Bonn bonnet Bonneville Bonnie bonus bony bonze boo booby boogie book bookbind bookcase bookend bookie bookish bookkeep booklet bookplate bookseller bookshelf bookshelves bookstore booky boolean boom boomerang boon Boon bimetallism Bimini bimodal bimolecular bimonthly bin binary binaural bind bindery bindle bing binge Bingham Binghamton bingle Bini binocular binomial binuclear biography biology Biometrika biometry biopsy biota bipartisan bipartite biplane bipolar biracial birch bird birdbath birdie birdlike birdseed birdwatch birefringent Birgit Birmingham birth birthday birthplace birthright biscuit bisect bishop bishopric Bismarck Bismark bismuth bison bisque Bissau bistable bistate bit bitch bite bitt bitten bittern bie boor boorish boost boot Bootes booth bootleg bootlegger bootlegging bootstrap bootstrapped bootstrapping booty booze bop borate borax Bordeaux bordello Borden border borderland borderline bore Borealis Boreas boredom Borg boric Boris born borne Borneo boron borosilicate borough Borroughs borrow Bosch Bose bosom boson boss Boston Bostonian Boswell botanic botanist botany botch botfly both bothersome Botswana bottle bottleneck bottom bottommost botulin botulism Boucher bouffant bough bought boulder boule botternut bitterroot bittersweet bitumen bituminous bitwise bivalve bivariate bivouac biz bizarre Bizet blab black blackball blackberry blackbird blackboard blackbody Blackburn blacken Blackfeet blackjack blackmail Blackman blackout blacksmith Blackstone Blackwell bladder bladdernut blade Blaine Blair Blake blame blameworthy blanc blanch Blanchard Blanche bland blandish blank blanket blare blaspheme blasphemous blasphemy blast blat blatant blather Blatz blaze blazon bleach bleak bleary bleat bled bleed Bleeke  ulevard bounce bouncy bound boundary bounty bouquet bourbon bourgeois bourgeoisie bourn boustrophedon bout boutique bovine bow Bowditch Bowdoin bowel Bowen bowfin bowie bowl bowline bowman bowmen bowstring box boxcar boxwood boxy boy boyar Boyce boycott Boyd boyhood boyish Boyle Boylston BP brace bracelet bracken bracket brackish bract brad Bradbury Bradford Bradley Bradshaw Brady brae brag Bragg bragging Brahmaputra Brahms Brahmsian braid Braille brain Brainard brainstorm brainwash brainy brake brakeman brudge budget budgetary Budweiser Buena Buenos buff buffalo buffet bufflehead buffoon bug bugaboo bugeyed bugging buggy bugle Buick build buildup built builtin Bujumbura bulb bulblet Bulgaria bulge bulk bulkhead bulky bull bulldog bulldoze bullet bulletin bullfinch bullfrog bullhead bullhide bullish bullock bullseye bullwhack bully bullyboy bulrush bulwark bum bumble bumblebee bump bumptious bun bunch Bundestag bundle bundy bungalow bungle bunk bunkmate bunny Bunsen bunt Bunyan buoy buoyant burbank Burch burdamble bran branch brand Brandeis Brandenburg brandish Brandon Brandt brandy brandywine Braniff brant brash Brasilia brass brassiere brassy bratwurst Braun bravado brave bravery bravo bravura brawl bray brazen brazier Brazil Brazilian Brazzaville breach bread breadboard breadfruit breadroot breadth break breakage breakaway breakdown breakfast breakoff breakpoint breakthrough breakup breakwater bream breast breastplate breastwork breath breathe breathtaking breathy breccia bred breech breeches breed breeze bren burdensome burdock bureau bureaucracy bureaucrat bureaucratic buret burette burg burgeon burgess burgher burglar burglarproof burglary Burgundian Burgundy burial buried Burke burl burlap burlesque burley Burlington burly Burma Burmese burn Burnett Burnham burnish burnout Burnside burnt burp Burr burro Burroughs burrow bursitis burst bursty Burt Burton Burtt Burundi bury bus busboy Busch bush bushel bushmaster Bushnell bushwhack bushy business businessman businessmen buss bust bustard bustle busy but butaeezy Bremen bremsstrahlung Brenda Brendan Brennan Brenner Brent Brest brethren Breton Brett breve brevet brevity brew brewery Brewster Brian briar bribe bribery Brice brick brickbat bricklayer bricklaying bridal bride bridegroom bridesmaid bridge bridgeable bridgehead Bridgeport Bridget Bridgetown Bridgewater bridgework bridle brief briefcase brig brigade brigadier brigantine Briggs Brigham bright brighten Brighton brilliant Brillouin brim brimstone Brindisi brindle brine bring brink brinkmanship briny Brisdiene butane butch butchery butene buteo butler butt butte butterball buttercup butterfat Butterfield butterfly buttermilk butternut buttery buttock button buttonhole buttress Buttrick butyl butyrate buxom Buxtehude Buxton buy buyer buzz Buzzard buzzer buzzing buzzword buzzy by bye Byers bygone bylaw byline bypass bypath byproduct Byrd Byrne byroad Byron Byronic bystander byte byway byword Byzantine Byzantium c c's cab cabal cabana cabaret cabbage cabdriver cabin cabinet cabinetmake cabinetry cable Cabot cabane brisk bristle Bristol Britain Britannic Britannica britches British Briton Brittany Britten brittle broach broad broadcast broaden broadloom broadside Broadway brocade broccoli brochure Brock brockle Broglie broil broke broken brokerage Bromfield bromide bromine Bromley bronchi bronchial bronchiolar bronchiole bronchitis bronchus bronco Bronx bronze bronzy brood broody brook Brooke Brookhaven Brookline Brooklyn brookside broom broomcorn broth brothel brother brotherhood brought brouhaha brow browbeatencao cachalot cache cackle CACM cacophonist cacophony cacti cactus cadaver cadaverous caddis caddy cadent cadenza cadet Cadillac cadmium cadre Cady Caesar cafe cafeteria cage cagey Cahill cahoot caiman Cain Caine cairn Cairo cajole cake Cal Calais calamitous calamity calamus calcareous calcify calcine calcite calcium calculable calculate calculi calculus Calcutta Calder caldera Caldwell Caleb calendar calendrical calf calfskin Calgary Calhoun caliber calibrate calibre calico California californium caliper ca brown Browne Brownell Brownian brownie brownish browse Bruce brucellosis Bruckner Bruegel bruise bruit Brumidi brunch brunette Brunhilde Bruno Brunswick brunt brush brushfire brushlike brushwork brushy brusque Brussels brutal brute Bryan Bryant Bryce Bryn bryophyta bryophyte bryozoa BSTJ BTL bub bubble Buchanan Bucharest Buchenwald Buchwald buck buckaroo buckboard bucket buckeye buckhorn buckle Buckley Bucknell buckshot buckskin buckthorn buckwheat bucolic bud Budapest Budd Buddha Buddhism Buddhist buddy b  liph caliphate calisthenic Calkins call calla Callaghan Callahan caller calligraph calligraphy calliope Callisto callous callus calm caloric calorie calorimeter Calumet calumniate calumny Calvary calve Calvert Calvin Calvinist calypso cam camaraderie camber Cambodia cambric Cambridge Camden came camel camelback camellia camelopard Camelot cameo camera cameraman cameramen Cameron Cameroun camilla Camille Camino camouflage camp campaign campanile Campbell campfire campground campion campsite campus can can't e catalpa catalysis catalyst catalytic catapult cataract catastrophe catastrophic catatonia catatonic catawba catbird catch catchup catchword catchy catechism categoric category catenate cater caterpillar catfish catharsis cathedra cathedral Catherine Catherwood catheter cathode cathodic catholic Catholicism Cathy cation cationic catkin catlike catnip Catskill catsup cattail cattle cattleman cattlemen Caucasian Caucasus Cauchy caucus caught cauliflower caulk causal causate cause caustic caution cautionary cCanaan Canada Canadian canal canary Canaveral Canberra cancel cancellate cancer cancerous candela candelabra candid candidacy candidate Candide candle candlelight candlestick candlewick candy cane Canfield canine Canis canister canker cankerworm canna cannabis cannel cannery cannibal cannister cannon cannonball cannot canny canoe Canoga canon canonic canopy canst cant cantaloupe canteen Canterbury canterelle canticle cantilever cantle canto canton Cantonese cantor canvas canvasback canvass canyon cap capaciautious cavalcade cavalier cavalry cave caveat caveman cavemen Cavendish cavern cavernous caviar cavil cavilling Caviness cavitate cavort caw cayenne Cayley Cayuga CBS CDC cease Cecil Cecilia Cecropia cedar cede cedilla Cedric ceil celandine Celanese Celebes celebrant celebrate celebrity celerity celery celesta celestial Celia cell cellar cellophane cellular cellulose Celsius Celtic cement cemetery Cenozoic censor censorial censure census cent centaur centenary centennial centerline centerpiece centigrade cous capacitance capacitate capacitive capacitor capacity cape capella caper Capetown capillary Capistrano capita capital capitol Capitoline capitulate capo caprice capricious Capricorn capstan capstone capsule captain captaincy caption captious captivate captive captor capture Caputo capybara car carabao Caracas caramel caravan caraway carbide carbine carbohydrate Carboloy carbon carbonaceous carbonate Carbondale Carbone carbonic carbonyl carborundum carboxy carboy carbuncle carcass carcinogen carcinogenic entipede central centrex centric centrifugal centrifugate centrifuge centrist centroid centum century Cepheus ceramic ceramium Cerberus cereal cerebellum cerebral cerebrate ceremonial ceremonious ceremony Ceres cereus cerise cerium CERN certain certainty certificate certified certify certiorari certitude cerulean Cervantes Cesare cesium cessation cession Cessna cetera Cetus Ceylon Cezanne Chablis Chad Chadwick chafe chaff chagrin chain chair chairlady chairman chairmen chairperson chairwoman chairwomen chaicarcinoma card cardamom cardboard cardiac cardinal cardioid cardiology cardiovascular care careen career carefree caress caret caretaker careworn Carey Cargill cargo cargoes Carib Caribbean caribou caricature Carl Carla Carleton Carlin Carlisle Carlo carload Carlson Carlton Carlyle Carmela Carmen Carmichael carmine carnage carnal carnation carne Carnegie carney carnival carob carol Carolina Caroline Carolingian Carolinian Carolyn carouse carp Carpathia carpenter carpentry carpet carport Carr carrageen Carrase chalcedony chalice chalk chalkline chalky challenge Chalmers chamber chamberlain chambermaid Chambers chameleon chamfer chamois chamomile champ champagne Champaign champion Champlain chance chancel chancellor chancery chancy chandelier chandler Chang change changeable changeover channel chanson chant chantey Chantilly chantry Chao chaos chaotic chap chaparral chapel chaperon chaperone chaplain chaplaincy Chaplin Chapman chapter char character characteristic charcoal chard charge chargeable chariot charisra carrel carriage Carrie carrion Carroll carrot Carruthers carry carryover Carson cart carte cartel Cartesian Carthage cartilage cartographer cartographic cartography carton cartoon cartridge cartwheel Caruso carve carven Casanova casbah cascade cascara case casebook casein casework Casey cash cashew cashier cashmere casino cask casket Cassandra casserole cassette Cassiopeia Cassius cassock cast castanet caste casteth castigate Castillo castle castor Castro casual casualty cat cataclysmic Catalina catalogu  ma charismatic charitable charity Charles Charleston Charley Charlie Charlotte Charlottesville charm Charon chart Charta Chartres chartreuse chartroom Charybdis chase chasm chassis chaste chastise chastity chat chateau chateaux Chatham Chattanooga chattel chatty Chaucer chauffeur Chauncey Chautauqua chaw cheap cheat cheater check checkbook checkerberry checkerboard checklist checkout checkpoint checksum checksummed checkup cheek cheekbone cheeky cheer cheerleader cheery cheese cheesecake cheesecloth cheesy rcumscribe circumscription circumspect circumsphere circumstance circumstantial circumvent circumvention circus cirmcumferential cistern citadel citation cite citizen citizenry citrate citric Citroen citron citrus city cityscape citywide civet civic civil civilian clad cladophora claim claimant Claire clairvoyant clam clamber clammy clamp clamshell clan clandestine clang clank clannish clap clapboard Clapeyron Clara Clare Claremont Clarence Clarendon claret clarify clarinet clarity Clark Clarke clash clasp cheetah chef chelate chemic chemise chemisorb chemisorption chemist chemistry chemotherapy Chen Cheney chenille cherish Cherokee cherry chert cherub cherubim Chesapeake Cheshire chess chest Chester Chesterton chestnut chevalier Chevrolet chevron chevy chew Cheyenne chi Chiang chianti chic Chicago Chicagoan chicanery Chicano chick chickadee chicken chicory chide chief chiefdom chieftain chiffon chigger chignon chilblain child childbirth childhood childish childlike children Chile chili chill chilly chime chiclass classic classification classificatory classify classmate classroom classy clatter clattery Claude Claudia Claudio Claus clause Clausen Clausius claustrophobia claustrophobic claw clay Clayton clean cleanse cleanup clear clearance clearheaded Clearwater cleat cleavage cleave cleft clement Clemson clench clergy clergyman clergymen cleric clerk Cleveland clever cliche click client clientele cliff cliffhang Clifford Clifton climactic climate climatic climatology climax climb clime clinch cling clinging clmera chimeric Chimique chimney chimpanzee chin china Chinaman Chinamen Chinatown chinch chinchilla chine Chinese chink Chinook chinquapin chip chipboard chipmunk Chippendale chiropractor chirp chisel Chisholm chit chiton chivalrous chivalry chive chlorate chlordane chloride chlorine chloroform chlorophyll chloroplatinate chock chocolate Choctaw choice choir choirmaster choke chokeberry cholera cholesterol cholinesterase chomp choose choosy chop Chopin choppy choral chorale chord chordal chordata chordate chinic clinician clink Clint Clinton Clio clip clipboard clique Clive cloak cloakroom clobber clock clockwatcher clockwise clockwork clod cloddish clog clogging cloister clomp clone clonic close closet closeup closure clot cloth clothbound clothe clothesbrush clotheshorse clothesline clothesman clothesmen clothier Clotho cloture cloud cloudburst cloudy clout clove clown cloy club clubhouse clubroom cluck clue clump clumsy clung cluster clutch clutter Clyde Clytemnestra coach coachman coachmen coachwork coadjuore choreograph choreography chorine chortle chorus chose chosen Chou chow chowder Chris Christ christen Christendom Christensen Christenson Christian Christiana Christianson Christie Christina Christine Christlike Christmas Christoffel Christopher Christy chromate chromatic chromatogram chromatograph chromatography chrome chromic chromium chromosphere chronic chronicle chronograph chronography chronology chrysanthemum Chrysler chub chubby chuck chuckle chuckwalla chuff chug chugging chum chummy chump Chungtor coagulable coagulate coal coalesce coalescent coalition coarse coarsen coast coastal coastline coat Coates coattail coauthor coax coaxial cobalt Cobb cobble cobblestone Cobol cobra cobweb coca cocaine coccidiosis cochineal cochlea Cochran Cochrane cock cockatoo cockcrow cockeye cockle cocklebur cockleshell cockpit cockroach cocksure cocktail cocky coco cocoa coconut cocoon cod coda Coddington coddle code codebreak codeposit codetermine codeword codfish codicil codify codpiece Cody coed coeditor coeducatking chunk chunky church churchgo Churchill Churchillian churchman churchmen churchwoman churchwomen churchyard churn chute chutney CIA cicada Cicero Ciceronian cider cigar cigarette cilia ciliate cimcumvention cinch Cincinnati cinder Cinderella cinema cinematic Cinerama cinnabar cinnamon cinquefoil cipher circa Circe circle circlet circuit circuitous circuitry circulant circular circulate circulatory circumcircle circumcise circumcision circumference circumferential circumflex circumlocution circumpolar ci  ion coefficient coequal coerce coercible coercion coercive coexist coexistent coextensive cofactor coffee coffeecup coffeepot coffer Coffey coffin Coffman cog cogent cogitate cognac cognate cognition cognitive cognizable cognizant Cohen cohere coherent cohesion cohesive Cohn cohort cohosh coiffure coil coin coinage coincide coincident coincidental coke col cola colander colatitude Colby cold Cole Coleman Coleridge Colette coleus Colgate colicky coliform coliseum collaborate collage collagen collapse collaps compulsive compulsory computation compute comrade con Conakry Conant concatenate concave conceal concede conceit conceive concentrate concentric concept conception conceptual concern concert concerti concertina concertmaster concerto concession concessionaire conch concierge conciliate conciliatory concise concision conclave conclude conclusion conclusive concoct concomitant concord concordant concourse concrete concretion concubine concur concurred concurrent concurring concussion condemn condemnate condeible collar collarbone collard collate collateral colleague collect collectible collector college collegian collegiate collet collide collie Collier collimate collinear Collins collision collocation colloidal colloquia colloquial colloquium colloquy collude collusion Cologne Colombia Colombo colon colonel colonial colonist colonnade colony Colorado colorate coloratura colorimeter colossal Colosseum colossi colossus colt coltish coltsfoot Columbia columbine Columbus column columnar colza coma Comanche comatomnatory condensate condense condensible condescend condescension condiment condition condolence condone conduce conducive conduct conductance conductor conduit cone coneflower Conestoga coney confabulate confect confectionery confederacy confederate confer conferee conference conferred conferring confess confession confessor confidant confidante confide confident confidential configuration configure confine confirm confirmation confirmatory confiscable confiscate confiscatory conflagrate conflict confluent se comb combat combatant combatted combinate combinator combinatorial combinatoric combine combustible combustion come comeback comedian comedy comet cometary cometh comfort comic Cominform comma command commandant commandeer commando commemorate commend commendation commendatory commensurable commensurate comment commentary commentator commerce commercial commingle commiserate commissariat commissary commission commit committable committal committed committee committeeman committeemen committeewoman commitconfocal conform conformal conformance conformation confound confrere confront confrontation Confucian Confucianism Confucius confuse confusion confute congeal congener congenial congenital congest congestion congestive conglomerate Congo Congolese congratulate congratulatory congregate congress congressional congressman congressmen congresswoman congresswomen congruent conic conifer coniferous conjectural conjecture conjoin conjoint conjugal conjugate conjunct conjuncture conjure Conklin Conley conn Connalteewomen committing commodious commodity commodore common commonality commonplace commonweal commonwealth commotion communal commune communicable communicant communicate communion communique commutate commute compact Compagnie companion companionway company comparative comparator compare comparison compartment compass compassion compassionate compatible compatriot compel compellable compelled compelling compendia compendium compensable compensate compensatory compete competent competition competitive competly connect Connecticut connector Conner Connie connivance connive connoisseur Connors connotation connotative connote connubial conquer conqueror conquest conquistador Conrad Conrail consanguine consanguineous conscience conscientious conscionable conscious conscript conscription consecrate consecutive consensus consent consequent consequential conservation conservatism conservative conservator conservatory conserve consider considerate consign consignee consignor consist consistent consolation console consitor compilation compile complacent complain complainant complaint complaisant compleat complement complementarity complementary complementation complete completion complex complexion compliant complicate complicity compliment complimentary compline comply component comport compose composite composition compositor compost composure compote compound comprehend comprehensible comprehension comprehensive compress compressible compression compressive compressor comprise compromise Compton comptroller compulsion  olidate consonant consonantal consort consortium conspicuous conspiracy conspirator conspiratorial conspire Constance constant Constantine Constantinople constellate consternate constipate constituent constitute constitution constrain constraint constrict constrictor construct constructible constructor construe consul consular consulate consult consultant consultation consultative consume consummate consumption consumptive contact contagion contagious contain contaminant contaminate contemplate contemporanecorrodible corrosion corrosive corrugate corrupt corruptible corruption corsage cortege cortex cortical Cortland corundum coruscate corvette Corvus cos cosec coset Cosgrove cosh cosine cosmetic cosmic cosmology cosmopolitan cosmos cosponsor Cossack cost Costello costume cosy cot cotangent cotillion cotman cotoneaster cotta cottage cotton cottonmouth cottonseed cottonwood cottony Cottrell cotty couch cougar cough could couldn't coulomb Coulter council councilman councilmen councilwoman councilwomen counsel cous contemporary contempt contemptible contemptuous contend content contention contentious contest contestant context contextual contiguity contiguous continent continental contingent continua continual continuant continuation continue continued continuity continuo continuous continuum contort contour contraband contrabass contraception contraceptive contract contractor contractual contradict contradictory contradistinct contradistinguish contralateral contralto contraption contrariety contrary contrast conounselor count countenance counteract counterargument counterattack counterbalance counterclockwise counterexample counterfeit counterflow counterintuitive counterman countermen counterpart counterpoint counterpoise counterproductive counterproposal countersink countersunk countervail countrify country countryman countrymen countryside countrywide county countywide coup coupe couple coupon courage courageous courier course court courteous courtesan courtesy courthouse courtier Courtney courtroom courtyard ctravariant contravene contravention contretemps contribute contribution contributor contributory contrite contrition contrivance contrive control controllable controlled controller controlling controversial controversy controvertible contumacy contusion conundrum Convair convalesce convalescent convect convene convenient convent convention converge convergent conversant conversation converse conversion convert convertible convex convey conveyance conveyor convict convince convivial convocate convoke convoluouscous cousin couturier covalent covariant covariate covary cove coven covenant cover coverage coverall coverlet covert covet covetous cow Cowan coward cowardice cowbell cowbird cowboy cowhand cowherd cowhide cowl cowlick cowman cowmen coworker cowpea cowpoke cowpony cowpox cowpunch cowry cowslip cox coxcomb coy coyote coypu cozen cozier cozy CPA crab crabapple crack crackle crackpot cradle craft craftsman craftsmen craftspeople craftsperson crafty crag craggy Craig cram Cramer cramp cranberry Crandall crate convolution convolve convoy convulse convulsion convulsive Conway cony coo cook cookbook Cooke cookery cookie cooky cool coolant Cooley coolheaded Coolidge coon coop cooperate coordinate Coors coot cop cope Copeland Copenhagen Copernican Copernicus copious coplanar copolymer copperas Copperfield copperhead coppery copra coprinus copter copy copybook copyright copywriter coquette coquina coral coralberry coralline corbel Corbett Corcoran cord cordage cordial cordite cordon corduroy core Corey coriander Cone cranelike Cranford crania cranium crank crankcase crankshaft cranky cranny Cranston crap crappie crash crass crate crater cravat crave craven craw Crawford crawl crawlspace crayfish crayon craze crazy creak creaky cream creamery creamy crease create creating creature creche credent credential credenza credible credit creditor credo credulity credulous creed creedal creek creekside creep creepy cremate crematory Creole Creon creosote crepe crept crescendo crescent cress crest crestfallen Crestview Cretacerinth Corinthian Coriolanus cork corkscrew cormorant corn cornbread cornea Cornelia Cornelius Cornell cornerstone cornet cornfield cornflower cornish cornmeal cornstarch cornucopia Cornwall corny corollary corona Coronado coronary coronate coroner coronet coroutine Corp corpora corporal corporate corporeal corps corpse corpsman corpsmen corpulent corpus corpuscular corral corralled correct corrector correlate correspond correspondent corridor corrigenda corrigendum corrigible corroborate corroboree corrode   ous Cretan Crete cretin cretinous crevice crew crewcut crewel crewman crewmen crib cricket cried crime Crimea criminal crimp crimson cringe crinkle cripple crises crisis crisp Crispin criss crisscross criteria criterion critic critique critter croak crochet crock crockery Crockett crocodile crocodilian crocus croft Croix Cromwell Cromwellian crone crony crook croon crop Crosby cross crossarm crossbar crossbill crosscut crosshatch crosslink crossover crosspoint crossroad crosstalk crosswalk crossway crosswisube Danubian Danzig Daphne dapper dapple Dar dare Darius dark darken darkle Darlene darling darn Darrell dart Dartmouth Darwin Darwinian dash dashboard dastard data database date dateline dater Datsun datum daub Daugherty daughter daunt dauphin dauphine Dave davenport David Davidson Davies Davis Davison davit Davy dawn Dawson day daybed daybreak daydream daylight daytime Dayton Daytona daze dazzle DC De deacon deaconess deactivate dead deaden deadhead deadline deadlock deadwood deaf deafen deal deallocate de crotch crotchety crouch croupier crow crowbait crowberry crowd crowfoot Crowley crown croydon CRT crucial crucible crucifix crucifixion crucify crud cruddy crude cruel cruelty Cruickshank cruise crumb crumble crummy crump crumple crunch crupper crusade crush Crusoe crust crutch crux cry cryogenic cryostat crypt cryptanalysis cryptanalyst cryptanalytic cryptic cryptogram cryptographer cryptography crystal crystalline crystallite crystallographer crystallography cub Cuba cubbyhole cube cubic cuckoo cucumberealt dean Deane Deanna dear Dearborn dearie dearth death deathbed deathward debacle debar debase debate debater debauch debauchery Debbie Debby debenture debilitate debility debit debonair Deborah Debra debrief debris debt debtor debug debugged debugger debugging debunk Debussy debut debutante Dec decade decadent decal decant decathlon Decatur decay Decca decease decedent deceit deceive decelerate December decennial decent deception deceptive decertify decibel decide deciduous decile decimal decipher decisi cud cuddle cuddly cudgel cue cuff cufflink cuisine Culbertson culinary cull culminate culpa culpable culprit cult cultivable cultivate cultural culture Culver culvert Cumberland cumbersome cumin Cummings Cummins cumulate cumulus Cunard cunning Cunningham CUNY cup cupboard Cupid cupidity cupric cuprous cur curate curb curbside curd curdle cure curfew curia curie curio curiosity curious curium curl curlew curlicue Curran currant current curricula curricular curriculum curry curse cursive cursor cursory curt on decisional decisive deck Decker declaim declamation declamatory declaration declarative declarator declaratory declare declassify declination decline declivity decode decolletage decollimate decompile decomposable decompose decomposition decompress decompression decontrol decontrolled decontrolling deconvolution deconvolve decor decorate decorous decorticate decorum decouple decrease decree decreeing decrement decry decrypt decryption dedicate deduce deducible deduct deductible Dee deed deem deep deepen curtail curtain Curtis curtsey curvaceous curvature curve curvilinear Cushing cushion Cushman cusp Custer custodial custodian custody custom customary customhouse cut cutaneous cutback cute cutlass cutler cutlet cutoff cutout cutover cutthroat cuttlebone cuttlefish cutworm Cyanamid cyanate cyanic cyanide cybernetics cycad Cyclades cycle cyclic cyclist cyclone cyclopean Cyclops cyclorama cyclotron Cygnus cylinder cylindric cynic Cynthia cypress Cyprian Cypriot Cyprus Cyril Cyrus cyst cytochemistry cytolysis deer Deere deerskin deerstalker deface default defeat defecate defect defector defend defendant defensible defensive defer deferable deferent deferred deferring defiant deficient deficit define definite definition definitive deflate deflater deflect deflector defocus deforest deforestation deform deformation defraud defray defrost deft defunct defy degas degeneracy degenerate degradation degrade degrease degree degum dehumidify dehydrate deify deign deity deja deject Del Delaney Delano Delaware delay delectcytoplasm czar czarina Czechoslovakia Czerniak d d'art d'etat d'oeuvre d's dab dabble Dacca dachshund dactyl dactylic dad Dadaism Dadaist daddy Dade Daedalus daffodil daffy dagger Dahl dahlia Dahomey Dailey Daimler dainty dairy Dairylea dairyman dairymen dais daisy Dakar Dakota dale Daley Dallas dally Dalton Daly Dalzell dam damage Damascus damask dame damn damnation Damon damp dampen damsel Dan Dana Danbury dance dandelion dandy Dane dang danger dangerous dangle Daniel Danielson Danish dank Danny Dante Dan  able delectate delegable delegate delete deleterious deletion Delhi Delia deliberate delicacy delicate delicatessen delicious delicti delight Delilah delimit delimitation delineament delineate delinquent deliquesce deliquescent delirious delirium deliver deliverance delivery dell Della Delmarva delouse Delphi Delphic delphine delphinium Delphinus delta deltoid delude deluge delusion delusive deluxe delve demagnify demagogue demand demarcate demark demean demented demerit demigod demijohn demiscible demise da diabase diabetes diabetic diabolic diachronic diacritical diadem diagnosable diagnose diagnoses diagnosis diagnostic diagnostician diagonal diagram diagrammatic dial dialect dialectic dialogue dialysis diamagnetic diamegnetism diameter diamond Diana Diane Dianne diaper diaphanous diaphragm diary diathermy diathesis diatom diatomaceous diatomic diatonic dibble dice dichloride dichondra dichotomy dick dickcissel dickens Dickerson dickey Dickinson Dickson dicotyledon dicta dictate dictatorial diction dictionemit demitted demitting democracy democrat democratic demodulate demography demolish demolition demon demoniac demonic demonstrable demonstrate demote demountable Dempsey demultiplex demur demure demurred demurrer demurring demythologize den denature dendrite dendritic Deneb Denebola deniable denial denigrate denizen Denmark Dennis Denny denominate denotation denotative denote denouement denounce dense densitometer dent dental dentistry Denton denture denudation denude denumerable denunciate Denver deny deoary dictum did didactic diddle didn't Dido die Diebold died Diego diehard dieldrin dielectric diem diesel diet dietary dietetic diethylstilbestrol dietician Dietrich diety Dietz differ different differentiable differential differentiate difficult difficulty diffident diffract diffractometer diffuse diffusible diffusion diffusive difluoride dig digest digestible digestion digestive digging digit digital digitalis dignify dignitary dignity digram digress digression dihedral dilapidate dilatation dilate dilatodorant deoxyribonucleic depart department departure depend dependent depict deplete depletion deplore deploy deport deportation deportee depose deposit depositary deposition depositor depository depot deprave deprecate deprecatory depreciable depreciate depress depressant depressed depressible depressing depression depressive depressor deprivation deprive depth deputation depute deputy derail derange derate derby Derbyshire dereference deregulate Derek derelict deride derision derisive derivate derive derogry dilemma dilettante diligent dill Dillon dilogarithm diluent dilute dilution dim dime dimension dimethyl diminish diminution diminutive dimple din Dinah dine ding dinghy dingo dingy dinnertime dinnerware dinosaur dint diocesan diocese diode Dionysian Dionysus Diophantine diopter diorama dioxide dip diphthong diploma diplomacy diplomat diplomatic dipole Dirac dire direct director directorate directory directrices directrix dirge Dirichlet dirt dirty Dis disambiguate disastrous disburse disc discern discernate derogatory derrick derriere dervish Des descant Descartes descend descendant descendent descent describe description descriptive descriptor desecrate desecrater desegregate desert deserve desiderata desideratum design designate desire desirous desist desk Desmond desolate desolater desorption despair desperado desperate despicable despise despite despoil despond despondent despot despotic dessert dessicate destabilize destinate destine destiny destitute destroy destruct destructor desuetude desultory deible disciple disciplinary discipline discoid discomfit discordant discovery discreet discrepant discrete discretion discretionary discriminable discriminant discriminate discriminatory discus discuss discussant discussion disdain disembowel disgruntle dish dishevel dishwasher dishwater disjunct disk dismal dismissal Disney Disneyland disparage disparate dispel dispelled dispelling dispensable dispensary dispensate dispense dispersal disperse dispersible dispersion dispersive disposable disposal disputant dsynchronize detach detail detain detect detector detent detente detention deter detergent deteriorate determinant determinate determine deterred deterrent deterring detest detestation detonable detonate detour detoxify detract detractor detriment Detroit deuce deus deuterate deuterium devastate develop deviant deviate device devil devilish devious devise devisee devoid devolve Devon Devonshire devote devotee devotion devour devout dew dewar dewdrop Dewey Dewitt dewy dexter dexterity dextrous dey Dhabi dharm  ispute disquietude disquisition disrupt disruption disruptive dissemble disseminate dissension dissertation dissident dissipate dissociable dissociate dissonant dissuade distaff distal distant distillate distillery distinct distinguish distort distortion distraught distribution distributive distributor district disturb disturbance disulfide disyllable ditch dither ditto ditty diurnal diva divalent divan dive diverge divergent diverse diversify diversion diversionary divert divest divestiture divide dividendry drone drool droop droopy drop drophead droplet dropout drosophila dross drought drove drown drowse drowsy drub drudge drudgery drug drugging drugstore druid drum drumhead drumlin Drummond drunk drunkard drunken Drury dry dryad Dryden du dual dualism Duane dub Dubhe dubious dubitable Dublin ducat duchess duck duckling duct ductile ductwork dud Dudley due duel duet duff duffel Duffy dug Dugan dugout duke dukedom dulcet dull dully dulse Duluth duly Duma dumb dumbbell dummy dump Dumpty dumpy dun Dunbar Dunca divination divine divisible division divisional divisive divisor divorce divorcee divulge Dixie dixieland Dixon dizzy Djakarta DNA Dnieper do Dobbin Dobbs doberman dobson docile dock docket dockside dockyard doctor doctoral doctorate doctrinaire doctrinal doctrine document documentary documentation DOD Dodd dodecahedra dodecahedral dodecahedron dodge Dodson doe doesn't doff dog dogbane dogberry Doge dogfish dogging doggone doghouse dogleg dogma dogmatic dogmatism dogtooth dogtrot dogwood Doherty Dolan dolcn dunce dune Dunedin dung dungeon Dunham dunk Dunkirk Dunlap Dunlop Dunn duopolist duopoly dupe duplex duplicable duplicate duplicity DuPont durable Durango duration Durer duress Durham during Durkee Durkin Durrell Durward Dusenberg Dusenbury dusk dusky Dusseldorf dust dustbin dusty Dutch dutchess Dutchman Dutchmen dutiable Dutton duty dwarf dwarves dwell dwelt Dwight dwindle Dwyer dyad dyadic dye dyer dying Dyke Dylan dynamic dynamism dynamite dynamo dynast dynastic dynasty dyne dysentery dyspeptic dysplase doldrum dole doll dollar dollop dolly dolomite dolomitic Dolores dolphin dolt doltish domain dome Domenico Domesday domestic domicile dominant dominate domineer Domingo Dominic Dominican Dominick dominion Dominique domino don don't Donahue Donald Donaldson donate done Doneck donkey Donna Donnelly Donner donnybrook donor Donovan doodle Dooley Doolittle doom doomsday door doorbell doorkeep doorkeeper doorknob doorman doormen doorstep doorway dopant dope Doppler Dora Dorado Dorcas Dorchester Doreen Doria Doria dysprosium dystrophy e e'er e's each Eagan eager eagle ear eardrum earl earmark earn earnest earphone earring earth earthen earthenware earthmen earthmove earthquake earthworm earthy earwig ease easel east eastbound eastern easternmost Eastland Eastman eastward Eastwood easy easygoing eat eaten eater Eaton eave eavesdrop ebb Eben ebony ebullient eccentric Eccles ecclesiastic echelon echinoderm echo echoes eclat eclectic eclipse ecliptic eclogue Ecole ecology Econometrica economic economist economy ecosysic Doris dormant dormitory Dorothea Dorothy Dorset dosage dose dosimeter dossier Dostoevsky dot dote double Doubleday doubleheader doublet doubleton doubloon doubt douce Doug dough Dougherty doughnut Douglas Douglass dour douse dove dovekie dovetail Dow dowager dowel dowitcher Dowling down downbeat downcast downdraft Downey downfall downgrade downhill Downing downplay downpour downright Downs downside downslope downspout downstairs downstream downtown downtrend downtrodden downturn downward downwind dowry Dtem ecstasy ecstatic Ecuador ecumenic ecumenist Ed Eddie eddy edelweiss edematous Eden Edgar edge Edgerton edgewise edging edgy edible edict edifice edify Edinburgh Edison edit Edith edition editor editorial Edmonds Edmondson Edmonton Edmund Edna EDT educable educate Edward Edwardian Edwards Edwin Edwina eel eelgrass EEOC eerie eerily efface effaceable effect effectual effectuate effeminate efferent effete efficacious efficacy efficient Effie effloresce efflorescent effluent effluvia effluvium effort effusioyle doze dozen Dr drab Draco draft draftee draftsman draftsmen draftsperson drafty drag dragging dragnet dragon dragonfly dragonhead dragoon drain drainage drake dram drama dramatic dramatist dramaturgy drank drape drapery drastic draw drawback drawbridge drawl drawn dread dreadnought dream dreamboat dreamlike dreamt dreamy dreary dredge dreg drench dress dressmake dressy drew Drexel Dreyfuss drib dribble dried drier drift drill drink drip drippy Driscoll drive driven driveway drizzle drizzly droll dromeda  ve eft egalitarian Egan egg egghead eggplant eggshell ego egocentric egotism egotist egregious egress egret Egypt Egyptian eh Ehrlich eider eidetic eigenfunction eigenstate eigenvalue eigenvector eight eighteen eighteenth eightfold eighth eightieth eighty Eileen Einstein Einsteinian einsteinium Eire Eisenhower Eisner either ejaculate eject ejector eke Ekstrom Ektachrome el elaborate Elaine elan elapse elastic elastomer elate Elba elbow elder eldest Eldon Eleanor Eleazar elect elector electoral electorate Elos enough enquire enquiry Enrico enrollee ensconce ensemble entendre enter enterprise entertain enthalpy enthrall enthusiasm enthusiast enthusiastic entice entirety entity entomology entourage entranceway entrant entrepreneur entrepreneurial entropy enumerable enumerate enunciable enunciate envelop envelope envious environ envoy envy enzymatic enzyme enzymology Eocene eohippus eosine EPA epaulet ephemeral ephemerides ephemeris Ephesian Ephesus Ephraim epic epicure Epicurean epicycle epicyclic epidemic epideectra electress electret electric electrician electrify electro electrocardiogram electrocardiograph electrode electroencephalogram electroencephalograph electroencephalography electrolysis electrolyte electrolytic electron electronic electrophoresis electrophorus elegant elegiac elegy element elementary Elena elephant elephantine elevate eleven eleventh elfin Elgin Eli elicit elide eligible Elijah eliminate Elinor Eliot Elisabeth Elisha elision elite Elizabeth Elizabethan elk Elkhart ell Ella Ellen Elliottmiology epidermic epidermis epigenetic epigram epigrammatic epigraph epileptic epilogue Epiphany epiphyseal epiphysis episcopal Episcopalian episcopate episode episodic epistemology epistle epistolatory epitaph epitaxial epitaxy epithelial epithelium epithet epitome epoch epochal epoxy epsilon Epsom Epstein equable equal equanimity equate equatorial equestrian equidistant equilateral equilibrate equilibria equilibrium equine equinoctial equinox equip equipoise equipotent equipped equipping equitable equitat ellipse ellipsis ellipsoid ellipsoidal ellipsometer elliptic Ellis Ellison Ellsworth Ellwood elm Elmer Elmhurst Elmira Elmsford Eloise elongate elope eloquent else Elsevier elsewhere Elsie Elsinore Elton eluate elucidate elude elusive elute elution elves Ely Elysee elysian em emaciate emanate emancipate Emanuel emasculate embalm embank embarcadero embargo embargoes embark embarrass embassy embattle embed embedded embedder embedding embellish ember embezzle emblem emblematic embodiment embody embolden embosion equity equivalent equivocal era eradicable eradicate erasable erase Erasmus Erastus erasure Erato Eratosthenes erbium ERDA ere erect erg ergodic Eric Erich Erickson Ericsson Erie Erlenmeyer Ernest Ernestine Ernie Ernst erode erodible Eros erosible erosion erosive erotic erotica err errancy errand errant errantry errata erratic erratum Errol erroneous error ersatz Erskine erudite erudition erupt eruption Ervin Erwin escadrille escalate escapade escape escapee escheat eschew escort escritoire escrow escuts embouchure embower embrace embraceable embrittle embroider embroidery embroil embryo embryonic emcee emendable emerald emerge emergent emeritus Emerson Emery emigrant emigrate Emil Emile Emilio Emily eminent emirate emissary emission emissivity emit emittance emitted emitter emitting emma Emmanuel Emmett emolument Emory emotion emotional empathy emperor emphases emphasis emphatic emphysema emphysematous empire empiric emplace employ employed employee employer employing emporium empower empress empty emulacheon Eskimo Esmark esophagi esoteric especial espionage esplanade Esposito espousal espouse esprit esquire essay Essen essence essential Essex EST establish estate esteem Estella ester Estes Esther estimable estimate estop estoppal estrange estuarine estuary et eta etc etch eternal eternity Ethan ethane ethanol Ethel ether ethereal ethic Ethiopia ethnic ethnography ethnology ethology ethos ethyl ethylene etiology etiquette Etruscan etude etymology eucalyptus Eucharist Euclid Euclidean eucre Eugene Eugenia te emulsify emulsion en enable enamel encapsulate encephalitis enchantress enclave encomia encomium encroach encryption encumber encumbrance encyclopedic end endgame Endicott endogamous endogamy endogenous endorse endosperm endothelial endothermic endow endpoint endurance endure enemy energetic energy enervate enfant Enfield enforceable Eng Engel engine engineer England Engle Englewood English Englishman Englishmen enhance Enid enigma enigmatic enjoinder enlargeable enliven enmity Enoch enormity enormous En  eugenic Euler Eulerian eulogy Eumenides Eunice euphemism euphemist euphorbia euphoria euphoric Euphrates Eurasia eureka Euridyce Euripides Europa Europe European europium Eurydice eutectic Euterpe euthanasia Eva evacuate evade evaluable evaluate evanescent evangel evangelic Evans Evanston Evansville evaporate evasion evasive eve Evelyn even evenhanded evensong event eventide eventual eventuate Eveready Everett Everglades evergreen Everhart everlasting every everybody everyday everyman everyone everything evtractor extraditable extralegal extramarital extraneous extraordinary extrapolate extraterrestrial extravagant extravaganza extrema extremal extreme extremum extricable extricate extrinsic extroversion extrovert extrude extrusion extrusive exuberant exudation exude exult exultant exultation Exxon eye eyeball eyebright eyebrow eyed eyeglass eyelash eyelet eyelid eyepiece eyesight eyewitness Ezekiel Ezra f f's FAA Faber Fabian fable fabric fabricate fabulous facade face faceplate facet facetious facial facileerywhere evict evident evidential evil evildoer evince evocable evocate evoke evolution evolutionary evolve evzone ewe Ewing ex exacerbate exact exaggerate exalt exaltation exam examination examine example exasperate exasperater excavate exceed excel excelled excellent excelling excelsior except exception exceptional excerpt excess excessive exchange exchangeable exchequer excisable excise excision excitation excitatory excite exciton exclaim exclamation exclamatory exclude exclusion exclusionary exclusive  facilitate facsimile fact factious facto factor factorial factory factual faculty fad fade fadeout faery Fafnir fag Fahey Fahrenheit fail failsafe failsoft failure fain faint fair Fairchild Fairfax Fairfield fairgoer Fairport fairway fairy faith fake falcon falconry fall fallacious fallacy fallen fallible falloff fallout fallow Falmouth false falsehood falsify Falstaff falter fame familial familiar familiarly familism family famine famous fan fanatic fancy fanfare fanfold fang fangled Fanny fanout fantasiaexcommunicate excoriate excrescent excresence excrete excretion excretory excruciate exculpate exculpatory excursion excursus excusable excuse execrable execrate execute execution executive executor executrix exegesis exegete exemplar exemplary exemplify exempt exemption exercisable exercise exert Exeter exhale exhaust exhaustible exhaustion exhaustive exhibit exhibition exhibitor exhilarate exhort exhortation exhumation exhume exigent exile exist existent existential exit exodus exogamous exogamy exogenous fantasist fantastic fantasy fantod far farad Faraday Farber farce farcical fare farewell farfetched Fargo farina Farkas Farley farm farmhouse Farmington farmland Farnsworth faro Farrell farsighted farther farthest fascicle fasciculate fascinate fascism fascist fashion fast fasten fastidious fat fatal fate father fathom fatigue Fatima fatten fatty fatuous faucet Faulkner fault faulty faun fauna Faust Faustian Faustus fawn fay Fayette Fayetteville faze FBI FCC FDA Fe fealty fear fearsome feasible feast feat  exonerate exorbitant exorcise exorcism exorcist exoskeleton exothermic exotic exotica expand expanse expansible expansion expansive expatiate expect expectant expectation expectorant expectorate expedient expedite expedition expeditious expel expellable expelled expelling expend expenditure expense expensive experience experiential experiment experimentation expert expertise expiable expiate expiration expire explain explanation explanatory expletive explicable explicate explicit explode exploit exploitatifeather featherbed featherbrain feathertop featherweight feathery feature Feb febrile February fecund fed Fedders federal federate Fedora fee feeble feed feedback feel Feeney feet feign feint Feldman feldspar Felice Felicia felicitous felicity feline Felix fell fellow felon felonious felony felt female feminine feminism feminist femur fence fencepost fend fennel Fenton fenugreek Ferber Ferdinand Ferguson Fermat ferment fermentation Fermi fermion fermium fern Fernando fernery ferocious ferocity Ferrer ferreton exploration exploratory explore explosion explosive exponent exponential exponentiate export exportation expose exposit exposition expositor expository exposure expound express expressible expression expressive expressway expropriate expulsion expunge expurgate exquisite extant extemporaneous extempore extend extendible extensible extension extensive extensor extent extenuate exterior exterminate external extinct extinguish extirpate extol extolled extoller extolling extort extra extracellular extract ex   ferric ferris ferrite ferroelectric ferromagnet ferromagnetic ferromagnetism ferrous ferruginous ferrule ferry fertile fervent fescue fest festival festive fetal fetch fete fetid fetish fetter fettle fetus feud feudal feudatory fever feverish few fiance fiancee fiasco fiat fib fiberboard Fiberglas Fibonacci fibrin fibrosis fibrous fiche fickle fiction fictitious fictive fiddle fiddlestick fide fidelity fidget fiducial fief fiefdom field Fields fieldstone fieldwork fiend fiendish fierce fiery fiesta fife FIspar flurry flush fluster flute flutter flux fly flycatcher flyer Flynn flyway FM FMC foal foam foamflower foamy fob focal foci focus focussed fodder foe fog fogging foggy fogy foible foil foist fold foldout Foley foliage foliate folio folk folklore folksong folksy follicle follicular follow followeth folly Fomalhaut fond fondle fondly font Fontaine Fontainebleau food foodstuff fool foolhardy foolish foolproof foot footage football footbridge Foote footfall foothill footman footmen footnote footpad footpathFO fifteen fifteenth fifth fiftieth fifty fig figaro fight figural figurate figure figurine filament filamentary filbert filch file filet filial filibuster filigree Filipino fill filled filler fillet fillip filly film filmdom filmmake filmstrip filmy filter filth filthy filtrate fin final finale finance financial financier finch find fine finesse finessed finessing finger fingernail fingerprint fingertip finial finicky finish finite fink Finland Finley Finn Finnegan Finnish finny fir fire firearm fireboat f footprint footstep footstool footwear footwork fop foppish for forage foray forbade forbear forbearance Forbes forbid forbidden forbore forborne force forcible ford Fordham fore foreign forensic forest forestry forever forfeit forfeiture forfend forgave forge forgery forget forgettable forgive forgiven forgot forgotten fork forklift forlorn form formal formaldehyde formant format formate formic Formica formidable Formosa formula formulae formulaic formulate Forrest forsake forsaken forsook forswear Forsythirebreak firebug firecracker firefly firehouse firelight fireman firemen fireplace firepower fireproof fireside Firestone firewall firewood firework firm firmware first firsthand fiscal Fischbein Fischer fish fisherman fishermen fishery fishmonger fishpond fishy Fisk Fiske fissile fission fissure fist fisticuff fit Fitch Fitchburg Fitzgerald Fitzpatrick Fitzroy five fivefold fix fixate fixture Fizeau fizzle fjord flabbergast flack flag flagellate flageolet flagging Flagler flagpole flagrant Flagstaff flagste fort forte Fortescue forth forthcome forthright forthwith fortieth fortify fortin fortiori fortitude fortnight Fortran fortress fortuitous fortunate fortune forty forum forward Foss fossil fossiliferous foster fought foul foulmouth found foundation foundling foundry fount fountain fountainhead four fourfold Fourier foursome foursquare fourteen fourteenth fourth fovea fowl fox foxglove Foxhall foxhole foxhound foxtail foxy foyer FPC fraction fractionate fractious fracture fragile fragment fragmentary fragmone flail flair flak flake flaky flam flamboyant flame flamingo flammable Flanagan Flanders flange flank flannel flap flare flash flashback flashlight flashy flask flat flatbed flathead flatiron flatland flatten flattery flatulent flatus flatworm flaunt flautist flaw flax flaxen flaxseed flea fleabane fleck fled fledge fledgling flee fleece fleeing fleet Fleming flemish flesh fleshy fletch Fletcher flew flex flexible flexural flexure flick flier flight flimsy flinch fling flint flintlock flinty flip flipfloentation fragrant frail frailty frambesia frame framework franc franca France Frances franchise Francis Franciscan Francisco francium franco frangipani frank Frankfort Frankfurt frankfurter franklin frantic Franz Fraser fraternal fraternity Frau fraud fraudulent fraught fray frayed Frazier frazzle freak freakish freckle Fred Freddie Freddy Frederic Frederick Fredericks Fredericksburg Fredericton Fredholm Fredrickson free freeboot freed Freedman freedmen freedom freehand freehold freeing freeman freemen Freep flippant flirt flirtation flirtatious flit Flo float floc flocculate flock floe flog flogging flood floodgate floodlight floodlit floor floorboard flop floppy flora floral Florence Florentine florican florid Florida Floridian florin florist flotation flotilla flounce flounder flour flourish floury flout flow flowchart flowerpot flowery flown Floyd flu flub fluctuate flue fluency fluent fluff fluffy fluid fluke flung fluoresce fluorescein fluorescent fluoridate fluoride fluorine fluorite fluorocarbon fluor  port freer freest freestone freethink Freetown freeway freewheel freeze freight French Frenchman Frenchmen frenetic frenzy freon frequent fresco frescoes fresh freshen freshman freshmen freshwater Fresnel Fresno fret Freud Freudian Frey Freya friable friar fricative Frick friction frictional Friday fried Friedman friend frieze frigate Frigga fright frighten frigid Frigidaire frill frilly fringe frisky fritillary fritter Fritz frivolity frivolous frizzle fro frock frog frolic from front frontage frontal frongy geisha gel gelable gelatin gelatine gelatinous geld gem Gemini gemlike Gemma gemstone gender gene genealogy genera general generate generic generosity generous Genesco genesis genetic Geneva Genevieve genial genie genii genius Genoa genotype genre gent genteel gentian gentile gentility gentle gentleman gentlemen gentry genuine genus geocentric geochemical geochemistry geochronology geodesic geodesy geodetic geoduck Geoffrey geographer geography geology geometer geometrician geophysical geophysics geopolitier frontiersman frontiersmen frost frostbite frostbitten frosty froth frothy frown frowzy froze frozen Fruehauf frugal fruit fruition frustrate frustrater frustum fry Frye FTC Fuchs Fuchsia fudge fuel fugal fugitive fugue Fuji Fujitsu fulcrum fulfill full fullback Fullerton fully fulminate fulsome Fulton fum fumble fume fumigant fumigate fun function functionary functor fund fundamental funeral funereal fungal fungi fungible fungicide fungoid fungus funk funnel funny fur furbish furious furl furlong furlotic George Georgetown Georgia Gerald Geraldine geranium Gerard Gerber gerbil Gerhard Gerhardt geriatric germ German germane Germanic germanium Germantown Germany germicidal germicide germinal germinate Gerry Gershwin Gertrude gerund gerundial gerundive gestalt Gestapo gesticulate gesture get getaway Getty Gettysburg geyser Ghana ghastly Ghent gherkin ghetto ghost ghostlike ghostly ghoul ghoulish Giacomo giant giantess gibberish gibbet gibbon Gibbons gibbous Gibbs gibby gibe giblet Gibraltar Gibson giddap giugh Furman furnace furnish furniture furrier furrow furry further furthermore furthermost furthest furtive fury furze fuse fuselage fusible fusiform fusillade fusion fuss fussy fusty futile future fuzz fuzzy g g's gab gabardine gabble gabbro Gaberones gable Gabon Gabriel Gabrielle gad gadfly gadget gadgetry gadolinium gadwall Gaelic gaff gaffe gag gage gagging gaggle gagwriter gaiety Gail gaillardia gain Gaines Gainesville gait Gaithersburg gal gala galactic Galapagos Galatea Galatia galaxy Galbreath gale Gddy Gideon Gifford gift gig gigacycle gigahertz gigantic gigavolt gigawatt gigging giggle Gil gila gilbert Gilbertson Gilchrist gild Gilead Giles gill Gillespie Gillette Gilligan Gilmore gilt gimbal Gimbel gimpy gin Gina ginger gingham gingko ginkgo ginmill Ginn Gino Ginsberg Ginsburg ginseng Giovanni giraffe gird girdle girl girlie girlish girth gist Giuliano Giuseppe give giveaway given giveth glacial glaciate glacier glacis glad gladden gladdy glade gladiator gladiolus Gladstone Gladys glamor glamorous galen galena Galilee gall Gallagher gallant gallantry gallberry gallery galley gallinule gallium gallivant gallon gallonage gallop Galloway gallows gallstone Gallup gallus Galois Galt galvanic galvanism galvanometer Galveston Galway gam Gambia gambit gamble gambol game gamecock gamin gamma gamut gander gang Ganges gangland gangling ganglion gangplank gangster gangway gannet Gannett gantlet gantry Ganymede GAO gap gape gar garage garb garbage garble Garcia garden gardenia Gardner Garfield gargantuan gargle Galamour glance gland glandular glare Glasgow glass glassine glassware glassy Glaswegian glaucoma glaucous glaze gleam glean Gleason glee glen Glenda Glendale Glenn glib Glidden glide glimmer glimpse glint glissade glisten glitch glitter gloat glob global globe globular globule globulin glom glomerular gloom gloomy Gloria Gloriana glorify glorious glory gloss glossary glossed glossolalia glossy glottal glottis Gloucester glove glow glue glued gluey gluing glum glut glutamic glutinous glutton glyceride glyceriribaldi garish garland garlic garner garnet Garrett garrison Garrisonian garrulous Garry garter Garth Garvey Gary gas Gascony gaseous gash gasify gasket gaslight gasoline gasp Gaspee gassy Gaston gastrointestinal gastronome gastronomy gate Gates gateway gather Gatlinburg gator gauche gaucherie gaudy gauge gaugeable Gauguin Gaul gauleiter Gaulle gaunt gauntlet gaur gauss Gaussian gauze gave gavel Gavin gavotte gawk gawky gay Gaylord gaze gazelle gazette GE gear gecko gedanken gee geese Gegenschein Geiger Gei  n glycerinate glycerine glycerol glycol glyph GM GMT gnarl gnash gnat gnaw gneiss gnome gnomon gnomonic gnostic GNP gnu go Goa goad goal goat gob gobble gobbledygook goblet god Goddard goddess godfather Godfrey godhead godkin godlike godmother godparent godsend godson Godwin godwit goer goes Goethe Goff gog goggle Gogh gogo gold Goldberg golden goldeneye goldenrod goldenseal goldfinch goldfish Goldman goldsmith Goldstein Goldstine Goldwater Goleta golf Goliath golly gondola gone gong goniometer Gonzales Gonbernatorial Guenther guerdon guernsey guerrilla guess guesswork guest guffaw Guggenheim Guiana guidance guide guidebook guideline guidepost guiding guignol guild guildhall guile Guilford guillemot guillotine guilt guilty guinea guise guitar gules gulf gull Gullah gullet gullible gully gulp gum gumbo gumdrop gummy gumption gumshoe gun Gunderson gunfight gunfire gunflint gunk gunky gunman gunmen gunnery gunny gunplay gunpowder gunshot gunsling Gunther gurgle Gurkha guru Gus gush gusset gust Gustafson Gustav Gzalez goober good Goode Goodman Goodrich goodwill Goodwin goody Goodyear goof goofy goose gooseberry GOP gopher Gordian Gordon gore Goren gorge gorgeous gorgon Gorham gorilla Gorky gorse Gorton gory gosh goshawk gosling gospel gossamer gossip got Gotham Gothic gotten Gottfried gouge Gould gourd gourmet gout govern governance governess governor gown GPO grab grace gracious grackle grad gradate grade gradient gradual graduate Grady Graff graft graham grail grain grainy grammar grammarian grammatic granary graustave Gustavus gusto gusty gut Gutenberg Guthrie gutsy guttural guy Guyana guzzle Gwen Gwyn gym gymnasium gymnast gymnastic gymnosperm gyp gypsite gypsum gypsy gyrate gyrfalcon gyro gyrocompass gyroscope h h's ha Haag Haas habeas haberdashery Haberman Habib habit habitant habitat habitation habitual habituate hacienda hack hackberry Hackett hackle hackmatack hackney hackneyed hacksaw had Hadamard Haddad haddock Hades Hadley hadn't Hadrian hadron hafnium Hagen Hager haggard haggle Hagstrom Hague Hahn Haifa nd grandchild grandchildren granddaughter grandeur grandfather grandiloquent grandiose grandma grandmother grandnephew grandniece grandpa grandparent grandson grandstand granite granitic granny granola grant grantee grantor granular granulate granule Granville grape grapefruit grapevine graph grapheme graphic graphite grapple grasp grass grassland grassy grata grate grater gratify gratis gratitude gratuitous gratuity grave gravel graven Graves gravestone graveyard gravid gravitate gravy gray graybeard Grayshaiku hail hailstone hailstorm Haines hair haircut hairdo hairpin hairy Haiti Haitian Hal halcyon hale Haley half halfback halfhearted halfway halibut halide Halifax halite hall hallelujah Halley hallmark hallow Halloween hallucinate hallway halma halo halocarbon halogen Halsey Halstead halt halvah halve Halverson ham Hamal Hamburg hamburger Hamilton Hamiltonian hamlet Hamlin hammerhead hammock Hammond hamper Hampshire Hampton hamster Han Hancock hand handbag handbook handclasp handcuff Handel handgun handhon graywacke graze grease greasy great greatcoat greater grebe Grecian Greece greed greedy Greek green Greenbelt Greenberg Greenblatt Greenbriar Greene greenery Greenfield greengrocer greenhouse greenish Greenland Greensboro greensward greenware Greenwich greenwood Greer greet Greg gregarious Gregg Gregory grenade Grendel Grenoble Gresham Greta Gretchen grew grey greyhound greylag grid griddle gridiron grief grievance grieve grievous griffin Griffith grill grille grilled grillwork grim grimace Grimaldi grimold handicap handicapped handicapper handicraft handicraftsman handicraftsmen handiwork handkerchief handle handleable handlebar handline handmade handmaiden handout handset handshake handsome handspike handstand handwrite handwritten handy handyman handymen Haney Hanford hang hangable hangar hangman hangmen hangout hangover hank Hankel Hanley Hanlon Hanna Hannah Hannibal Hanoi Hanover Hanoverian Hans Hansel Hansen hansom Hanson Hanukkah hap haphazard happen happenstance happy harangue harass Harbin harbinge Grimes Grimm grin grind grindstone grip gripe grippe grisly grist gristmill Griswold grit gritty grizzle grizzly groan groat grocer grocery groggy groin grommet groom groove grope grosbeak gross Grosset Grossman Grosvenor grotesque Groton ground groundsel groundskeep groundwork group grout grove grovel Grover grow growl grown grownup growth grub grubby grudge gruesome gruff grumble Grumman grunt gryphon GSA Guam guanidine guano guarantee guaranteeing guaranty guard guardhouse Guardia guardian Guatemala gu  er Harcourt hard hardbake hardboard hardboiled harden hardhat Hardin Harding hardscrabble hardtack hardtop hardware hardwood hardworking hardy hare harelip harem hark Harlan Harlem Harley harm Harmon harmonic harmonious harmony harness Harold harp harpsichord Harpy Harriet Harriman Harrington Harris Harrisburg Harrison harrow harry harsh harshen hart Hartford Hartley Hartman Harvard harvest harvestman Harvey hash hashish hasn't hasp hassle hast haste hasten Hastings hasty hat hatch hatchet hatchway hate hate heterogamous heterogeneity heterogeneous heterosexual heterostructure heterozygous Hetman Hettie Hetty Heublein heuristic Heusen Heuser hew Hewett Hewitt Hewlett hewn hex hexachloride hexadecimal hexafluoride hexagon hexagonal hexameter hexane hey heyday hi Hiatt hiatus Hiawatha hibachi Hibbard hibernate Hibernia hick Hickey Hickman hickory Hicks hid hidalgo hidden hide hideaway hideous hideout hierarchal hierarchic hierarchy hieratic hieroglyphic Hieronymus hifalutin Higgins high highball highboy highester Hatfield hath Hathaway hatred Hatteras Hattie Haugen haughty haul haulage haunch haunt Havana have haven haven't Havilland havoc haw Hawaii Hawaiian hawk Hawkins Hawley hawthorn Hawthorne hay Hayden Haydn Hayes hayfield Haynes Hays haystack hayward hazard hazardous haze hazel hazelnut hazy he he'd he'll head headache headboard headdress headland headlight headline headmaster headphone headquarter headroom headset headsman headsmen headstand headstone headstrong headwall headwater headway headwind heady h highfalutin highhanded highland highlight highroad hightail highway highwayman highwaymen hijack hike hilarious hilarity Hilbert Hildebrand hill hillbilly Hillcrest Hillel hillman hillmen hillock hillside hilltop hilly hilt Hilton hilum him Himalaya himself hind hindmost hindrance hindsight Hindu Hinduism Hines hinge Hinman hint hinterland hip hippo hippodrome hippopotamus hippy hipster Hiram hire hireling Hiroshi Hiroshima Hirsch hirsute his Hispanic hiss histochemic histochemistry histogram histology hiseal Healey health healthy Healy heap hear heard hearken hearsay hearse Hearst heart heartbeat heartbreak hearten heartfelt hearth hearty heat heater heath heathen heathenish Heathkit heave heaven heavenward heavy heavyweight Hebe hebephrenic Hebraic Hebrew Hecate hecatomb heck heckle Heckman hectic hector Hecuba hedge hedgehog hedonism hedonist heed heel heft hefty Hegelian hegemony Heidelberg heigh height heighten Heine Heinrich Heinz heir heiress Heisenberg held Helen Helena Helene Helga helical helicoptetorian historic historiography history histrionic hit Hitachi hitch Hitchcock hither hitherto Hitler hive ho hoagie Hoagland hoagy hoar hoard hoarfrost hoarse hob Hobart Hobbes hobble Hobbs hobby hobbyhorse hobo Hoboken hoc hock hockey hodge hodgepodge Hodges Hodgkin hoe Hoff Hoffman hog hogan hogging hoi Hokan Holbrook Holcomb hold holden holdover holdup hole holeable holiday Holland Hollandaise holler Hollerith Hollingsworth Hollister hollow Holloway hollowware holly hollyhock Hollywood Holm Holman Holmder heliocentric heliotrope helium helix hell hellbender hellebore Hellenic hellfire hellgrammite hellish hello helm helmet Helmholtz helmsman helmsmen Helmut help helpmate Helsinki Helvetica hem hematite Hemingway hemisphere hemispheric hemlock hemoglobin hemolytic hemorrhage hemorrhoid hemosiderin hemp Hempstead hen henbane hence henceforth henchman henchmen Henderson Hendrick Hendricks Hendrickson henequen Henley henpeck Henri Henrietta henry hepatica hepatitis Hepburn heptane her Hera Heraclitus herald hel Holmes holmium holocaust Holocene hologram holography Holst Holstein holster holt Holyoke holystone homage home homebound homebuild homecome homeland homemade homemake homeomorph homeomorphic homeopath homeown Homeric homesick homestead homeward homework homicidal homicide homily homo homogenate homogeneity homogeneous homologous homologue homology homomorphic homomorphism homonym homosexual homotopy homozygous Honda hondo Honduras hone honest honesty honey honeybee honeycomb honeydew honeymoon honeysucklrb Herbert Herculean Hercules herd herdsman here hereabout hereafter hereby hereditary heredity Hereford herein hereinabove hereinafter hereinbelow hereof heresy heretic hereto heretofore hereunder hereunto herewith heritable heritage Herkimer Herman hermeneutic Hermes hermetic Hermite hermitian Hermosa hero Herodotus heroes heroic heroin heroine heroism heron herpes herpetology Herr herringbone Herschel herself Hershel Hershey hertz Hertzog hesitant hesitate hesitater Hesperus Hess Hessian Hester heterodyn   e Honeywell hong honk Honolulu honoraria honorarium honorary honoree honorific Honshu hooch hood hoodlum hoof hoofmark hook hookup hookworm hooligan hoop hoopla hoosegow Hoosier hoot Hoover hooves hop hope Hopkins Hopkinsian hopple hopscotch Horace Horatio horde horehound horizon horizontal hormone horn hornbeam hornblende Hornblower hornet hornmouth horntail horny horology horoscope Horowitz horrendous horrible horrid horrify horror horse horseback horsedom horseflesh horsefly horsehair horselike horseman  icicle icon iconoclasm iconoclast icosahedra icosahedral icosahedron icy Ida Idaho idea ideal ideate idempotent identical identify identity ideology idiocy idiom idiomatic idiosyncrasy idiosyncratic idiot idiotic idle idol idolatry idyll idyllic IEEE if iffy Ifni igloo igneous ignite ignition ignoble ignominious ignoramus ignorant ignore ii iii Ike ileum iliac Iliad ill illegal illegible illegitimacy illegitimate illicit illimitable Illinois illiteracy illiterate illogic illume illuminate illumine illusionhorsemen horseplay horsepower horseshoe horsetail horsewoman horsewomen horticulture Horton Horus hose hosiery hospice hospitable hospital host hostage hostelry hostess hostile hostler hot hotbed hotbox hotel hotelman hothead hothouse hotrod Houdaille Houdini hough Houghton hound hour hourglass house houseboat housebreak housebroken housefly household housekeep housewife housewives housework Houston hove hovel hover how Howard howdy Howe Howell however howl howsoever howsomever hoy hoyden hoydenish Hoyt Hro illusionary illusive illusory illustrate illustrious Ilona Ilyushin image imagery imaginary imaginate imagine imbalance imbecile imbibe Imbrium imbroglio imbrue imbue imitable imitate immaculate immanent immaterial immature immeasurable immediacy immediate immemorial immense immerse immersion immigrant immigrate imminent immiscible immobile immobility immoderate immodest immodesty immoral immortal immovable immune immunization immunoelectrophoresis immutable imp impact impair impale impalpable impart imparthgar hub Hubbard Hubbell hubbub hubby Huber Hubert hubris huck huckleberry huckster huddle Hudson hue hued huff Huffman hug huge hugging Huggins Hugh Hughes Hugo huh hulk hull hum human humane humanitarian humble Humboldt humerus humid humidify humidistat humiliate humility Hummel hummingbird hummock humorous hump humpback Humphrey humpty humus Hun hunch hundred hundredfold hundredth hung Hungarian Hungary hungry hunk hunt Hunter Huntington Huntley Huntsville Hurd hurdle hurl hurley Huron hurrah hurray hurtation impartial impassable impasse impassion impassive impatient impeach impeccable impedance impede impediment impel impelled impeller impelling impend impenetrable imperate imperceivable imperceptible imperfect imperial imperil imperious imperishable impermeable impermissible impersonal impersonate impertinent imperturbable impervious impetuous impetus impiety impinge impious impish implacable implant implantation implausible implement implementation implementer implementor implicant implicate implicit iricane hurry Hurst hurt hurtle hurty Hurwitz husband husbandman husbandmen husbandry hush husky hustle Huston hut hutch Hutchins Hutchinson Hutchison Huxley Huxtable huzzah hyacinth Hyades hyaline Hyannis hybrid Hyde hydra hydrangea hydrant hydrate hydraulic hydride hydro hydrocarbon hydrochemistry hydrochloric hydrochloride hydrodynamic hydroelectric hydrofluoric hydrogen hydrogenate hydrology hydrolysis hydrometer hydrophilic hydrophobia hydrophobic hydrosphere hydrostatic hydrothermal hydrous hydroxide hmplore impolite impolitic imponderable import important importation importunate importune imposable impose imposition impossible impost imposture impotent impound impoverish impracticable impractical imprecate imprecise impregnable impregnate impresario impress impressible impression impressive imprimatur imprint imprison improbable impromptu improper impropriety improve improvident improvisate improvise imprudent impudent impugn impulse impulsive impunity impure imputation impute in inability inaccessible ydroxy hydroxyl hydroxylate hyena hygiene hygrometer hygroscopic hying hymen hymn hymnal hyperbola hyperbolic hyperboloid hyperboloidal hypertensive hyphen hyphenate hypnosis hypnotic hypoactive hypocrisy hypocrite hypocritic hypocycloid hypodermic hypophyseal hypotenuse hypothalamic hypothalamus hypotheses hypothesis hypothetic hypothyroid hysterectomy hysteresis hysteria hysteric hysteron i I'd I'll I'm i's I've iambic Iberia ibex ibid ibis IBM Ibn Icarus ICC ice iceberg icebox iceland Icelandic ichneumon  inaccuracy inaccurate inaction inactivate inactive inadequacy inadequate inadmissible inadvertent inadvisable inalienable inalterable inane inanimate inappeasable inapplicable inappreciable inapproachable inappropriate inapt inaptitude inarticulate inasmuch inattention inattentive inaudible inaugural inaugurate inauspicious inboard inborn inbred inbreed Inc Inca incalculable incandescent incant incantation incapable incapacitate incapacity incarcerate incarnate incautious incendiary incense incentive inceptrable inexpedient inexpensive inexperience inexpert inexpiable inexplainable inexplicable inexplicit inexpressible inextinguishable inextricable infallible infamous infamy infancy infant infantile infantry infantryman infantrymen infarct infatuate infeasible infect infectious infelicitous infelicity infer inference inferential inferior infernal inferno inferred inferring infertile infest infestation infidel infield infight infiltrate infima infimum infinite infinitesimal infinitive infinitude infinitum infiion inceptor incessant incest incestuous inch incident incidental incinerate incipient incise incisive incite inclement inclination incline inclose include inclusion inclusive incoherent incombustible income incommensurable incommensurate incommunicable incommutable incomparable incompatible incompetent incomplete incompletion incomprehensible incomprehension incompressible incomputable inconceivable inconclusive incondensable incongruity incongruous inconsequential inconsiderable inconsiderate inconsistentnity infirm infirmary infix inflame inflammable inflammation inflammatory inflate inflater inflationary inflect inflexible inflict inflow influence influent influential influenza influx inform informal informant Informatica information informative infra infract infrared infrastructure infrequent infringe infuriate infuse infusible infusion ingather ingenious ingenuity ingenuous Ingersoll ingest ingestible ingestion inglorious ingot Ingram ingrate ingratiate ingratitude ingredient ingrown inhabit inhabitant  inconsolable inconspicuous inconstant incontestable incontrollable incontrovertible inconvenient inconvertible incorporable incorporate incorrect incorrigible incorruptible increasable increase incredible incredulity incredulous increment incriminate incubate incubi incubus inculcate inculpable incumbent incur incurred incurrer incurring incursion indebted indecent indecipherable indecision indecisive indecomposable indeed indefatigable indefensible indefinable indefinite indelible indelicate indemnity indinhabitation inhalation inhale inharmonious inhere inherent inherit inheritance inheritor inhibit inhibition inhibitor inhibitory inholding inhomogeneity inhomogeneous inhospitable inhuman inhumane inimical inimitable iniquitous iniquity initial initiate inject injudicious Injun injunct injure injurious injury injustice ink inkling inlaid inland inlay inlet Inman inmate inn innards innate inner innermost innocent innovate innuendo innumerable inoculate inoperable inoperative inopportune inordinate inorganicent indentation indenture independent indescribable indestructible indeterminable indeterminacy indeterminate index India Indian Indiana Indianapolis indicant indicate indices indict Indies indifferent indigene indigenous indigent indigestible indigestion indignant indignation indignity indigo Indira indirect indiscernible indiscoverable indiscreet indiscretion indiscriminate indispensable indispose indisposition indisputable indissoluble indistinct indistinguishable indium individual individualism individu input inquest inquire inquiry inquisition inquisitive inquisitor inroad insane insatiable inscribe inscription inscrutable insect insecticide insecure inseminate insensible insensitive inseparable insert inset inshore inside insidious insight insignia insignificant insincere insinuate insipid insist insistent insofar insolent insoluble insolvable insolvent insomnia insomniac insouciant inspect inspector inspiration inspire instable install installation instalment instance instant instantaneous instead instate indivisible Indochina indoctrinate indolent indomitable Indonesia Indonesian indoor indubitable induce inducible induct inductance inductee inductor indulge indulgent industrial industrialism industrious industry indwell indy ineducable ineffable ineffective ineffectual inefficacy inefficient inelastic inelegant ineligible ineluctable inept inequality inequitable inequity inequivalent ineradicable inert inertance inertia inertial inescapable inestimable inevitable inexact inexcusable inexhaustible inexo   ep instigate instill instillation instinct instinctual institute institution instruct instructor instrument instrumentation insubordinate insubstantial insufferable insufficient insular insulate insulin insult insuperable insupportable insuppressible insurance insure insurgent insurmountable insurrect intact intake intangible integer integrable integral integrand integrate integrity integument intellect intellectual intelligent intelligentsia intelligible intemperance intemperate intend intendant intense intion IRS Irvin Irvine Irving Irwin is Isaac Isaacson Isabel Isabella Isaiah isentropic Isfahan Ising isinglass Isis Islam Islamabad Islamic island isle isn't isochronal isochronous isocline isolate Isolde isomer isomorph isomorphic isopleth isotherm isothermal isotope isotopic isotropic isotropy Israel Israeli Israelite issuance issuant issue Istanbul it IT&T it'd it'll Italian italic Italy itch item iterate Ithaca itinerant itinerary Ito itself ITT iv Ivan Ivanhoe Iverson ivory ivy ix Izvestia j j's jab Jatensify intensive intent intention inter intercalate intercept interception interceptor intercom interdict interest interfere interference interferometer interim interior interject interlude intermediary intermit intermittent intern internal internescine Interpol interpolate interpolatory interpret interpretation interpretive interregnum interrogate interrogatory interrupt interruptible interruption intersect intersperse interstice interstitial interval intervene intervenor intervention interviewee intestatblonsky jack jackanapes jackass jackboot jackdaw jacket Jackie jackknife Jackman jackpot Jackson Jacksonian Jacksonville Jacky JACM Jacob Jacobean Jacobi Jacobian Jacobs Jacobsen Jacobson Jacobus Jacqueline Jacques jade Jaeger jag jagging jaguar jail Jakarta jake jalopy jam Jamaica jamboree James Jamestown Jan Jane Janeiro Janet jangle Janice janissary janitor janitorial Janos Jansenist January Janus Japan Japanese jar jargon Jarvin Jason jasper jaundice jaunty Java javelin jaw jawbone jay jazz jazzy jealoue intestine intimacy intimal intimate intimater intimidate into intolerable intolerant intonate intone intoxicant intoxicate intractable intramolecular intransigent intransitive intrepid intricacy intricate intrigue intrinsic introduce introduction introductory introit introject introspect introversion introvert intrude intrusion intrusive intuit intuitable intuition intuitive inundate inure invade invalid invalidate invaluable invariable invariant invasion invasive invective inveigh inveigle invent inventis jealousy jean Jeannie Jed jeep Jeff Jefferson Jeffersonian Jeffrey Jehovah jejune jejunum jelly jellyfish Jenkins Jennie Jennifer Jennings jenny Jensen jeopard jeopardy Jeremiah Jeremy Jeres Jericho jerk jerky Jeroboam Jerome jerry jersey Jerusalem jess Jesse Jessica Jessie jest Jesuit Jesus jet jetliner jettison Jew jewel Jewell jewelry Jewett Jewish jibe jiffy jig jigging jiggle jigsaw Jill jilt Jim Jimenez Jimmie jimmy jingle jinx jitter jitterbug jitterbugger jitterbugging jittery jive Jo Joan Joanna on inventive inventor inventory Inverness inverse inversion invert invertebrate invertible invest investigate investigatory investor inveterate inviable invidious invigorate invincible inviolable inviolate invisible invitation invite invitee invocate invoice invoke involuntary involute involution involutorial involve invulnerable inward Io iodate iodide iodinate iodine ion ionic ionosphere ionospheric iota Iowa ipecac ipsilateral ipso IQ IR Ira Iran Iraq irate ire Ireland Irene iridium iris Irish Irishman IJoanne Joaquin job jobholder jock jockey jockstrap jocose jocular jocund Joe Joel joey jog jogging joggle Johann Johannes Johannesburg Johansen Johanson John Johnny Johns Johnsen Johnson Johnston Johnstown join joint joke Joliet Jolla jolly jolt Jon Jonas Jonathan Jones jonquil Jordan Jorge Jorgensen Jorgenson Jose Josef Joseph Josephine Josephson Josephus Joshua Josiah joss jostle jot joule jounce journal journalese journey journeyman journeymen joust Jovanovich Jove jovial Jovian jowl jowly joy Joyce joyorishmen irk irksome Irma iron ironic ironside ironstone ironwood irony Iroquois irradiate irrational Irrawaddy irreclaimable irreconcilable irrecoverable irredeemable irredentism irredentist irreducible irrefutable irregular irrelevancy irrelevant irremediable irremovable irreparable irreplaceable irrepressible irreproachable irreproducible irresistible irresolute irresolution irresolvable irrespective irresponsible irretrievable irreverent irreversible irrevocable irrigate irritable irritant irritate irrup  us joyride joystick Jr Juan Juanita jubilant jubilate Judaism Judas Judd Jude judge judicable judicatory judicature judicial judiciary judicious Judith judo Judson Judy jug jugate jugging juggle juice juicy juju jujube juke Jukes julep Jules Julia Julie Juliet Julio Julius July jumble jumbo jump jumpy junco junction junctor juncture June Juneau jungle junior juniper junk junkerdom junketeer junky Juno junta Jupiter Jura jure juridic jurisdiction jurisprudent jurisprudential juror jury just justice justiciabaut Kremlin Kresge Krieger Krishna Kristin Kronecker Krueger Kruger Kruse krypton Ku kudo kudzu Kuhn kulak kumquat Kurd Kurt Kuwait kwashiorkor Kyle Kyoto l l'oeil l's la lab Laban label labile laboratory laborious labour Labrador labyrinth lac lace lacerate Lacerta lacewing Lachesis lack lackadaisic lackey lacquer lacrosse lactate lacuna lacunae lacustrine lacy lad laden ladle lady ladyfern ladylike Lafayette lag lager lagging lagoon Lagos Lagrange Lagrangian Laguerre Lahore laid Laidlaw lain lair laissez le justify Justine Justinian jut jute Jutish juvenile juxtapose juxtaposition k k's Kabuki Kabul Kaddish Kafka Kafkaesque Kahn kaiser Kajar Kalamazoo kale kaleidescope kaleidoscope kalmia Kalmuk Kamchatka kamikaze Kampala Kane kangaroo Kankakee Kansas Kant kaolin Kaplan kapok kappa Karachi Karamazov karate Karen Karl Karol Karp karyatid Kaskaskia Kate Katharine Katherine Kathleen Kathy Katie Katmandu Katowice Katz Kauffman Kaufman kava Kay kayo kazoo Keaton Keats keddah keel keelson keen Keenan keep keeshonlaity lake Lakehurst lakeside lam Lamar lamb lambda lambert lame lamellar lament lamentation laminar laminate lamp lampblack lamplight lampoon lamprey Lana Lancashire Lancaster lance land landau landfill landhold Landis landlord landmark landowner landscape landslide lane Lang Lange Langley Langmuir language languid languish Lanka lanky Lansing lantern lanthanide lanthanum Lao Laocoon Laos Laotian lap lapel lapelled lapidary Laplace lappet lapse Laramie larceny larch lard Laredo Lares large largemouth larged keg Keith Keller Kelley Kellogg kelly kelp Kelsey Kelvin Kemp ken Kendall Kennan Kennecott Kennedy kennel Kenneth Kenney keno Kensington Kent Kenton Kentucky Kenya Kenyon Kepler kept kerchief Kermit kern kernel kerosene Kerr kerry kerygma Kessler kestrel ketch ketchup ketone ketosis Kettering kettle Kevin key keyboard keyed Keyes keyhole Keynes Keynesian keynote keypunch keys keystone keyword khaki khan Khartoum Khmer Khrushchev kibbutzim kibitz kick kickback kickoff kid Kidde kiddie kidnap kidney Kieffersse lariat lark Larkin larkspur Larry Lars Larsen Larson larva larvae larval laryngeal larynges larynx lascar lascivious lase lash lass lasso last latch late latent later latera lateral Lateran laterite latest latex lath lathe Lathrop Latin Latinate latitude latitudinal latitudinary Latrobe latter lattice latus laud laudanum laudatory Lauderdale Laue laugh laughingstock Laughlin laughter launch launder laundry laura laureate laurel Lauren Laurence Laurent Laurentian Laurie Lausanne lava lavabo lavatory lave Kiev Kiewit Kigali Kikuyu Kilgore kill killdeer killjoy kilohm Kim Kimball Kimberly kimono kin kind kindergarten kindle kindred kinematic kinesic kinesthesis kinetic king kingbird kingdom kingfisher kinglet kingpin Kingsbury Kingsley Kingston kink kinky Kinney Kinshasha kiosk Kiowa Kipling Kirby Kirchner Kirchoff kirk Kirkland Kirkpatrick Kirov kiss kissing kit Kitakyushu kitchen kitchenette kite kitten kittenish kittle kitty kiva kivu Kiwanis Klan Klaus klaxon kleenex Klein Kline Klux klystron knack Knappnder lavish Lavoisier law lawbreak lawgive lawmake lawman lawmen lawn Lawrence lawrencium Lawson lawsuit lawyer lax laxative lay layette layman laymen layoff layout Layton layup Lazarus laze lazy lazybones lea leach leachate lead leaden leadeth leadsman leadsmen leaf leaflet leafy league leak leakage leaky lean Leander leap leapfrog leapt Lear learn lease leasehold leash least leather leatherback leatherneck leatherwork leathery leave leaven Leavenworth Lebanese Lebanon lebensraum Lebesgue lecher lechery le knapsack Knauer knead knee kneecap kneel knelt knew knick Knickerbocker knife knifelike knight Knightsbridge knit knives knob knobby knock knockdown knockout knoll knot Knott knotty know knoweth knowhow knowledge knowledgeable Knowles Knowlton known Knox Knoxville knuckle knuckleball Knudsen Knudson knurl Knutsen Knutson koala Koch Kochab Kodachrome kodak Kodiak Koenig Koenigsberg kohlrabi koinonia kola kolkhoz kombu Kong Koppers Koran Korea kosher Kowalewski Kowalski kraft Krakatoa Krakow Kramer Krause kr   ctionary lecture led ledge lee leech Leeds leek leer leery leeward leeway left leftmost leftover leftward lefty leg legacy legal legate legatee legato legend legendary Legendre legerdemain legging leggy leghorn legible legion legislate legislature legitimacy legitimate legume leguminous Lehigh Lehman Leigh Leighton Leila leisure leitmotif leitmotiv Leland lemma lemming lemon lemonade Lemuel Len Lena lend length lengthen lengthwise lengthy lenient Lenin Leningrad Leninism Leninist Lennox Lenny lens lent Lentci lock Locke Lockhart Lockheed Lockian locknut lockout locksmith lockup Lockwood locomote locomotion locomotive locomotor locomotory locus locust locutor lodestone lodge lodgepole Lodowick Loeb loess loft lofty log Logan logarithm logarithmic loge loggerhead logging logic logistic logjam loin loincloth Loire Lois loiter Loki Lola loll lollipop lolly Lomb Lombard Lombardy Lome London lone lonesome long longevity Longfellow longhand longhorn longish longitude longitudinal longleg longstanding longtime longueen lenticular lentil Leo Leon Leona Leonard Leonardo Leone Leonid leonine leopard Leopold leper leprosy Leroy Lesbian lesion Leslie Lesotho less lessee lessen lesson lessor lest Lester let lethal lethargy Lethe Letitia letterhead letterman lettermen lettuce leukemia levee level lever leverage Levi Levin Levine Levis levitate Leviticus Levitt levity levy lew lewd lewis lexical lexicography lexicon Lexington Leyden liable liaison liar libation libel libelous liberal liberate Liberia libertarian libertine libe look lookout lookup loom Loomis loon loop loophole loose looseleaf loosen loosestrife loot lop lope Lopez lopseed lopsided loquacious loquacity lord lore Lorelei Loren Lorinda Lorraine Los losable lose loss lossy lost lot lotion Lotte lottery Lottie lotus Lou loud loudspeak Louis Louisa Louise Louisiana Louisville lounge Lounsbury Lourdes louse lousy louver Louvre love lovebird Lovelace Loveland lovelorn low lowboy lowdown Lowe Lowell lower lowland Lowry loy loyal loyalty lozenge LSI LTV Lubbock Lubell lubrty libidinous libido librarian library librate librettist libretto Libreville Libya lice licensable licensee licensor licentious lichen lick licorice lid lie Liechtenstein lied lien lieu lieutenant life lifeblood lifeboat lifeguard lifelike lifelong lifespan lifestyle lifetime LIFO lift ligament ligand ligature Ligget Liggett light lighten lightface lighthearted lighthouse lightning lightproof lightweight lignite lignum like liken likewise Lila lilac Lilian Lillian Lilliputian Lilly lilt lily Lima limb limricant lubricate lubricious lubricity Lucas Lucerne Lucia Lucian lucid Lucifer Lucille Lucius luck lucky lucrative lucre Lucretia Lucretius lucy ludicrous Ludlow Ludwig Lufthansa Luftwaffe lug luge luger luggage lugging Luis luke lukemia lukewarm lull lullaby lulu lumbar lumber lumberman lumbermen lumen luminance luminary luminescent luminosity luminous lummox lump lumpish Lumpur lumpy lunacy lunar lunary lunate lunatic lunch luncheon lunchroom lunchtime Lund Lundberg Lundquist lung lunge lupine Lura lurch bic limbo lime limelight Limerick limestone limit limitate limousine limp limpet limpid limpkin Lin Lincoln Lind Linda Lindberg Lindbergh linden Lindholm Lindquist Lindsay Lindsey Lindstrom line lineage lineal linear linebacker lineman linemen linen lineup linger lingerie lingo lingua lingual linguist liniment link linkage linoleum Linotype linseed lint Linus lion Lionel lioness lip lipid Lippincott Lipschitz Lipscomb lipstick Lipton liquefy liqueur liquid liquidate liquidus liquor Lisa Lisbon Lise lisle lilure lurid lurk Lusaka luscious lush lust lustrous lusty lutanist lute lutetium Luther Lutheran Lutz lux luxe Luxembourg luxuriant luxuriate luxurious luxury Luzon lycopodium Lydia lye lying Lykes Lyle Lyman lymph lymphocyte lymphoma lynch Lynchburg Lynn lynx Lyon Lyons Lyra lyric lyricism lysergic m m's ma Mabel Mac macabre macaque MacArthur Macassar Macbeth MacDonald mace Macedon Macedonia MacGregor Mach Machiavelli machination machine machinelike machinery machismo macho macintosh mack MacKenzie mackerelsp Lissajous list listen lit litany literacy literal literary literate literature lithe lithic lithium lithograph lithography lithology lithosphere lithospheric litigant litigate litigious litmus litterbug little littleneck Littleton Litton littoral liturgic liturgy live Livermore Liverpool livery livestock liveth livid Livingston livre Liz lizard Lizzie Lloyd lo load loaf loam loamy loan loath loathe loathsome loaves lob lobar lobby lobe loblolly lobo lobscouse lobster lobular lobule local locale locate lo   Mackey Mackinac Mackinaw mackintosh MacMillan Macon macro macromolecular macromolecule macrophage macroscopic macrostructure mad Madagascar madam Madame madcap madden Maddox made Madeira Madeleine Madeline madhouse Madison madman madmen Madonna Madras Madrid madrigal Madsen madstone Mae Maelstrom maestro magazine Magdalene magenta Maggie maggot maggoty magi magic magician magisterial magistrate magna magnanimity magnanimous magnate magnesia magnesite magnesium magnet magnetic magnetite magneto magnetron marsha marshal Marshall marshland marshmallow mart marten martensite Martha martial Martian martin Martinez martingale martini Martinique Martinson Marty martyr martyrdom marvel marvelous Marvin Marx Mary Maryland mascara masculine maser Maseru mash mask mason Masonic Masonite masonry masque masquerade mass Massachusetts massacre massage masseur Massey massif massive mast mastermind masterpiece mastery mastic mastiff mastodon mat match matchbook matchmake mate Mateo mater material materiel maternal maternity gnificent magnify magnitude magnolia magnum Magnuson Magog magpie Magruder Mahayana Mahayanist mahogany Mahoney maid maiden maidenhair maidservant Maier mail mailbox mailman mailmen maim main Maine mainland mainline mainstream maintain maintenance maitre majestic majesty major make makeshift makeup Malabar maladapt maladaptive maladjust maladroit malady Malagasy malaise malaprop malaria malarial Malawi Malay Malaysia Malcolm malconduct malcontent Malden maldistribute Maldive male maledict malevolent malfeasmath mathematic mathematician Mathematik Mathews Mathewson Mathias Mathieu Matilda matinal matinee matins Matisse matriarch matriarchal matrices matriculate matrimonial matrimony matrix matroid matron Matson matte Matthew Matthews mattock mattress Mattson maturate mature maudlin maul Maureen Maurice Maurine Mauritania Mauritius mausoleum mauve maverick Mavis maw mawkish Mawr Max maxim maxima maximal Maximilian maximum Maxine maxwell Maxwellian may Maya mayapple maybe Mayer Mayfair Mayflower mayhem Maynard Mant malformation malformed malfunction Mali malice malicious malign malignant mall mallard malleable mallet Mallory mallow malnourished malnutrition malocclusion Malone Maloney malposed malpractice Malraux malt Malta Maltese Malton maltreat mambo mamma mammal mammalian mammoth man mana manage manageable managerial Managua Manama manatee Manchester mandamus mandarin mandate mandatory mandrake mandrel mandrill mane maneuver Manfred manganese mange mangel mangle Manhattan manhole manhood mania maniac maniacal ayo mayonnaise mayor mayoral mayst Mazda maze mazurka MBA Mbabane McAdams McAllister McBride McCabe McCall McCann McCarthy McCarty McCauley McClain McClellan McClure McCluskey McConnel McConnell McCormick McCoy McCracken McCullough McDaniel McDermott McDonald McDonnell McDougall McDowell McElroy McFadden McFarland McGee McGill McGinnis McGovern McGowan McGrath McGraw McGregor McGuire McHugh McIntosh McIntyre McKay McKee McKenna McKenzie McKeon McKesson McKinley McKinney McKnight McLaughlin McLean McLeod McMmanic manifest manifestation manifold manikin Manila manipulable manipulate Manitoba mankind Manley Mann manna mannequin mannerism manometer manor manpower Mans manse manservant Mansfield mansion manslaughter mantel mantic mantis mantissa mantle mantlepiece mantrap manual Manuel manufacture manumission manumit manumitted manure manuscript Manville many manzanita Mao Maori map maple mar marathon maraud marble Marc Marceau Marcel Marcello march Marcia Marco Marcus Marcy Mardi mare Margaret margarine Margery mahon McMillan McMullen McNally McNaughton McNeil McPherson me mead meadow meadowland meadowsweet meager meal mealtime mealy mean meander meant meantime meanwhile measle measure meat meaty Mecca mechanic mechanism mechanist mecum medal medallion meddle Medea media medial median mediate medic medicate Medici medicinal medicine medico mediocre mediocrity meditate Mediterranean medium medley Medusa meek meet meetinghouse Meg megabit megabyte megahertz megalomania megalomaniac megaton megavolt megawatt megaword argin marginal marginalia Margo Marguerite maria Marie Marietta marigold marijuana Marilyn marimba Marin marina marinade marinate marine Marino Mario Marion marionette marital maritime marjoram Marjorie Marjory mark market marketeer marketplace marketwise Markham Markov Markovian Marks marksman marksmen Marlboro Marlborough Marlene marlin Marlowe marmalade marmot maroon marque marquee marquess Marquette marquis marriage marriageable married Marrietta Marriott marrow marrowbone marry Mars Marseilles marsh Ma   megohm Meier Meistersinger Mekong Mel melamine melancholy Melanesia melange Melanie melanin melanoma Melbourne Melcher meld melee Melinda meliorate Melissa Mellon mellow melodic melodious melodrama melodramatic melody melon Melpomene melt Melville Melvin member membrane memento memo memoir memorabilia memorable memoranda memorandum memorial memory Memphis men menace menagerie menarche mend mendacious mendacity mendelevium Mendelssohn Menelaus menfolk menhaden menial meniscus Menlo Mennonite menstruate mensunefield mineral mineralogy Minerva minestrone minesweeper mingle mini miniature minibike minicomputer minim minima minimal minimax minimum minion ministerial ministry mink Minneapolis Minnesota Minnie minnow Minoan minor Minos minot Minsky minstrel minstrelsy mint minuend minuet minus minuscule minute minuteman minutemen minutiae Miocene Mira miracle miraculous mirage Miranda mire Mirfak Miriam mirror mirth misanthrope misanthropic miscegenation miscellaneous miscellany mischievous miscible miscreant miser rable mensuration mental mention mentor menu Menzies Mephistopheles mercantile Mercator Mercedes mercenary mercer merchandise merchant mercilessly Merck mercurial mercuric mercury mercy mere Meredith meretricious merganser merge meridian meridional meringue merit meritorious Merle merlin mermaid Merriam Merrill Merrimack merriment Merritt merry merrymake Mervin mesa mescal mescaline mesenteric mesh mesmeric meson Mesozoic mesquite mess message messenger Messiah messieurs Messrs messy met metabole metabolic misery misnomer misogynist misogyny mispronunciation miss misshapen missile mission missionary Mississippi Mississippian missive Missoula Missouri Missy mist mistletoe misty MIT Mitchell mite mitigate mitral mitre mitt mitten mix mixture mixup Mizar mnemonic moan moat mob mobcap Mobil mobile mobility mobster moccasin mock mockernut mockery mockingbird mockup modal mode model modem moderate modern modest Modesto modesty modicum modify modish modular modulate module moduli modulo modulus Moe Moen Mogadiscio Mmetabolism metabolite metal metallic metalliferous metallography metalloid metallurgic metallurgist metallurgy metalwork metamorphic metamorphism metamorphose metamorphosis metaphor metaphoric Metcalf mete meteor meteoric meteorite meteoritic meteorology meter methacrylate methane methanol method methodic Methodism Methodist methodology Methuen Methuselah methyl methylene meticulous metier metric metro metronome metropolis metropolitan mettle mettlesome Metzler mew Mexican Mexico Meyer Meyers mezzo mi Miamiohammedan Mohawk Mohr moiety Moines moire Moiseyev moist moisten moisture molal molar molasses mold moldboard mole molecular molecule molehill molest Moliere Moline Moll Mollie mollify mollusk Molly mollycoddle Moloch molt molten Moluccas molybdate molybdenite molybdenum moment momenta momentary momentous momentum mommy Mona Monaco monad monadic monarch monarchic monarchy monastery monastic monaural Monday monel monetarism monetary money moneymake Mongolia mongoose Monica monies monitor monitory monk monkey miasma miasmal mica mice Michael Michaelangelo Michelangelo Michelin Michelson michigan Mickelson Mickey Micky micro microbial microcosm microfiche micrography microjoule micron Micronesia microscopy mid Midas midband midday middle Middlebury middleman middlemen Middlesex Middleton Middletown middleweight midge midget midland midmorn midnight midpoint midrange midscale midsection midshipman midshipmen midspan midst midstream midway midweek Midwest Midwestern midwife midwinter midwives mien miff mig might m monkeyflower monkish Monmouth Monoceros monochromatic monochromator monocotyledon monocular monogamous monogamy monolith monologist monologue monomer monomeric monomial Monongahela monopoly monotonous monoxide Monroe Monrovia Monsanto monsieur monsoon monster monstrosity monstrous Mont montage Montague Montana Montclair monte Montenegrin Monterey Monteverdi Montevideo Montgomery month Monticello Montmartre Montpelier Montrachet Montreal Monty monument moo mood moody moon Mooney moonlight moonlike moonlit mightn't mighty mignon migrant migrate migratory Miguel mike mila Milan milch mild mildew Mildred mile mileage Miles milestone milieu militant militarism militarist military militate militia militiamen milk milkweed milky mill Millard millenarian millenia millennia millennium miller millet Millie Millikan millinery million millionaire millionth millipede Mills millstone milord milt Milton Miltonic Milwaukee mimeograph mimesis mimetic Mimi mimic mimicked mimicking minaret mince mincemeat mind Mindanao mine mi  oor Moore Moorish moose moot mop moraine moral morale Moran morass moratorium Moravia morbid more morel Moreland moreover Moresby Morgan morgen morgue Moriarty moribund Morley Mormon morn Moroccan Morocco moron morose morpheme morphemic morphine morphology morphophonemic Morrill morris Morrison Morrissey Morristown morrow Morse morsel mort mortal mortar mortem mortgage mortgagee mortgagor mortician mortify mortise Morton mosaic Moscow Moser Moses Moslem mosque mosquito moss mossy most mot motel motet moth mal nautilus Navajo naval nave navel navigable navigate navy nay Nazarene Nazareth Nazi Nazism NBC NBS NC NCAA NCR ND Ndjamena ne Neal Neanderthal neap Neapolitan near nearby nearest nearsighted neat neater neath Nebraska nebula nebulae nebular nebulous necessary necessitate necessity neck necklace neckline necktie necromancer necromancy necromantic necropsy necrosis necrotic nectar nectareous nectary Ned nee need needham needle needlepoint needn't needy Neff negate neglect negligee negligent negligible negoother motherhood motherland motif motion motivate motive motley motor motorcycle Motorola mottle motto mould Moulton mound mount mountain mountaineer mountainous mountainside mourn mouse moustache mousy mouth mouthpiece Mouton move movie mow Moyer Mozart MPH Mr Mrs Ms mu much mucilage muck mucosa mucus mud Mudd muddle muddlehead muddy mudguard mudsling Mueller muezzin muff muffin muffle mug mugging muggy mugho Muir Mukden mulatto mulberry mulch mulct mule mulish mull mullah mullein Mullen mulligan mulligatatiable negotiate Negro Negroes Negroid Nehru Neil neither Nell Nellie Nelsen Nelson nemesis neoclassic neodymium neolithic neologism neon neonatal neonate neophyte neoprene Nepal nepenthe nephew Neptune neptunium nereid Nero nerve nervous Ness nest nestle Nestor net nether Netherlands netherworld nettle nettlesome network Neumann neural neuralgia neurasthenic neuritis neuroanatomic neuroanatomy neuroanotomy neurology neuromuscular neuron neuronal neuropathology neurophysiology neuropsychiatric neuroses neurwny mullion multi multifarious multinomial multiple multiplet multiplex multiplexor multipliable multiplicand multiplication multiplicative multiplicity multiply multitude multitudinous mum mumble Mumford mummy munch Muncie mundane mung Munich municipal munificent munition Munson muon Muong mural murder murderous muriatic Muriel murk murky murmur Murphy Murray murre Muscat muscle Muscovy muscular musculature muse museum mush mushroom mushy music musicale musician musicology musk Muskegon muskellunge musket osis neurotic neuter neutral neutrino neutron Neva Nevada neve nevertheless Nevins new Newark Newbold newborn Newcastle newcomer newel Newell newfound Newfoundland newlywed Newman Newport newsboy newscast newsletter newsman newsmen newspaper newspaperman newspapermen newsreel newsstand Newsweek newt newton Newtonian next Nguyen NH Niagara Niamey nib nibble Nibelung nibs Nicaragua nice nicety niche Nicholas Nicholls Nichols Nicholson nichrome nick nickel nickname Nicodemus Nicosia nicotine niece Nielsen Nielmuskmelon muskox muskoxen muskrat muslim muslin mussel must mustache mustachio mustang mustard mustn't musty mutagen mutandis mutant mutate mutatis mute mutilate mutineer mutiny mutt mutter mutton mutual mutuel Muzak Muzo muzzle my Mycenae Mycenaean mycobacteria mycology myel myeline myeloid Myers mylar mynah Mynheer myocardial myocardium myofibril myopia myopic myosin Myra myriad Myron myrrh myrtle myself mysterious mystery mystic mystify mystique myth mythic mythology n n's NAACP nab Nabisco nabla Nadine son Nietzsche Niger Nigeria niggardly nigger niggle nigh night nightcap nightclub nightdress nightfall nightgown nighthawk nightingale nightmare nightmarish nightshirt nighttime NIH nihilism nihilist Nikko Nikolai nil Nile nilpotent nimble nimbus NIMH Nina nine ninebark ninefold nineteen nineteenth ninetieth ninety Nineveh ninth Niobe niobium nip nipple Nippon nirvana nit nitpick nitrate nitric nitride nitrite nitrogen nitrogenous nitroglycerine nitrous nitty Nixon NJ NM no NOAA Noah nob Nobel nobelium noblnadir nag Nagasaki nagging Nagoya Nagy naiad nail Nair Nairobi naive naivete naked name nameable nameplate namesake Nan Nancy Nanette Nanking nanosecond Nantucket Naomi nap nape napkin Naples Napoleon Napoleonic Narbonne narcissist narcissus narcosis narcotic Narragansett narrate narrow nary NASA nasal nascent Nash Nashua Nashville Nassau nasturtium nasty Nat natal Natalie Natchez Nathan Nathaniel nation nationhood nationwide native NATO natty natural nature naturopath naughty nausea nauseate nauseum nautic   e nobleman noblemen noblesse nobody nobody'd nocturnal nocturne nod nodal node nodular nodule Noel noise noisemake noisy Nolan Noll nolo nomadic nomenclature nominal nominate nominee nomograph non nonce nonchalant nondescript none nonetheless nonogenarian nonsensic noodle nook noon noontime noose nor Nordhoff Nordstrom Noreen Norfolk norm Norma normal normalcy Norman Normandy normative Norris north Northampton northbound northeast northeastern northerly northern northernmost northland Northrop Northrup Nortoffensive offer offertory offhand office officeholder officemate official officialdom officiate officio officious offload offsaddle offset offsetting offshoot offshore offspring offstage oft often oftentimes Ogden ogle ogre ogress oh Ohio ohm ohmic ohmmeter oil oilcloth oilman oilmen oilseed oily oint OK Okay Okinawa Oklahoma Olaf old olden Oldenburg Oldsmobile oldster oldy oleander olefin oleomargarine olfactory Olga oligarchic oligarchy oligoclase oligopoly Olin olive Oliver Olivetti Olivia olivine Olsen humberland northward northwest northwestern Norton Norwalk Norway Norwegian Norwich nose nosebag nosebleed nostalgia nostalgic Nostradamus Nostrand nostril not notary notate notch note notebook noteworthy nothing notice noticeable notify notion notoriety notorious Nottingham notwithstanding Nouakchott noun nourish nouveau Nov nova Novak novel novelty November novice novitiate novo Novosibirsk now nowaday nowhere nowise noxious nozzle NRC NSF NTIS nu nuance Nubia nubile nucleant nuclear nucleate nuclei nucleOlson Olympia Olympic Omaha Oman ombudsman omega omelet omen omicron ominous omission omit omitted omitting omnibus omnipotent omnipresent omniscient on once oncology oncoming one Oneida onerous oneself onetime oneupmanship ongoing onion onlook only onomatopoeic Onondaga onrush onrushing onset onslaught Ontario onto ontogeny ontology onus onward onyx oodles ooze opacity opal opalescent opaque OPEC Opel open opera operable operand operant operate operatic operetta Ophiucus opiate opinion opinionate opium opoic nucleoli nucleolus nucleotide nucleus nuclide nude nudge nugatory nugget nuisance null nullify numb numerable numeral numerate numeric Numerische numerology numerous numinous numismatic numismatist nun nuptial nurse nursery nurture nut nutate nutcrack nuthatch nutmeg nutria nutrient nutrition nutritious nutritive nutshell nuzzle NY NYC nylon nymph nymphomania nymphomaniac Nyquist NYU o O'Brien o'clock O'Connell O'Connor O'Dell O'Donnell O'Dwyer o'er O'Hare O'Leary o's O'Shea O'Sullivan oaf oak oaken Oaklssum Oppenheimer opponent opportune opposable oppose opposite opposition oppress oppression oppressive oppressor opprobrium opt opthalmic opthalmologic opthalmology optic optima optimal optimism optimist optimistic optimum option optoacoustic optoisolate optometrist optometry opulent opus or oracle oral orange orangeroot orangutan orate oratoric oratorio oratory orb orbit orbital orchard orchestra orchestral orchestrate orchid orchis ordain ordeal order orderly ordinal ordinance ordinary ordinate ordnance oand Oakley oakwood oar oases oasis oat oath oatmeal obduracy obdurate obedient obeisant obelisk Oberlin obese obey obfuscate obfuscatory obituary object objectify objectivity objector objet oblate obligate obligatory oblige oblique obliterate oblivion oblivious oblong obnoxious oboe oboist obscene obscure obsequious obsequy observant observation observatory observe obsess obsession obsessive obsidian obsolescent obsolete obstacle obstetric obstinacy obstinate obstruct obtain obtrude obtrusive obverse obviatre oregano Oregon Oresteia Orestes organ organdy organic organismic organometallic orgasm orgiastic orgy orient oriental orifice origin original originate Orin Orinoco oriole Orion Orkney Orlando Orleans ornament ornamentation ornate ornately ornery orographic orography Orono orphan orphanage Orpheus Orphic Orr Ortega orthant orthicon orthoclase orthodontic orthodontist orthodox orthodoxy orthogonal orthography orthonormal orthopedic orthophosphate orthorhombic Orville Orwell Orwellian Osaka Osborn Osborne e obvious ocarina occasion occident occidental occipital occlude occlusion occlusive occult occultate occupant occupation occupy occur occurred occurrent occurring ocean Oceania oceanic oceanography oceanside ocelot Oct octagon octagonal octahedra octahedral octahedron octal octane octant octave Octavia octennial octet octile octillion October octogenarian octopus octoroon ocular odd ode Odessa Odin odious odium odometer odorous Odysseus Odyssey Oedipal Oedipus oersted of off offal offbeat Offenbach offend   Oscar oscillate oscillatory oscilloscope Osgood Oshkosh osier Osiris Oslo osmium osmosis osmotic osprey osseous ossify ostensible ostentatious osteology osteopath osteopathic osteopathy osteoporosis ostracism ostracod Ostrander ostrich Oswald Othello other otherwise otherworld otherworldly Otis Ott Ottawa otter Otto Ottoman Ouagadougou ouch ought oughtn't ounce our ourselves oust out outermost outlandish outlawry outrageous ouzel ouzo ova oval ovary ovate oven ovenbird over overhang overt overture Ovid ovifparticiple particle particular particulate partisan partition partner partook partridge party parvenu Pasadena Pascal paschal pasha Paso pass passage passageway Passaic passband passe passenger passer passerby passion passionate passivate passive Passover passport password past paste pasteboard pastel pasteup Pasteur pastiche pastime pastor pastoral pastry pasture pasty pat Patagonia patch patchwork patchy pate patent patentee pater paternal paternoster Paterson path pathetic pathogen pathogenesis pathogeniorm ow owe Owens owing owl owly own ox oxalate oxalic oxcart oxen oxeye Oxford oxidant oxidate oxide Oxnard oxygen oxygenate oyster Ozark ozone p p's pa Pablo Pabst pace pacemake pacific pacifism pacifist pacify pack package Packard packet pact pad paddle paddock paddy padlock padre paean pagan page pageant pageantry paginate pagoda paid pail pain Paine painstaking paint paintbrush pair pairwise Pakistan Pakistani pal palace palate Palatine palazzi palazzo pale Paleolithic Paleozoic Palermo Palestine palettc pathology pathos pathway patient patina patio patriarch patriarchal patriarchy Patrice Patricia patrician Patrick patrimonial patrimony patriot patriotic patristic patrol patrolled patrolling patrolman patrolmen patron patronage patroness Patsy pattern Patterson Patti Patton patty paucity Paul Paula Paulette Pauli Pauline Paulo Paulsen Paulson Paulus paunch paunchy pauper pause pavanne pave pavilion Pavlov paw pawn pawnshop Pawtucket pax pay paycheck payday paymaster Payne payoff payroll Paz PBS pea Peaboe palfrey palindrome palindromic palisade pall palladia Palladian palladium pallet palliate pallid palm palmate palmetto Palmolive Palmyra Palo Palomar palpable palsy Pam Pamela pampa pamper pamphlet pan panacea panama pancake Pancho pancreatic panda Pandanus pandemic pandemonium pander Pandora pane panel pang panic panicked panicky panicle panjandrum panoply panorama panoramic pansy pant pantheism pantheist pantheon panther pantomime pantomimic pantry panty Paoli pap papa papal papaw paper paperback paperwdy peace peaceable peacemake peacetime peach Peachtree peacock peafowl peak peaky peal Peale peanut pear Pearce pearl pearlstone Pearson peasant peasanthood Pease peat pebble pecan peccary peck Pecos pectoral pectoralis peculate peculiar pecuniary pedagogic pedagogue pedagogy pedal pedant pedantic pedantry peddle pedestal pedestrian pediatric pediatrician pedigree pediment Pedro pee peed peek peel peep peephole peepy peer peg Pegasus pegboard pegging Peggy pejorative Peking Pelham pelican pellagra pellet peeight paperwork papery papillary papoose Pappas pappy paprika Papua papyri papyrus par parabola parabolic paraboloid paraboloidal parachute parade paradigm paradigmatic paradise paradox paradoxic paraffin paragon paragraph Paraguay parakeet paralinguistic parallax parallel parallelepiped paralysis paramagnet paramagnetic parameter paramilitary paramount Paramus paranoia paranoiac paranoid paranormal parapet paraphernalia paraphrase parapsychology parasite parasitic parasol parasympathetic paratroop paraxiallt peltry pelvic pelvis Pembroke pemmican pen penal penalty penance penates pence penchant pencil pend pendant pendulum Penelope penetrable penetrate penguin Penh penicillin peninsula penitent penitential penitentiary penman penmen Penn penna pennant Pennsylvania penny pennyroyal Penrose Pensacola pension pensive pent pentagon pentagonal pentane Pentecost pentecostal penthouse penultimate penumbra penurious penury peony people Peoria pep peppergrass peppermint pepperoni peppery peppy Pepsi PepsiCo peptide p parboil parcel parch pardon pare paregoric parent parentage parental parentheses parenthesis parenthetic parenthood Pareto pariah parimutuel Paris parish parishioner Parisian park Parke Parkinson parkish parkland parklike Parks parkway parlance parlay parley parliament parliamentarian parliamentary parochial parody parole parolee parquet Parr Parrish parrot parrotlike parry parse Parsifal parsimonious parsimony parsley parsnip parson parsonage Parsons part partake Parthenon partial participant participate   er perceive percent percentage percentile percept perceptible perception perceptive perceptual perch perchance perchlorate Percival percolate percussion percussive Percy perdition peremptory perennial Perez perfect perfectible perfidious perfidy perforate perforce perform performance perfume perfumery perfunctory perfusion Pergamon perhaps Periclean Pericles perihelion peril Perilla perilous perimeter period periodic peripatetic peripheral periphery periphrastic periscope perish peritectic periwinkle perjurkup picky picnic picnicked picnicker picnicking picofarad picojoule picosecond pictorial picture picturesque piddle pidgin pie piece piecemeal piecewise Piedmont pier pierce Pierre Pierson pietism piety piezoelectric pig pigeon pigeonberry pigeonfoot pigeonhole pigging piggish piggy pigment pigmentation pigpen pigroot pigskin pigtail pike Pilate pile pilfer pilferage pilgrim pilgrimage pill pillage pillar pillory pillow Pillsbury pilot pimp pimple pin pinafore pinball pinch pincushion pine pineapple Pinehure perjury perk Perkins perky Perle permalloy permanent permeable permeate Permian permissible permission permissive permit permitted permitting permutation permute pernicious peroxide perpendicular perpetrate perpetual perpetuate perpetuity perplex perquisite Perry persecute persecution persecutory Perseus perseverance persevere Pershing Persia Persian persiflage persimmon persist persistent person persona personage personal personify personnel perspective perspicacious perspicous perspicuity perspicuous pest ping pinhead pinhole pinion pink pinkie pinkish pinnacle pinnate pinochle pinpoint pinscher Pinsky pint pintail pinto pinwheel pinxter pion pioneer pious pip pipe pipeline Piper pipette pipsissewa piquant pique piracy Piraeus pirate pirogue pirouette Piscataway Pisces piss pistachio pistol pistole piston pit pitch pitchblende pitchfork pitchstone piteous pitfall pith pithy pitiable pitilessly pitman Pitney Pitt Pittsburgh Pittsfield Pittston pituitary pity Pius pivot pivotal pixel pixy pizza pizzicato plrspiration perspire persuade persuasion persuasive pert pertain Perth pertinacious pertinent perturb perturbate Peru perusal peruse Peruvian pervade pervasion pervasive perverse perversion pervert pessimal pessimism pessimist pessimum pest peste pesticide pestilent pestilential pestle pet petal Pete Peter Peters Petersburg Petersen Peterson petit petite petition petrel petri petrify petrochemical petroglyph petrol petroleum petrology petticoat petty petulant petunia Peugeot pew pewee pewter pfennig Pfizer pacate placater place placeable placebo placeholder placenta placental placid plagiarism plagiarist plagioclase plague plagued plaguey plaid plain Plainfield plaintiff plaintive plan planar Planck plane planeload planet planetaria planetarium planetary planetesimal planetoid plank plankton planoconcave planoconvex plant plantain plantation plaque plasm plasma plasmon plaster plastic plastisol plastron plat plate plateau platelet platen platform platinize platinum platitude platitudinous Plato platonic Platonhagocyte phalanger phalanx phalarope phantasy phantom pharmaceutic pharmacist pharmacology pharmacopoeia pharmacy phase PhD pheasant Phelps phenol phenolic phenomena phenomenal phenomenology phenomenon phenotype phenyl phi Phil Philadelphia philanthrope philanthropic philanthropy philharmonic Philip Philippine Philistine Phillips philodendron philology philosoph philosophic philosophy Phipps phloem phlox phobic phoebe Phoenicia phoenix phon phone phoneme phonemic phonetic phonic phonograph phonology phonon ism Platonist platoon Platte plausible play playa playback playboy playground playhouse playmate playoff playroom playtime playwright playwriting plaza plea plead pleasant please pleasure pleat plebeian plebian pledge Pleiades Pleistocene plenary plenipotentiary plenitude plenty plenum plethora pleura pleural Plexiglas pliable pliancy pliant pliers plight Pliny Pliocene plod plop plot plover plowman plowshare pluck plucky plug plugboard pluggable plugging plum plumage plumb plumbago plumbate plume plummet pphony phosgene phosphate phosphide phosphine phosphor phosphoresce phosphorescent phosphoric phosphorus photo photogenic photography photolysis photolytic photon phrase phrasemake phraseology phthalate phycomycetes phyla Phyllis phylogeny physic physician Physik physiochemical physiognomy physiology physiotherapist physiotherapy physique phytoplankton pi pianissimo pianist piano piazza pica Picasso picayune Piccadilly piccolo pick pickaxe pickerel Pickering picket Pickett Pickford pickle Pickman pickoff pic  lump plunder plunge plunk plural plus plush plushy Plutarch Pluto plutonium ply Plymouth plyscore plywood PM pneumatic pneumonia Po poach pocket pocketbook Pocono pod podge podia podium Poe poem poesy poet poetic poetry pogo pogrom poi poignant Poincare poinsettia point poise poison poisonous Poisson poke pokerface pol Poland polar polarimeter Polaris polariscope polariton polarogram polarograph polarography Polaroid polaron pole polecat polemic police policeman policemen policy polio polis polish Politburoe precipitable precipitate precipitous precis precise precision preclude precocious precocity precursor predatory predecessor predicament predicate predict predictor predilect predispose predisposition predominant predominate preeminent preempt preemption preemptive preemptor preen prefab prefabricate preface prefatory prefect prefecture prefer preference preferential preferred preferring prefix pregnant prehistoric prejudice prejudicial preliminary prelude premature premeditate premier premiere premise pre polite politic politician politicking politico polity Polk polka poll Pollard pollcadot pollen pollock polloi pollutant pollute pollution Pollux polo polonaise polonium polopony polygon polygonal polygynous polyhedra polyhedral polyhedron Polyhymnia polymer polymerase polymeric polymorph polymorphic polynomial Polyphemus polyphony polypropylene polytechnic polytope polytypy pomade pomegranate Pomona pomp pompadour pompano Pompeii pompey pompon pomposity pompous Ponce Ponchartrain poncho pond ponder ponderomium premonition premonitory Prentice preoccupy prep preparation preparative preparatory prepare preponderant preponderate preposition preposterous prerequisite prerogative presage Presbyterian presbytery Prescott prescribe prescript prescription prescriptive presence present presentation presentational preservation preserve preside president presidential press pressure prestidigitate prestige prestigious presto Preston presume presumed presuming presumption presumptive presumptuous presuppose presuppositious pong Pontiac pontiff pontific pontificate pony pooch poodle pooh pool Poole poop poor pop pope popish poplar poplin poppy populace popular populate populous porcelain porch porcine porcupine pore pork pornographer pornography porosity porous porphyry porpoise porridge port portage portal Porte portend portent portentous porterhouse portfolio Portia portico portland portmanteau Porto portrait portraiture portray portrayal Portsmouth Portugal Portuguese portulaca posable pose Poseidon poseur posey posh posn pretend pretense pretension pretentious pretext Pretoria pretty prevail prevalent prevent prevention preventive preview previous prexy prey Priam price prick prickle pride priest Priestley prig priggish prim prima primacy primal primary primate prime primeval primitive primitivism primp primrose prince princess Princeton principal Principia principle print printmake printout prior priori priory Priscilla prism prismatic prison prissy pristine Pritchard privacy private privet privilege privy prize pro probit position positive positron posse posseman possemen possess possession possessive possessor possible possum post postage postal postcard postcondition postdoctoral posterior posteriori posterity postfix postgraduate posthumous postlude postman postmark postmaster postmen postmortem postmultiply postoperative postorder postpone postprocess postprocessor postscript postulate posture postwar posy pot potable potash potassium potato potatoes potbelly potboil potent potentate potential potentiometer pothole poabilist probate probe probity problem problematic procaine procedural procedure proceed process procession processor proclaim proclamation proclivity procrastinate procreate procrustean Procrustes Procter proctor procure Procyon prod prodigal prodigious prodigy produce producible product productivity Prof profane profess profession professional professor professorial proffer proficient profile profit profligate profound profundity profuse profusion progenitor progeny prognosis prognosticate programmable protion potlatch Potomac potpourri pottery Potts pouch Poughkeepsie poultice poultry pounce pound pour pout poverty pow powder powderpuff powdery Powell power powerhouse Powers Poynting ppm practicable practical practice practise practitioner Prado pragmatic pragmatism pragmatist Prague prairie praise praiseworthy pram prance prank praseodymium Pratt Pravda pray prayer preach preachy preamble Precambrian precarious precaution precautionary precede precedent precept precess precession precinct precious precipic  grammed programmer programming progress progression progressive prohibit prohibition prohibitive prohibitory project projectile projector Prokofieff prolate proletariat proliferate prolific prolix prologue prolong prolongate prolusion prom promenade Promethean Prometheus promethium prominent promiscuous promise promote promotion prompt promptitude promulgate prone prong pronoun pronounce pronounceable pronto pronunciation proof proofread prop propaganda propagandist propagate propane propel propellant propese Purdue pure purgation purgative purgatory purge purify Purina Puritan puritanic purl purloin purple purport purpose purposive purr purse purslane pursuant pursue pursuer pursuit purvey purveyor purview pus Pusan Pusey push pushbutton pussy pussycat put putative Putnam putt putty puzzle PVC Pygmalion pygmy Pyhrric pyknotic Pyle Pyongyang pyracanth pyramid pyramidal pyre Pyrex pyridine pyrite pyroelectric pyrolyse pyrolysis pyrometer pyrophosphate pyrotechnic pyroxene Pythagoras Pythagorean python q q's Qalled propeller propelling propensity proper property prophecy prophesy prophet prophetic propionate propitiate propitious proponent proportion proportionate propos proposal propose proposition proprietary proprietor propriety proprioception proprioceptive propulsion propyl propylene prorate prorogue prosaic proscenium proscribe proscription prose prosecute prosecution prosecutor Proserpine prosodic prosody prosopopoeia prospect prospector prospectus prosper prosperous prostate prosthetic prostitute prostitutar QED qua quack quackery quad quadrangle quadrangular quadrant quadratic quadrature quadrennial quadric quadriceps quadrilateral quadrille quadrillion quadripartite quadrivium quadruple quadrupole quaff quagmire quahog quail quaint quake Quakeress qualified qualify qualitative quality qualm quandary quanta Quantico quantify quantile quantitative quantity quantum quarantine quark quarrel quarrelsome quarry quarryman quarrymen quart quarterback quartermaster quartet quartic quartile quartz quasar quash quastion prostrate protactinium protagonist protean protease protect protector protectorate protege protein proteolysis proteolytic protest protestant protestation prothonotary protocol proton protoplasm protoplasmic prototype prototypic Protozoa protozoan protract protrude protrusion protrusive protuberant proud Proust prove proven provenance proverb proverbial provide provident providential province provincial provision provisional proviso provocateur provocation provocative provoke provost prow prowess prowli quasicontinuous quasiorder quasiparticle quasiperiodic quasistationary quaternary quatrain quaver quay queasy Quebec queen queer quell quench querulous query quest question questionnaire quetzal queue Quezon quibble quick quicken quickie quicklime quicksand quicksilver quickstep quid quiescent quiet quietus quill quilt quince quinine Quinn quint quintet quintic quintillion quintus quip quipping Quirinal quirk quirky quirt quit quite Quito quitting quiver Quixote quixotic quiz quizzical quo quod quonset qu proximal proximate proximity proxy prudent prudential prune prurient Prussia pry psalm psalter pseudo psi psych psyche psychiatric psychiatrist psychiatry psychic psycho psychoacoustic psychoanalysis psychoanalyst psychoanalytic psychobiology psychology psychometry psychopath psychopathic psychophysic psychophysical psychophysics psychophysiology psychopomp psychoses psychosis psychosomatic psychotherapeutic psychotherapist psychotherapy psychotic psyllium PTA ptarmigan Ptolemaic Ptolemy pub puberty pubescorum quota quotation quote quotient r R&D r's rabat rabbet rabbi rabbit rabble rabid rabies Rabin raccoon race racetrack raceway Rachel Rachmaninoff racial rack racket racketeer rackety racy radar Radcliffe radial radian radiant radiate radical radices radii radio radioactive radioastronomy radiocarbon radiochemical radiochemistry radiography radiology radiometer radiophysics radiosonde radiosterilize radiotherapy radish radium radius radix radon Rae Rafael Rafferty raffia raffish raft rag rage ragging ragoent public publication publish Puccini puck puckish pudding puddingstone puddle puddly pueblo puerile Puerto puff puffball puffed puffery puffin puffy pug Pugh puissant puke Pulaski Pulitzer pull pulley Pullman pullover pulmonary pulp pulpit pulsar pulsate pulse pulverable puma pumice pummel pump pumpkin pumpkinseed pun punch punctual punctuate puncture pundit punditry pungent Punic punish punitive punk punky punster punt puny pup pupal pupate pupil puppet puppeteer puppy puppyish Purcell purchasable purcha  ut ragweed raid rail railbird railhead raillery railroad railway rain rainbow raincoat raindrop rainfall rainstorm rainy raise raisin raj rajah rake rakish Raleigh rally Ralph Ralston ram Ramada Raman ramble ramify Ramo ramp rampage rampant rampart ramrod Ramsey ran ranch rancho rancid rancorous Rand Randall Randolph random randy rang range rangeland Rangoon rangy Ranier rank Rankin rankle ransack ransom rant Raoul rap rapacious rape Raphael rapid rapier rapport rapprochement rapt rapture rare rarefy Raritation relay releasable relevant reliable reliant relic relict relief relieve religion religiosity religious relinquish reliquary relish reluctant remainder reman remand remark Rembrandt remediable remedial remedy remember remembrance Remington reminisce reminiscent remiss remission remit remittance remitted remitting remnant remonstrate remorse remote removal remunerate Remus Rena renaissance renal Renault rend render rendezvous rendition renegotiable renewal Renoir renounce renovate renown Rensselaer rent rn rasa rascal rash Rasmussen rasp raspberry raster Rastus rat rata rate rater rather ratify ratio ratiocinate rationale rattail rattle rattlesnake raucous ravage rave ravel raven ravenous ravine ravish raw rawboned rawhide Rawlinson ray Rayleigh Raymond Raytheon raze razor razorback RCA re reach reactant reactionary read readout ready Reagan reagent real realisable realm realtor realty ream reap rear reason reave reb Rebecca rebel rebelled rebelling rebellion rebellious rebuke rebut rebuttal rebutted rebuttental renunciate rep repairman repairmen reparation repartee repeal repeat repeater repel repelled repellent repelling repent repentant repertoire repertory repetition repetitious repetitive replaceable replenish replete replica replicate report reportorial repository reprehensible representative repression repressive reprieve reprimand reprisal reprise reproach reptile reptilian republic republican repudiate repugnant repulsion repulsive reputation repute request require requisite requisition requited rereing recalcitrant recant recappable recede receipt receive recent receptacle reception receptive receptor recess recession recessive recherche Recife recipe recipient reciprocal reciprocate reciprocity recital recitative reck reckon reclamation recline recluse recompense reconcile recondite reconnaissance record recoup recourse recovery recriminate recruit rectangle rectangular rectifier rectify rectilinear rectitude rector rectory recumbent recuperate recur recurred recurrent recurring recursion recursive rdos rescind rescue resemblant resemble resent reserpine reservation reserve reservoir reside resident residential residual residuary residue residuum resign resignation resilient resin resinlike resiny resist resistant resistible resistive resistor resolute resolution resolve resonant resonate resorcinol resort respect respiration respirator respiratory respire respite resplendent respond respondent response responsible responsive rest restaurant restaurateur restitution restive restoration restorative restecusant recuse red redact redactor redbird redbud redcoat redden reddish redeem redemption redemptive redhead Redmond redneck redound redpoll redshank redstart Redstone redtop reduce reducible reduct redundant redwood reed reedbuck reedy reef reek reel Reese reeve Reeves refection refectory refer referable referee refereeing referenda referendum referent referential referral referred referring refinery reflect reflectance reflector reflexive reforestation reformatory refract refractometer refractory refrainrain restraint restrict restroom result resultant resume resuming resumption resurgent resurrect resuscitate ret retail retain retaliate retaliatory retard retardant retardation retch retention retentive reticent reticulate reticulum retina retinal retinue retire retiree retort retract retribution retrieval retrieve retroactive retrofit retrofitted retrofitting retrograde retrogress retrogressive retrorocket retrospect retrovision return Reub Reuben Reuters reveal revel revelation revelatory revelry revenge refrigerate refuge refugee refusal refutation refute regal regale regalia regard regatta regent regime regimen regiment regimentation Regina Reginald region regional Regis registrable registrant registrar registration registry regress regression regressive regret regrettable regretted regretting regular regulate regulatory Regulus regurgitate rehabilitate rehearsal rehearse Reich Reid reign Reilly reimbursable reimburse rein reindeer reinforce Reinhold reinstate reject rejoice rejoinder relate relax relaxa   revenue rever reverberate revere reverend reverent reverie reversal reverse reversible reversion revert revertive revery revet revile revisable revisal revise revision revisionary revival revive revocable revoke revolt revolution revolutionary revolve revulsion revved revving reward Rex Reykjavik Reynolds rhapsodic rhapsody Rhea Rhenish rhenium rheology rheostat rhesus rhetoric rhetorician rheum rheumatic rheumatism Rhine rhinestone rhino rhinoceros rho Rhoda Rhode Rhodes Rhodesia rhodium rhododendron rhom ruinous rule rum Rumania rumble rumen Rumford ruminant rummage rummy rump rumple rumpus run runabout runaway rundown rune rung Runge runic runneth Runnymede runoff runt runty runway Runyon rupee rupture rural ruse rush Rushmore rusk Russ Russell russet Russia Russo russula rust rustic rustle rustproof rusty rut rutabaga Rutgers Ruth ruthenium Rutherford ruthless rutile Rutland Rutledge rutty Rwanda Ryan Rydberg Ryder rye s s's sa sabbath sabbatical Sabina Sabine sable sabotage sabra sac sachem sack sacral bi rhombic rhombus rhubarb rhyme rhythm rhythmic rib ribald ribbon riboflavin ribonucleic Rica rice rich Richard Richards Richardson Richfield Richmond Richter rick rickets Rickettsia rickety rickshaw Rico ricochet rid riddance ridden riddle ride ridge ridgepole Ridgway ridicule ridiculous Riemann riffle rifle rifleman riflemen rift rig Rigel rigging Riggs right righteous rightmost rightward rigid rigorous Riley rill rilly rim rime rimy Rinehart ring ringlet ringside rink rinse Rio Riordan riot riotous rip sacrament Sacramento sacred sacrifice sacrificial sacrilege sacrilegious sacrosanct sad sadden saddle saddlebag Sadie sadism sadist Sadler safari safe safeguard safekeeping safety saffron sag saga sagacious sagacity sage sagebrush sagging Saginaw sagittal Sagittarius sago saguaro Sahara said Saigon sail sailboat sailfish sailor saint sainthood sake Sal Salaam salacious salad salamander salami salaried salary sale Salem Salerno salesgirl Salesian saleslady salesman salesmen salesperson salient Salina saline riparian ripe ripen Ripley ripoff ripple rise risen risible risk risky Ritchie rite Ritter ritual Ritz rival rivalry riven river riverbank riverfront riverine riverside rivet Riviera rivulet Riyadh roach road roadbed roadblock roadhouse roadside roadster roadway roam roar roast rob robbery robbin Robbins robe Robert Roberta Roberto Roberts Robertson robin Robinson robot robotics robust Rochester rock rockabye rockaway rockbound Rockefeller rocket Rockford Rockies Rockland rocklike Rockwell rocky rococo rod Salisbury Salish saliva salivary salivate Salk Salle sallow sally salmon salmonberry salon saloon saloonkeep salsify salt saltbush saltwater salty salubrious salutary salutation salute Salvador salvage salvageable salvation Salvatore salve salvo Sam samarium samba same Sammy Samoa samovar sample Sampson Samson Samuel Samuelson San Sana sanatoria sanatorium Sanborn Sanchez Sancho sanctify sanctimonious sanction sanctity sanctuary sand sandal sandalwood sandbag sandblast Sandburg sanderling Sanders Sanderson rode rodent rodeo Rodgers Rodney Rodriguez roe roebuck Roentgen Roger Rogers rogue roil roister Roland role roll rollback rollick Rollins Roman romance Romano romantic Rome Romeo romp Romulus Ron Ronald rondo Ronnie rood roof rooftop rooftree rook rookie rooky room roommate roomy Roosevelt Rooseveltian roost root rope Rosa Rosalie rosary rose rosebud rosebush Roseland rosemary Rosen Rosenberg Rosenblum Rosenthal Rosenzweig rosette Ross roster rostrum rosy rot Rotarian rotary rotate ROTC rotenone Roth rotogrsandhill Sandia sandman sandpaper sandpile sandpiper Sandra sandstone Sandusky sandwich sandy sane Sanford sang sangaree sanguinary sanguine sanguineous Sanhedrin sanicle sanitarium sanitary sanitate sank sans Santa Santayana Santiago Santo Sao sap sapiens sapient sapling saponify sapphire sappy sapsucker Sara Saracen Sarah Saran Sarasota Saratoga sarcasm sarcastic sarcoma sardine sardonic Sargent sari sarsaparilla sarsparilla sash sashay Saskatchewan sassafras sat satan satanic satellite satiable satiate savure rotor rototill rotten rotund rotunda rouge rough roughcast roughen roughish roughneck roughshod roulette round roundabout roundhead roundhouse roundoff roundtable roundup roundworm rouse Rousseau roustabout rout route routine rove row rowboat rowdy Rowe Rowena Rowland Rowley Roy royal royalty Royce RPM RSVP Ruanda rub rubbery rubbish rubble rubdown Rube Ruben rubicund rubidium rubric ruby ruckus rudder ruddy rude rudiment rudimentary Rudolf Rudolph Rudy Rudyard rue ruffian ruffle rufous Rufus rug ruin  atiety satin satire satiric satisfaction satisfactory satisfy saturable saturate saturater Saturday Saturn Saturnalia saturnine satyr sauce saucepan saucy Saud Saudi sauerkraut Saul Sault Saunders sausage saute sauterne savage savagery Savannah savant save Saviour Savonarola savoy Savoyard savvy saw sawbelly sawdust sawfish sawfly sawmill sawtimber sawtooth sawyer sax saxifrage Saxon Saxony saxophone say SC scab scabbard scabious scabrous scaffold Scala scalar scald scale scallop scalp scamp scan scandal sc secretion secretive sect sectarian section sector sectoral secular secure sedan sedate sedentary seder sedge sediment sedimentary sedimentation sedition seditious seduce seduction seductive sedulous see seeable seed seedbed seedling seedy seeing seek seem seen seep seepage seersucker seethe segment segmentation Segovia segregant segregate Segundo Seidel seismic seismograph seismography seismology seize seizure seldom select selectman selectmen selector Selectric Selena selenate selenite selenium self selfiandalous Scandinavia scandium scant scanty scapegoat scapula scapular scar Scarborough scarce scare scarecrow scarf scarface scarify scarlet Scarsdale scarves scary scat scathe scatterbrain scattergun scaup scavenge scenario scene scenery scenic scent sceptic Schaefer Schafer Schantz schedule schema schemata schematic scheme Schenectady scherzo Schiller schism schist schizoid schizomycetes schizophrenia schizophrenic Schlesinger schlieren Schlitz Schloss Schmidt Schmitt Schnabel schnapps Schneider Schoenbersh Selfridge Selkirk sell seller sellout Selma seltzer selves Selwyn semantic semaphore semblance semester semi seminal seminar seminarian seminary Seminole Semite Semitic semper sen senate senatorial send Seneca Senegal senile senior senor Senora senorita sensate sense sensible sensitive sensor sensory sensual sensuous sent sentence sentential sentient sentiment sentinel sentry Seoul sepal separable separate sepia Sepoy sept septa septate September septennial septic septillion septuagenarian septum sepuchrg Schofield scholar scholastic school schoolbook schoolboy schoolgirl schoolgirlish schoolhouse schoolmarm schoolmaster schoolmate schoolroom schoolteacher schoolwork schooner Schottky Schroeder Schroedinger Schubert Schultz Schulz Schumacher Schumann Schuster Schuyler Schuylkill Schwab Schwartz Schweitzer sciatica science scientific scientist scimitar scintillate scion scissor sclerosis sclerotic SCM scoff scold scoop scoot scope scopic scops scorch score scoreboard scorecard scoria scorn Scorpio scorpion al sepulchral sequel sequent sequential sequester sequestration sequin sequitur Sequoia sera seraglio serape seraphim serenade serendipitous serendipity serene serge sergeant Sergei serial seriatim series serif serious sermon serology Serpens serpent serpentine serum servant serve service serviceable serviceberry serviceman servicemen serviette servile servitor servo servomechanism sesame session set setback Seth Seton setscrew settle setup seven sevenfold seventeen seventeenth seventh seventieth seventy seScot scotch Scotia Scotland Scotsman Scotsmen Scott Scottish Scottsdale Scotty scoundrel scour scourge scout scowl scrabble scraggly scram scramble Scranton scrap scrapbook scrape scratch scratchy scrawl scrawny scream screech screechy screed screen screenplay screw screwball screwbean screwdriver screwworm scribble scribe Scribners scrim scrimmage Scripps script scription scriptural scripture scriven scroll scrooge scrounge scrub scrumptious scruple scrupulosity scrupulous scrutable scrutiny scuba scud scuver several severalfold severalty severe Severn Seville sew sewage Seward sewerage sewn sex Sextans sextet sextillion sexton sextuple sextuplet sexual sexy Seymour sforzando shabby shack shackle shad shadbush shade shadflower shadow shadowy shady Shafer Shaffer shaft shag shagbark shagging shaggy shah shake shakeable shakedown shaken Shakespeare Shakespearean Shakespearian shako shaky shale shall shallot shallow shalom sham shamble shame shameface shampoo shamrock shan't Shanghai shank Shannon Shantung shanff scuffle scull sculpin sculpt sculptor sculptural sculpture scum scurrilous scurry scurvy scuttle scutum Scylla scythe Scythia SD sea seaboard seacoast seafare seafood Seagram seagull seahorse seal sealant seam seaman seamen seamstress seamy Sean seance seaport seaquake sear search searchlight Sears seashore seaside season seasonal seat seater Seattle seaward seaweed Sebastian sec secant secede secession seclude seclusion second secondary secondhand secrecy secret secretarial secretariat secretary secrete  ty shape Shapiro shard share sharecrop shareholder Shari shark Sharon sharp Sharpe sharpen sharpshoot Shasta shatter shatterproof Shattuck shave shaven shaw shawl Shawnee shay she she'd she'll Shea sheaf shear Shearer sheath sheathe sheave shed Shedir Sheehan sheen sheep sheepskin sheer sheet Sheffield sheik Sheila Shelby Sheldon shelf shell Shelley shelter Shelton shelve Shenandoah shenanigan Shepard shepherd Sheppard Sheraton sherbet Sheridan sheriff Sherlock Sherman Sherrill sherry Sherwin Sherwood shibbble Singapore singe single singlehanded singlet singleton singsong singular sinh sinister sinistral sink sinkhole sinter sinuous sinus sinusoid sinusoidal Sioux sip sir sire siren Sirius sis sisal siskin sister Sistine Sisyphean Sisyphus sit site situ situate situs siva six sixfold sixgun sixteen sixteenth sixth sixtieth sixty size sizzle skat skate skater skeet skeletal skeleton skeptic sketch sketchbook sketchpad sketchy skew ski skid skiddy skied skiff skill skillet skim skimp skimpy skin skindive skinnyoleth shied shield Shields shift shifty shill Shiloh shim shimmy shin shinbone shine shingle Shinto shiny ship shipboard shipbuild shiplap Shipley shipman shipmate shipmen shipshape shipwreck shipyard shire shirk Shirley shirt shirtmake shish shitepoke shiv shiver shivery shoal shock Shockley shod shoddy shoe shoehorn shoelace shoemake shoestring shoji shone shoo shoofly shook shoot shop shopkeep shopworn shore shoreline short shortage shortcoming shortcut shorten shortfall shorthand shortish shortsighted s skip skipjack Skippy skirmish skirt skit skittle skulk skull skullcap skullduggery skunk sky Skye skyhook skyjack skylark skylight skyline skyrocket skyscrape skyward skywave skyway slab slack slacken sladang slag slain slake slam slander slanderous slang slant slap slapstick slash slat slate slater slaughter slaughterhouse Slav slave slavery Slavic slavish slay sled sledge sledgehammer sleek sleep sleepwalk sleepy sleet sleety sleeve sleigh sleight slender slept sleuth slew slice slick slid slide slight shortstop shot shotbush shotgun should shoulder shouldn't shout shove shovel show showboat showcase showdown showman showmen shown showpiece showplace showroom showy shrank shrapnel shred Shreveport shrew shrewd shrewish shriek shrift shrike shrill shrilly shrimp shrine shrink shrinkage shrive shrivel shroud shrove shrub shrubbery shrug shrugging shrunk shrunken Shu shuck shudder shuddery shuffle shuffleboard Shulman shun shunt shut shutdown shutoff shutout shuttle shuttlecock shy Shylock sial SIAM Siamese Slim slime slimy sling slingshot slip slippage slippery slit slither sliver slivery Sloan Sloane slob Slocum sloe slog slogan sloganeer slogging sloop slop slope sloppy slosh slot sloth slouch slough sloven slow slowdown sludge slug slugging sluggish sluice slum slumber slump slung slur slurp slurry sly smack small smaller Smalley smallish smallpox smalltime smart smash smatter smear smell smelt smile smirk smith smithereens Smithfield Smithson Smithsonian smithy smitten smog smoke smokehouse smokescreen smoian sib Siberia sibilant Sibley sibling sibyl sic Sicilian Sicily sick sicken sickish sickle sickroom side sidearm sideband sideboard sidecar sidelight sideline sidelong sideman sidemen sidereal sidesaddle sideshow sidestep sidetrack sidewalk sidewall sideway sidewinder sidewise sidle Sidney siege Siegel Siegfried Sieglinda Siegmund Siemens sienna sierra siesta sieve sift sigh sight sightsee sightseeing sightseer sigma Sigmund sign signal signature signboard signet significant signify Signor Signora signposkestack smoky smolder smooch smooth smoothbore smother Smucker smudge smudgy smug smuggle smut smutty Smyrna Smythe snack snafu snag snagging snail snake snakebird snakelike snakeroot snap snapback snapdragon snappish snappy snapshot snare snark snarl snatch snazzy sneak sneaky sneer sneeze snell snick Snider sniff sniffle sniffly snifter snigger snip snipe snippet snippy snivel snob snobbery snobbish snook snoop snoopy snore snorkel snort snotty snout snow snowball snowfall snowflake snowstorm snowy snub st Sikorsky silage silane Silas silent silhouette silica silicate siliceous silicic silicide silicon silicone silk silken silkworm silky sill silly silo silt siltation siltstone silty silver Silverman silversmith silverware silvery sima similar simile similitude simmer Simmons Simon Simons Simonson simper simple simplectic simpleminded simpleton simplex simplicity simplify simplistic simply Simpson Sims simulate simulcast simultaneity simultaneous sin Sinai since sincere Sinclair sine sinew sinewy sing singa  nuff snuffer snuffle snuffly snug snuggle snuggly snyaptic Snyder so soak soap soapstone soapsud soapy soar sob sober sobriety sobriquet soccer sociable social societal Societe society socioeconomic sociology sociometry sock socket sockeye Socrates Socratic sod soda sodden sodium sofa soffit Sofia soft softball soften software softwood soggy soignee soil soiree sojourn Sol solace solar sold solder soldier soldiery sole solecism solemn solemnity solenoid solicit solicitation solicitor solicitous solicitude spit spite spitfire spittle spitz splash splashy splat splay splayed spleen splendid splenetic splice spline splint splintery split splotch splotchy splurge splutter spoil spoilage Spokane spoke spoken spokesman spokesmen spokesperson sponge spongy sponsor spontaneity spontaneous spoof spook spooky spool spoon sporadic spore sport sportsman sportsmen sportswear sportswrite sportswriting sporty spot spotlight spotty spouse spout Sprague sprain sprang sprawl spray spread spree sprig sprightly spring springboarolid solidarity solidify solidus soliloquy solipsism solitary solitude solo Solomon Solon solstice soluble solute solution solvate solve solvent soma somal Somali somatic somber sombre some somebody somebody'll someday somehow someone someone'll someplace Somers somersault Somerset Somerville something sometime somewhat somewhere sommelier Sommerfeld somnolent son sonar sonata song songbag songbook sonic sonnet sonny Sonoma Sonora sonority sonorous Sony soon soot sooth soothe soothsay soothsayer sop sophia d springe Springfield springtail springtime springy sprinkle sprint sprite sprocket Sproul sprout spruce sprue sprung spud spume spumoni spun spunk spur spurge spurious spurn spurt sputnik sputter spy spyglass squabble squad squadron squalid squall squamous squander square squash squashberry squashy squat squatting squaw squawbush squawk squawroot squeak squeaky squeal squeamish squeegee squeeze squelch Squibb squid squill squint squire squirehood squirm squirmy squirrel squirt squishy Sri SST St St. stab sSophie sophism sophisticate sophistry Sophoclean Sophocles sophomore sophomoric soprano sora sorb sorcery sordid sore Sorensen Sorenson sorghum sorority sorption sorrel sorrow sorry sort sortie sou souffle sought soul sound soundproof soup sour sourberry source sourdough sourwood Sousa soutane south Southampton southbound southeast southeastern southern southernmost Southey southland southpaw southward southwest southwestern souvenir sovereign sovereignty soviet sovkhoz sow sowbelly sown soy soya soybean sptabile stable stableman stablemen staccato stack Stacy stadia stadium staff Stafford stag stage stagecoach stagnant stagnate stagy Stahl staid stain stair staircase stairway stairwell stake stalactite stale stalemate Staley Stalin stalk stall stallion stalwart stamen Stamford stamina staminate stammer stamp stampede Stan stance stanch stanchion stand standard standby standeth Standish standoff standpoint standstill Stanford Stanhope stank Stanley stannic stannous Stanton stanza staph staphylococcus staple Sa space spacecraft spacesuit spacious spade spaghetti Spain span spandrel spangle Spaniard spaniel Spanish spar spare sparge spark sparkle Sparkman sparky sparling sparrow sparse Sparta Spartan spasm spastic spat spate spatial spatlum spatterdock spatula Spaulding spavin spawn spay spayed speak speakeasy spear spearhead spearmint spec special specie species specific specify specimen specious speck speckle spectacle spectacular spectator Spector spectra spectral spectrogram spectrograph spectrography spectrotapleton star starboard starch starchy stardom stare starfish stargaze stark Starkey starlet starlight starling Starr start startle startup starvation starve stash stasis state Staten stater stateroom statesman statesmanlike statesmen statewide static stationarity stationary stationery stationmaster statistician Statler stator statuary statue statuette stature status statute statutory Stauffer staunch Staunton stave stay stayed stead steadfast steady steak steal stealth stealthy steam steamboat steamy Stearmeter spectrophotometer spectroscope spectroscopic spectroscopy spectrum specular speculate sped speech speed speedboat speedometer speedup speedwell speedy spell spellbound Spencer Spencerian spend spent sperm spermatophyte Sperry spew sphagnum sphere spheric spheroid spheroidal spherule sphinx Spica spice spicebush spicy spider spidery Spiegel spigot spike spikenard spiky spill spilt spin spinach spinal spindle spine spinnaker spinneret spinodal spinoff spinster spiny spiral spire spirit spiritual Spiro s  ns steed steel Steele steelmake steely Steen steep steepen steeple steeplebush steer steeve Stefan stein Steinberg Steiner stella stellar stem stench stencil stenographer stenography stenotype step stepchild Stephanie stephanotis Stephen Stephens Stephenson stepmother steppe steprelation stepson stepwise steradian stereo stereography stereoscopy sterile sterling stern sternal Sterno sternum steroid stethoscope Stetson Steuben Steve stevedore Steven Stevens Stevenson stew steward stewardess Stewart stick stit substitute substitution substitutionary substrate subsume subsumed subsuming subterfuge subterranean subtle subtlety subtly subtrahend suburb suburbia subversive subvert succeed success succession successive successor succinct succubus succumb such suck suckling suction sud Sudan Sudanese sudden suds sue suey Suez suffer suffice sufficient suffix suffocate Suffolk suffrage suffragette suffuse sugar suggest suggestible suggestion suggestive suicidal suicide suit suitcase suite suitor sulfa sulfate sulfide ckle stickleback stickpin sticktight sticky stiff stiffen stifle stigma stigmata stile stiletto still stillbirth stillwater stilt stimulant stimulate stimulatory stimuli stimulus sting stingy stink stinkpot stinky stint stipend stipple stipulate stir Stirling stirrup stitch stochastic stock stockade stockbroker stockholder Stockholm stockpile stockroom Stockton stocky stodgy stoic stoichiometry stoke Stokes stole stolen stolid stomach stomp stone stonecrop Stonehenge stonewall stoneware stony stood stooge ssulfite sulfonamide sulfur sulfuric sulfurous sulk sulky sullen Sullivan sully sulphur sultan sultry sum sumac Sumatra Sumerian summand summarily summary summate Summers summertime summit summitry summon Sumner sumptuous Sumter sun sunbeam sunbonnet sunburn sunburnt Sunday sunder sundew sundial sundown sundry sunfish sunflower sung sunk sunken sunlight sunlit sunny Sunnyvale sunrise sunset sunshade sunshine sunshiny sunspot suntan suntanned SUNY sup super superannuate superb superbly supercilious superficiatool stoop stop stopband stopcock stopgap stopover stoppage stopwatch storage store storehouse storekeep storeroom Storey stork storm stormbound stormy story storyboard storyteller stout stove stow stowage strabismic strabismus straddle strafe straggle straight straightaway straighten straightforward straightway strain strait strand strange strangle strangulate strap strata stratagem strategic strategist strategy Stratford stratify stratosphere stratospheric Stratton stratum Strauss straw strawberry strawfll superfluity superfluous superintendent superior superlative superlunary supernatant superposable supersede superstition superstitious supervene supervisory supine supplant supple supplementary supplicate supply support supposable suppose supposition suppress suppressible suppression suppressor supra supranational supremacy supreme surcease surcharge sure surety surf surface surfactant surfeit surge surgeon surgery surgical surmise surmount surname surpass surplus surprise surreal surrender surreptitious sower stray streak stream streamline streamside street streetcar strength strengthen strenuous streptococcus stress stretch strewn striate stricken Strickland strict stricture stride strident strife strike strikebreak string stringent stringy strip stripe striptease strive striven strobe stroboscopic strode stroke stroll Strom Stromberg strong stronghold strongroom strontium strop strophe strove struck structural structure struggle strum strung strut strychnine Stuart stub stubble stubborn stubby stucco stucurrey surrogate surround surtax surtout surveillant survey surveyor survival survive survivor Sus Susan Susanne susceptible sushi Susie suspect suspend suspense suspension suspensor suspicion suspicious Sussex sustain sustenance Sutherland Sutton suture Suzanne suzerain suzerainty Suzuki svelte swab swabby swag swage Swahili swain swallow swallowtail swam swami swamp swampy swan swank swanky swanlike Swanson swap swarm swart Swarthmore Swarthout swarthy swastika swat swatch swath swathe sway Swaziland sweark stud Studebaker student studio studious study stuff stuffy stultify stumble stump stumpage stumpy stun stung stunk stunt stupefy stupendous stupid stupor Sturbridge sturdy sturgeon Sturm stutter Stuttgart Stuyvesant Stygian style styli stylish stylites stylus stymie styrene Styrofoam Styx suave sub subject subjectivity sublimate subliminal submersible submit submittal submitted submitting subpoena subrogation subservient subsidiary subsidy subsist subsistent substantial substantiate substantive substituen   sweat sweatband sweater sweatshirt sweaty Swede Sweden Swedish Sweeney sweep sweepstake sweet sweeten sweetheart sweetish swell swelt swelter Swenson swept swerve swift swig swigging swim swimsuit swindle swine swing swingable swingy swipe swirl swirly swish swishy swiss switch switchblade switchboard switchgear switchman Switzer Switzerland swivel swizzle swollen swoop sword swordfish swordplay swordtail swore sworn swum swung sybarite Sybil sycamore sycophant sycophantic Sydney Sykes syllabic syllabify sran tektite Tektronix telecommunicate teleconference Teledyne Telefunken telegram telegraph telegraphy telekinesis telemeter teleology teleost telepathic telepathy telephone telephonic telephony telephotography teleprinter teleprocessing teleprompter telescope telescopic teletype teletypewrite televise television Telex tell teller tellurium temerity temper tempera temperance temperate temperature tempest tempestuous template temple Templeton tempo temporal temporary tempt temptation temptress ten tenable teyllable syllogism syllogistic sylvan Sylvania Sylvester Sylvia symbiosis symbol symbolic symmetry sympathetic sympathy symphonic symphony symposia symposium symptom symptomatic synagogue synapse synapses synaptic synchronism synchronous synchrony synchrotron syncopate syndic syndicate syndrome synergism synergistic synergy synod synonym synonymous synonymy synopses synopsis synoptic syntactic syntax synthesis synthetic Syracuse Syria syringa syringe syrinx syrup syrupy system systematic systemic systemizatinacious tenacity tenant tend tendency tenderfoot tenderloin tendon tenebrous tenement tenet tenfold Tenneco Tennessee Tenney tennis Tennyson tenon tenor tense tensile tension tensional tensor tenspot tent tentacle tentative tenth tenuous tenure tepee tepid teratogenic teratology terbium tercel Teresa term terminable terminal terminate termini terminology terminus termite tern ternary Terpsichore terpsichorean Terra terrace terrain terramycin terrapin Terre terrestrial terrible terrier terrific terrify terrion systemwide t t's tab tabernacle table tableau tableaux tablecloth tableland tablespoon tablet tabloid taboo tabu tabula tabular tabulate tachinid tachometer tacit Tacitus tack tackle tacky Tacoma tact tactic tactile tactual tad tadpole taffeta taffy taft tag tagging Tahiti Tahoe tail tailgate tailor tailwind taint Taipei Taiwan take taken takeoff takeover taketh talc talcum tale talent talisman talismanic talk talkative talkie talky tall Tallahassee tallow tally tallyho Talmud talon talus tam tamale tamatorial territory terror terry terse tertiary Tess tessellate test testament testamentary testate testes testicle testicular testify testimonial testimony testy tetanus tete tether tetrachloride tetrafluouride tetragonal tetrahedra tetrahedral tetrahedron tetravalent Teutonic Texaco Texan Texas text textbook textile Textron textual textural texture Thai Thailand Thalia thallium thallophyte than thank thanksgiving that that'd that'll thatch thaw Thayer the Thea theatric Thebes thee theft their Thelma them therack tamarind tambourine tame Tammany tamp Tampa tampon tan tanager Tanaka Tananarive tandem tang tangent tangential tangerine tangible tangle tango tangy tanh tank tannin tansy tantalum Tantalus tantamount tantrum Tanya Tanzania tao Taoist Taos tap tapa tape taper tapestry tapeworm tapir tapis tappa tappet tar tara tarantara tarantula Tarbell tardy target tariff tarnish tarpaper tarpaulin tarpon tarry Tarrytown tart tartar Tartary Tarzan task taskmaster Tasmania Tass tassel taste tasting tasty tat tate tatmatic theme themselves then thence thenceforth theocracy Theodore Theodosian theologian theology theorem theoretic theoretician theorist theory therapeutic therapist therapy there there'd there'll thereabouts thereafter thereat thereby therefor therefore therefrom therein thereof thereon Theresa thereto theretofore thereunder thereupon therewith thermal thermionic thermistor thermo Thermofax thermostat thesaurus these theses Theseus thesis thespian theta Thetis they they'd they'll they're they've thiamin ther tattle tattler tattletale tattoo tatty tau taught taunt Taurus taut tautology tavern taverna tawdry tawny tax taxation taxi taxicab taxied taxiway taxonomy taxpayer taxpaying Taylor tea teacart teach teacup teahouse teakettle teakwood teal team teammate teamster teamwork teapot tear teardrop tease teasel teaspoon teat tech technetium technic technician technique technology tectonic tecum ted Teddy tedious tedium tee teeing teem teen teenage teensy teet teeth teethe teetotal Teflon Tegucigalpa Teheran Teh  ick thicken thicket thickish thief thieves thieving thigh thimble Thimbu thin thine thing think thinnish thiocyanate thiouracil third thirst thirsty thirteen thirteenth thirtieth thirty this this'll thistle thistledown thither Thomas Thomistic Thompson Thomson thong Thor Thoreau thoriate thorium thorn Thornton thorny thorough thoroughbred thoroughfare thoroughgoing Thorpe Thorstein those thou though thought thousand thousandth thrash thread threadbare threat threaten three threefold threesome thresh thresho townhouse Townsend townsman townsmen toxic toxicology toxin toy Toyota trace traceable tracery trachea track trackage tract tractor Tracy trade trademark tradeoff tradesman tradesmen tradition traffic trafficked trafficking trag tragedian tragedy tragic tragicomic trail trailblaze trailside train trainee trainman trainmen traipse trait traitor traitorous trajectory tram trammel tramp trample tramway trance tranquil tranquillity transact transalpine transatlantic transceiver transcend transcendent transcendld threw thrice thrift thrifty thrill thrips thrive throat throaty throb throes thrombosis throne throng throttle through throughout throughput throw throwback thrown thrum thrush thrust Thruway Thuban thud thug thuggee Thule thulium thumb thumbnail thump thunder thunderbird thunderclap thunderflower thunderous thunderstorm Thurman Thursday thus thwack thwart thy thyme thyratron thyroglobulin thyroid thyroidal thyronine thyrotoxic thyroxine ti Tiber tibet Tibetan tibia tic tick ticket tickle ticklish tid tiental transconductance transcontinental transcribe transcript transcription transducer transduction transect transept transfer transferable transferee transference transferor transferral transferred transferring transfix transform transformation transfuse transfusion transgress transgression transgressor transient transistor transit Transite transition transitive transitory translate transliterate translucent transmissible transmission transmit transmittable transmittal transmittance transmitted transmitterdal tidbit tide tideland tidewater tidings tidy tie tied Tientsin tier Tiffany tift tiger tight tighten tigress Tigris til tilde tile till tilt tilth Tim timber timberland timbre time timeout timepiece timeshare timetable timeworn Timex timid Timon timothy tin Tina tincture tinder tine tinfoil tinge tingle tinker tinkle tinsel tint tintype tiny Tioga tip tipoff Tipperary tipple tippy tipsy tiptoe tirade Tirana tire tiresome tissue tit Titan titanate titanic titanium tithe titian titillate title titmouse tit transmitting transmutation transmute transoceanic transom transpacific transparent transpiration transpire transplant transplantation transport transportation transposable transpose transposition transship transversal transverse transvestite trap trapezium trapezoid trapezoidal trash trashy Trastevere trauma traumatic travail travel travelogue traversable traversal traverse travertine travesty Travis trawl tray treacherous treachery tread treadle treadmill treason treasonous treasure treasury treat treatisrate titular Titus TNT to toad toady toast tobacco Tobago toccata today today'll Todd toddle toe toenail toffee tofu tog together togging toggle Togo togs toil toilet toilsome tokamak token Tokyo told Toledo tolerable tolerant tolerate toll tollgate tollhouse Tolstoy toluene Tom tomato tomatoes tomb tomblike tombstone tome Tomlinson Tommie tommy tomography tomorrow Tompkins ton tonal tone tong tongue Toni tonic tonight tonk tonnage tonsil tonsillitis tony too toodle took tool toolkit toolmake toolsmith toote treaty treble tree treelike treetop trefoil trek trellis tremble tremendous tremor tremulous trench trenchant trencherman trenchermen trend trendy Trenton trepidation trespass tress trestle Trevelyan triable triac triad trial triangle triangular triangulate Triangulum Trianon triatomic tribal tribe tribesman tribesmen tribulate tribunal tribune tributary tribute Trichinella trichloroacetic trichloroethane trichrome trick trickery trickle trickster tricky trident tridiagonal tried triennial trifle trifluou tooth toothbrush toothpaste tootle top topaz topcoat Topeka topgallant topic topmost topnotch topocentric topography topology topple topsoil Topsy tor torah torch tore tori torn tornado toroid toroidal Toronto torpedo torpid torpor torque torr Torrance torrent torrid torsion torso tort tortoise tortoiseshell tortuous torture torus tory Toshiba toss tot total totalitarian tote totem totemic touch touchdown touchstone touchy tough tour tournament tousle tout tow toward towboat towel tower towhead towhee town  ride trig trigonal trigonometry trigram trill trillion trilobite trilogy trim trimer trimester Trinidad trinitarian trinity trinket trio triode trioxide trip tripartite tripe triphenylphosphine triple triplet Triplett triplex triplicate tripod tripoli triptych trisodium Tristan tristate trisyllable trite tritium triton triumph triumphal triumphant triune trivalent trivia trivial trivium trod trodden troglodyte troika Trojan troll trolley trollop trombone trompe troop trophic trophy tropic tropopause tropospt upbraid upbring upcome update updraft upend upgrade upheaval upheld uphill uphold upholster upholstery upkeep upland uplift upon upper upperclassman upperclassmen uppercut uppermost upraise upright uprise upriver uproar uproarious uproot upset upsetting upshot upside upsilon upslope upstair upstand upstate upstater upstream upsurge upswing uptake Upton uptown uptrend upturn upward upwind urania uranium Uranus uranyl urban Urbana urbane urbanite urchin urea uremia urethane urethra urge urgency urgent urginhere tropospheric trot trouble troubleshoot troublesome trough trounce troupe trouser trout Troutman troy truancy truant truce truck truculent trudge Trudy true truism truly Truman Trumbull trump trumpery trumpet truncate trundle trunk truss trust trustee trustworthy truth TRW try trypsin tsar tsarina tsunami TTL TTY tub tuba tube tuberculin tuberculosis tubular tubule tuck Tucson Tudor Tuesday tuff tuft tug tugging tuition Tulane tularemia tulip tulle Tulsa tum tumble tumbrel tumult tumultuous tun tuna tung urinal urinary urine Uris urn Ursa Ursula Ursuline Uruguay us USA usable USAF usage USC USC&GS USDA use USGS usher USIA USN USPS USSR usual usurer usurious usurp usurpation usury Utah utensil uterine Utica utile utilitarian utility utmost utopia utopian utter utterance uttermost v v's vacant vacate vacationland vaccinate vaccine vacillate vacua vacuo vacuolate vacuole vacuous vacuum vade Vaduz vagabond vagary vagina vaginal vagrant vague Vail vain vainglorious vale valediction valedictorian valedictory vadra tune tung tungstate tungsten tunic Tunis Tunisia tunnel tupelo turban turbinate turbine turbofan turbojet turbulent turf Turin Turing turk turkey Turkish turmoil turn turnabout turnaround turnery turnip turnkey turnoff turnout turnover turnpike turnstone turntable turpentine turpitude turquoise turret turtle turtleback turtleneck turvy Tuscaloosa Tuscan Tuscany Tuscarora tusk Tuskegee tussle tutelage tutor tutorial Tuttle tutu tuxedo TV TVA TWA twaddle twain tweak tweed tweedy tweeze twelfth twelve twenlent valentine Valerie Valery valet valeur Valhalla valiant valid validate Valkyrie Valletta valley Valois valuate value valve vamp vampire van vanadium Vance Vancouver vandal Vandenberg Vanderbilt Vanderpoel vanguard vanilla vanish vanity vanquish vantage variable variac Varian variant variate variegate variety various varistor Varitype varnish vary vascular vase vassal vast vat Vatican vaudeville Vaudois Vaughan Vaughn vault veal vector vectorial Veda vee veer veery Vega vegetable vegetarian vegetate vehetieth twenty twice twiddle twig twigging twilight twill twin twine twinge twinkle twirl twirly twist twisty twit twitch twitchy two twofold Twombly twosome TWX Tyburn tycoon tying Tyler Tyndall type typeface typescript typeset typesetter typesetting typewrite typewritten typhoid Typhon typhoon typhus typic typify typo typographer typography typology tyrannic tyrannicide tyranny tyrant tyrosine Tyson u u's ubiquitous ubiquity UCLA Uganda ugh ugly UK Ukrainian Ulan ulcer ulcerate Ullman Ulster ulterior ultimament vehicle vehicular veil vein Velasquez veldt Vella vellum velocity velours velvet velvety venal vend vendetta vendible vendor veneer venerable venerate venereal Venetian Veneto Venezuela vengeance vengeful venial Venice venison venom venomous venous vent ventilate ventricle venture venturesome venturi Venus Venusian Vera veracious veracity veranda verandah verb verbal verbatim verbena verbiage verbose verbosity verdant Verde Verdi verdict verge veridic verify verisimilitude veritable verity Verlag vermete ultimatum ultra Ulysses umber umbilical umbilici umbilicus umbra umbrage umbrella umpire UN unanimity unanimous unary unbeknownst unbidden unchristian uncle uncouth unction under underclassman underclassmen underling undulate UNESCO uniaxial unicorn unidimensional unidirectional uniform unify unilateral unimodal uninominal union uniplex unipolar uniprocessor unique Uniroyal unison unit unitarian unitary unite unity Univac univalent univariate universal universe Unix unkempt unruly until unwieldy up upbea  il vermiculite vermilion vermin Vermont vermouth Verna vernacular vernal Verne vernier Vernon Verona Veronica versa Versailles versatile verse version versus vertebra vertebrae vertebral vertebrate vertex vertical vertices vertigo verve very vesicular vesper vessel vest vestal vestibule vestige vestigial vestry vet vetch veteran veterinarian veterinary veto vex vexation vexatious vi via viaduct vial vibrant vibrate vibrato viburnum vicar vicarious vice vicelike viceroy Vichy vicinal vicinity vicious vicissiead Waring warlike warm warmhearted warmish warmonger warmth warmup warn warp warrant warranty warren warrior Warsaw wart wartime warty Warwick wary was wash washbasin washboard washbowl Washburn Washington washout washy wasn't wasp waspish Wasserman wast wastage waste wastebasket wasteland wastewater wastrel watch watchband watchdog watchmake watchman watchmen watchword water Waterbury watercourse waterfall waterfront Watergate Waterhouse waterline Waterloo Waterman watermelon waterproof Waters watershed wtude Vicksburg Vicky victim victor Victoria Victorian victorious victory victrola victual Vida video videotape vie Vienna Viennese Vientiane Viet Vietnam Vietnamese view viewpoint vigil vigilant vigilante vigilantism vignette vigorous vii viii Viking vile vilify villa village villain villainous villein Vincent vindicate vindictive vine vinegar vineyard Vinson vintage vintner vinyl viola violate violent violet violin Virgil virgin virginal Virginia Virginian Virgo virgule virile virtual virtue virtuosi virtuaterside Watertown waterway watery Watkins Watson watt wattage wattle Watts wave waveform wavefront waveguide wavelength wavenumber wavy wax waxen waxwork waxy way waybill waylaid waylay Wayne wayside wayward we we'd we'll we're we've weak weaken weal wealth wealthy wean weapon weaponry wear wearied wearisome weary weasel weather weatherbeaten weatherproof weatherstrip weave web Webb weber Webster WECo wed wedge wedlock Wednesday wee weed weedy week weekday weekend Weeks weep Wehr Wei Weierstrass weigh weigosity virtuoso virtuous virulent virus vis visa visage viscera visceral viscoelastic viscometer viscosity viscount viscous vise viselike Vishnu visible Visigoth vision visionary visit visitation visitor visor vista visual vita vitae vital vitamin vitiate Vito vitreous vitrify vitriol vitriolic vitro viva vivace vivacious vivacity Vivaldi Vivian vivid vivify vivo vixen viz Vladimir Vladivostok vocable vocabularian vocabulary vocal vocalic vocate vociferous Vogel vogue voice voiceband void volatile volcanic vht weighty Weinberg Weinstein weir weird Weiss Welch welcome weld Weldon welfare well wellbeing Weller Welles Wellesley wellington Wells welsh welt Wendell Wendy went wept were weren't Werner wert Werther Wesley Wesleyan west westbound Westchester westerly western westernmost Westfield Westinghouse Westminster Weston westward wet wetland Weyerhauser whack whale Whalen wham wharf Wharton wharves what what'd what're whatever Whatley whatnot whatsoever wheat Wheatstone whee wheedle wheel wheelbase wheelchair wolcanism volcano volition Volkswagen volley volleyball Volstead volt Volta voltage voltaic Voltaire Volterra voltmeter voluble volume voluminous voluntary volunteer voluptuous Volvo vomit von voodoo voracious voracity vortex vortices vorticity Voss votary vote votive vouch vouchsafe Vought vow vowel voyage Vreeland Vulcan vulgar vulnerable vulpine vulture vulturelike vying w w's Waals Wabash WAC wack wacke wacky Waco wad waddle wade wadi Wadsworth wafer waffle wag wage wagging waggle Wagner wagoneer wah Wahheelhouse wheeze wheezy Whelan whelk Wheller whelm whelp when whence whenever where where'd where're whereabout whereas whereby wherefore wherein whereof whereon wheresoever whereupon wherever wherewith whet whether which whichever whiff whig while whim whimper whimsey whimsic whine whinny whip whiplash Whippany whippet Whipple whipsaw whir whirl whirligig whirlpool whirlwind whisk whisper whistle whistleable whit Whitaker Whitcomb white whiteface Whitehall whitehead Whitehorse whiten whitetail whitewash whl wail wainscot Wainwright waist waistcoat waistline wait Waite waitress waive wake Wakefield waken wakerobin wakeup Walcott Walden Waldo Waldorf Waldron wale Walgreen walk walkie walkout walkover walkway wall wallaby Wallace wallboard Waller wallet Wallis wallop wallow wallpaper Walls wally walnut Walpole walrus Walsh Walt Walter Walters Waltham Walton waltz wan wand wander wane Wang wangle want wanton wapato wapiti Wappinger war warble ward warden wardrobe wardroom ware warehouse warehouseman warfare warh  ither Whitlock Whitman Whitney Whittaker Whittier whittle whiz who who'd who'll whoa whoever whole wholehearted wholesale wholesome wholly whom whomsoever whoop whoosh whop whore whose whosoever whup why Wichita wick wicket wide widen widespread widgeon widget widow widowhood width widthwise wield wiener Wier wife wig wigging Wiggins wiggle wiggly wigmake wigwam Wilbur Wilcox wild wildcat wildcatter wilderness wildfire wildlife wile Wiley Wilfred wilful Wilhelm Wilhelmina Wilkes Wilkins Wilkinson will Willang Yaqui yard yardage yardstick Yarmouth yarmulke yarn yarrow Yates yaw yawl yawn ye yea Yeager yeah year yearbook yearn yeast yeasty Yeats yell yellow yellowish Yellowknife yelp Yemen yen yeoman yeomanry yeshiva yesterday yesteryear yet Yiddish yield yin yip yipping YMCA yodel Yoder yoga yogi yoke yokel Yokohama Yokuts yolk yon yond Yonkers yore York Yorktown Yosemite Yost you you'd you'll you're you've young youngish youngster Youngstown your yourself yourselves youth yow Ypsilanti ytterbium yttrium Yucat Willard William Williams Williamsburg Williamson Willie Willis Willoughby willow willowy Wills Wilma Wilmington Wilshire Wilson Wilsonian wilt wily win wince winch Winchester wind windbag windbreak windfall windmill window windowpane windowsill windshield Windsor windstorm windup windward windy wine winemake winemaster winery wineskin Winfield wing wingback wingman wingmen wingspan wingtip Winifred wink winkle Winnetka Winnie Winnipeg Winnipesaukee winnow wino Winslow winsome Winston winter Winters wintertan yucca Yugoslav Yugoslavia yuh Yuki Yukon yule Yves Yvette YWCA z z's Zachary zag zagging Zaire Zambia Zan Zanzibar zap zeal Zealand zealot zealous zebra Zeiss Zellerbach Zen zenith zero zeroes zeroth zest zesty zeta Zeus Ziegler zig zigging zigzag zilch Zimmerman zinc zing Zion Zionism zip zircon zirconium zloty zodiac zodiacal Zoe Zomba zombie zone zoo zoology zoom Zoroaster Zoroastrian zounds zucchini Zurich ngish youngster Youngstown your yourself yourselves youth yow Ypsilanti ytterbium yttrium Yucatime Winthrop wintry winy wipe wire wireman wiremen wiry Wisconsin wisdom wise wiseacre wisecrack wisenheimer wish wishbone wishy wisp wispy wit witch witchcraft with withal withdraw withdrawal withdrawn withdrew withe wither withheld withhold within without withstand withstood withy witness Witt witty wive wizard wobble woe woebegone wok woke Wolcott wold wolf Wolfe Wolff Wolfgang wolfish wolve woman womanhood womb women won won't wonder wonderland wondrous Wong wont woo wood Woodard Woodbury woodcarver woousr/preserve/remove.this100664 0 2 0 3425136000 10623 dcock woodcut wooden woodgrain woodhen woodland Woodlawn woodlot woodpeck woodrow woodruff Woods woodshed woodside woodward woodwind woodwork woody woodyard wool woolen woolgather Woolworth Wooster wop Worcester word Wordsworth wordy wore work workbench workbook workday workhorse workload workman workmanlike workmen workout workpiece worksheet workshop workspace worktable world worldwide worm wormy worn worrisome worry worse worsen worship worst worth Worthington worthwhile worthy Wotan would wouldn't woundusr/spool/at/past/remove.this100664 0 2 0 3425136000 11477  wove woven wow wrack wraith wrangle wrap wrapup wrath wreak wreath wreathe wreck wreckage wrench wrest wrestle wretch wriggle wright Wrigley wring wrinkle wrist wristband wristwatch writ write writeup writhe written wrong wrongdo Wronskian wrote wrought wry Wu Wuhan Wyandotte Wyatt Wyeth Wylie Wyman Wyner wynn Wyoming x x's Xavier xenon xenophobia xerography Xerox Xerxes xi xylem xylene xylophone y y's yacht yachtsman yachtsmen yah yak Yakima Yale Yalta yam Yamaha yang yank Yankee Yankton Yaounde yap yappi  usr/spool/mail/remove.this100664 0 2 0 3425136000 11046 usr/adm/pacct100644 3 3 0 3425136000 6362 usr/spool/micnet/remote/local/remove.this100664 0 2 0 3425136000 13770 usr/include/a.out.h100644 0 2 27620 3425136000 7543 usr/spool/uucp/.XQTDIR/remove.this100664 0 2 0 3425136000 12171 /* * @(#) a.out.h 1.3 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * - Object file structure declarations. * * Copyright (C) Microsoft Corporation, 1982 */ /* * The main and extended header structures. * For x.out segmented (XE_SEG): * 1) fields marked with (s) must contain sums of xs_psize for * non-memory images, or xs_vsize for memousr/spool/uucp/.XFDDIR/remove.this100664 0 2 0 3425136000 12136 ry images. * 2) the contents of fields marked with (u) are undefined. */ struct xexec { /* x.out header */ unsigned short x_magic; /* magic number */ unsigned short x_ext; /* size of header extension */ long x_text; /* size of text segment (s) */ long x_data; /* size of initialized data (s) */ long x_bss; /* size of uninitialized data (s) */ long x_syms; /* size of symbol table (s) */ long x_reloc; /* relocation table length (s) */ long x_entry; /* entry point, machine dependusr/spool/secretmail/remove.this100664 0 2 0 3425136000 12254   ent */ char x_cpu; /* cpu type & byte/word order */ char x_relsym; /* relocation & symbol format (u) */ unsigned short x_renv; /* run-time environment */ }; struct xext { /* x.out header extension */ long xe_trsize; /* size of text relocation (s) */ long xe_drsize; /* size of data relocation (s) */ long xe_tbase; /* text relocation base (u) */ long xe_dbase; /* data relocation base (u) */ long xe_stksize; /* stack size (if XE_FS set) */ #ifdef NEVER /* Altos does not support XE_SEG fine XC_PDP11 0x01 /* pdp11 */ #define XC_23 0x02 /* 23fixed from pdp11 */ #define XC_Z8K 0x03 /* Z8000 */ #define XC_8086 0x04 /* I8086 */ #define XC_68K 0x05 /* M68000 */ #define XC_Z80 0x06 /* Z80 */ #define XC_VAX 0x07 /* VAX 780/750 */ #define XC_16032 0x08 /* NS16032 */ #define XC_286 0x09 /* iAPX 80286 */ #define XC_386 0x0a /* iAPX 80386 */ #define XC_186 0x0b /* iAPX 80186 */ #define XC_CPU 0x3f /* cpu mask */ /* * Definitions for xexec.x_relsym (char), valid only if !XE_SEG. * * rrrin Xenix 3.0 /* /* the following must be present if XE_SEG */ long xe_segpos; /* segment table position */ long xe_segsize; /* segment table size */ long xe_mdtpos; /* machine dependent table position */ long xe_mdtsize; /* machine dependent table size */ char xe_mdttype; /* machine dependent table type */ char xe_pagesize; /* file pagesize, in multiples of 512 */ char xe_ostype; /* operating system type */ char xe_osvers; /* operating system version */ unsigned short xe_eseg; /* entry r relocation table format * ssss symbol table format */ /* relocation table format */ #define XR_RXOUT 0x00 /* x.out long form, linkable */ #define XR_RXEXEC 0x10 /* x.out short form, executable */ #define XR_RBOUT 0x20 /* b.out format */ #define XR_RAOUT 0x30 /* a.out format */ #define XR_R86REL 0x40 /* 8086 relocatable format */ #define XR_R86ABS 0x50 /* 8086 absolute format */ #define XR_R286ABS 0x60 /* 80286 absolute format */ #define XR_R286REL 0x70 /* 80286 relocatable formatsegment, machine dependent */ unsigned short xe_sres; /* reserved */ #endif }; struct xseg { /* x.out segment table entry */ unsigned short xs_type; /* segment type */ unsigned short xs_attr; /* segment attributes */ unsigned short xs_seg; /* segment number */ unsigned short xs_sres; /* unused */ long xs_filpos; /* file position */ long xs_psize; /* physical size (in file) */ long xs_vsize; /* virtual size (in core) */ long xs_rbase; /* relocation base address/offset */ long xs_lres; */ #define XR_REL 0xf0 /* relocation format mask */ /* symbol table format */ #define XR_SXOUT 0x00 /* trailing string, struct sym */ #define XR_SBOUT 0x01 /* trailing string, struct bsym */ #define XR_SAOUT 0x02 /* struct asym (nlist) */ #define XR_S86REL 0x03 /* 8086 relocatable format */ #define XR_S86ABS 0x04 /* 8086 absolute format */ #define XR_SUCBVAX 0x05 /* separate string table */ #define XR_S286ABS 0x06 /* 80286 absolute format */ #define XR_S286REL 0x07 /* 80286 relocatable format */ #define /* unused */ long xs_lres2; /* unused */ }; struct xiter { /* x.out iteration record */ long xi_size; /* source byte count */ long xi_rep; /* replication count */ long xi_offset; /* destination offset in segment */ }; struct xlist { /* xlist structure for xlist(3). */ unsigned short xl_type; /* symbol type */ unsigned short xl_seg; /* file segment table index */ long xl_value; /* symbol value */ char *xl_name; /* pointer to asciz name */ }; /* * Definitions for xexe XR_SXSEG 0x08 /* segmented format */ #define XR_SYM 0x0f /* symbol format mask */ /* * Definitions for xexec.x_renv (short). * * vv version compiled for * xx extra (zero) * s set if segmented x.out * a set if absolute (set up for physical address) * i set if segment table contains iterated text/data * h set if huge model data * f set if floating point hardware requirec.x_magic, HEX (short). */ #define ARCMAGIC 0xff65 /* 0177545, archive, same as always */ #define X_MAGIC 0x0206 /* indicates x.out header */ /* * Definitions for xexec.x_cpu, cpu type (char). * * b set if high byte first in short * w set if low word first in long * cccccc cpu type */ /* bytes/words are "swapped" if not stored in pdp11 ordering */ #define XC_BSWAP 0x80 /* bytes swapped */ #define XC_WSWAP 0x40 /* words swapped */ #define XC_NONE 0x00 /* none */ #de  d * t set if large model text * d set if large model data * o set if text overlay * f set if fixed stack * p set if text pure * s set if separate I & D * e set if executable */ #define XE_V2 0x4000 /* up to and including 2.3 */ #define XE_V3 0x8000 /* after version 2.3 */ #define XE_VERS 0xc000 /* version mask */ #define XE_SEG 0x0800 /* segment table present */ #deumerated symbol table types. */ #define XS_SXSEG 1 /* x.out segmented format */ /* * File position macros, valid only if !XE_SEG. */ #define XEXTPOS(xp) ((long) sizeof(struct xexec)) #define XTEXTPOS(xp) (XEXTPOS(xp) + (long) (xp)->x_ext) #define XDATAPOS(xp) (XTEXTPOS(xp) + (xp)->x_text) #define XSYMPOS(xp) (XDATAPOS(xp) + (xp)->x_data) #define XRELPOS(xp) (XSYMPOS(xp) + (xp)->x_syms) #define XENDPOS(xp) (XRELPOS(xp) + (xp)->x_reloc) #define XRTEXTPOS(xp, ep) (XRELPOS(xp)) #define XRDATAPOS(xp, ep) (fine XE_ABS 0x0400 /* absolute memory image (standalone) */ #define XE_ITER 0x0200 /* iterated text/data present */ #define XE_HDATA 0x0100 /* huge model data */ #define XE_FPH 0x0080 /* floating point hardware required */ #define XE_LTEXT 0x0040 /* large model text */ #define XE_LDATA 0x0020 /* large model data */ #define XE_OVER 0x0010 /* text overlay */ #define XE_FS 0x0008 /* fixed stack */ #define XE_PURE 0x0004 /* pure text */ #define XE_SEP 0x0002 /* separate I & D */ #define XE_EXECXRELPOS(xp) + (ep)->xe_trsize) /* * byte/word swapping macros: */ #define SBSWAP(x) ((((x) >> 8) & 0x00ff) | \ (((x) << 8) & 0xff00)) #define LBSWAP(x) ((((long) (x) >> 8) & 0x00ff00ffL) | \ (((long) (x) << 8) & 0xff00ff00L)) #define LWSWAP(x) ((((long) (x) >> 16) & 0x0000ffffL) | \ (((long) (x) << 16) & 0xffff0000L)) #define STRUCTOFF(structure, field) (int) &(((struct structure *) 0)->field) #define H_NONE 0 /* not an object file */ #define H_AOUT 1 /* a.out */ #define H_BOUT 2  0x0001 /* executable */ /* * Definitions for xe_mdttype (char). */ #define XE_MDTNONE 0 /* no machine dependent table */ #define XE_MDT286 1 /* iAPX286 LDT */ /* * Definitions for xe_ostype (char). */ #define XE_OSNONE 0 #define XE_OSXENIX 1 /* Xenix */ #define XE_OSRMX 2 /* iRMX */ #define XE_OSCCPM 3 /* Concurrent CP/M */ /* * Definitions for xe_osvers (char). */ #define XE_OSXV3 1 /* Xenix V3.0 */ /* * Definitions for xs_type (short). * Values from 64 to 127 are reserved for Intel /* b.out */ #define H_ROUT 3 /* 8086 rel */ #define H_XROUT 4 /* 8086 rel with x.out header */ #define H_ZAOUT 5 /* z8000 a.out */ #define H_XOUT 6 /* x.out */ #define H_XSEG 7 /* segmented x.out */ #define S_NONE 0 /* not an object file */ #define S_ASYM 1 /* a.out */ #define S_BSYM 2 /* b.out */ #define S_RSYM 3 /* 8086 rel */ #define S_XSYM 4 /* x.out symbols */ #define S_XSEG 5 /* x.out segmented symbols */ #define S_86ABS 6 /* 8086 abs symbols */ #define S_IDBG 7 /* intel debug symbols *. */ #define XS_TNULL 0 /* unused segment */ #define XS_TTEXT 1 /* text segment */ #define XS_TDATA 2 /* data segment */ #define XS_TSYMS 3 /* symbol table segment */ #define XS_TREL 4 /* relocation segment */ #define XS_TI64 64 #define XS_TI65 65 #define XS_TI66 66 #define XS_TI67 67 #define XS_TIDBG 68 /* Intel debug text segment */ /* * Definitions for xs_attr (short). * The top bit is set if the file segment represents a memory image. * The low 15 bits' definitions depend on the type of fil/ /* * All of the following are provided for compatibility only. */ struct aexec { /* a.out header */ unsigned short xa_magic; /* magic number */ unsigned short xa_text; /* size of text segment */ unsigned short xa_data; /* size of initialized data */ unsigned short xa_bss; /* size of unitialized data */ unsigned short xa_syms; /* size of symbol table */ unsigned short xa_entry; /* entry point */ unsigned short xa_unused; /* not used */ unsie segment. */ #define XS_AMEM 0x8000 /* segment represents a memory image */ #define XS_AMASK 0x7fff /* type specific field mask */ /* For XS_TTEXT and XS_TDATA segments, bit definitions. */ #define XS_AITER 0x0001 /* contains iteration records */ #define XS_AHUGE 0x0002 /* contains huge element */ #define XS_ABSS 0x0004 /* contains implicit bss */ #define XS_APURE 0x0008 /* read-only, may be shared */ #define XS_AEDOWN 0x0010 /* segment expands downward (stack) */ /* For XS_TSYMS segments, en  gned short xa_flag; /* relocation info stripped */ }; struct nlist { /* nlist structure for nlist(3). */ char n_name[8]; /* symbol name */ int n_type; /* type flag */ unsigned n_value; /* value */ }; /* * Definitions for aexec.xa_magic, OCTAL, obsolete (short). */ #define FMAGIC 0407 /* normal */ #define NMAGIC 0410 /* pure, shared text */ #define IMAGIC 0411 /* separate I & D */ #define OMAGIC 0405 /* text overlays */ #define ZMAGIC 0413 /* demand load format */ #define A_MA/* * @(#) ar.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** ar.h * * MODIFICATION HISTORY * M000 28 Jan 83 andyp * - Changed 'mode' from 'int' to 'short'. * M001 14 Apr 83 andyp * - 3.0 upgrade. Picked up from XENIX, unchanged. * M002 7 May 83 vwh * - added macros and padding for vax support. */ #ifdef M_VAX # define ARBASE(arp) ((arp)->ar_namGIC1 FMAGIC #define A_MAGIC2 NMAGIC #define A_MAGIC3 IMAGIC #define A_MAGIC4 OMAGIC #define Z_MAGIC1 0164007 /* normal 0xe807 */ #define Z_MAGIC2 0164010 /* pure only text 0xe808 */ #define Z_MAGIC3 0164011 /* separate I & D 0xe809 */ #define Z_MAGIC4 0164005 /* overlay 0xe805 */ #define ATEXTPOS(ap) ((long) sizeof(struct aexec)) #define ADATAPOS(ap) (ATEXTPOS(ap) + (long) (ap)->xa_text) #define ARTEXTPOS(ap) (ADATAPOS(ap) + (long) (ap)->xa_data) #define ARDATAPOS(ap) (ARTEXTPOS(ap) + ((longe) # define ARHSIZE (sizeof(struct ar_hdr) - ARHPAD) # define ARHPAD 2 #else # define ARBASE(arp) arp # define ARHSIZE sizeof(struct ar_hdr) #endif #define ARMAG 0177545 struct ar_hdr { #ifdef M_VAX char ar_pad[ARHPAD]; #endif char ar_name[14]; long ar_date; char ar_uid; char ar_gid; short ar_mode; /* M000 */ long ar_size; }; - 3.0 upgrade. Picked up from XENIX, unchanged. * M002 7 May 83 vwh * - added macros and padding for vax support. */ #ifdef M_VAX # define ARBASE(arp) ((arp)->ar_nam) \ ((ap)->xa_flag? 0 : (ap)->xa_text))) #define ASYMPOS(ap) (ATEXTPOS(ap) + \ (((ap)->xa_flag? 1L : 2L) * \ ((long) (ap)->xa_text + (long) (ap)->xa_data))) #define AENDPOS(ap) (ASYMPOS(ap) + (long) (ap)->xa_syms) struct bexec { /* b.out header */ long xb_magic; /* magic number */ long xb_text; /* text segment size */ long xb_data; /* data segment size */ long xb_bss; /* bss size */ long xb_syms; /* symbol table size */ long xb_trsize; /* text relocation table size */ long usr/include/assert.h100644 0 2 2266 3425136000 7775 xb_drsize; /* data relocation table size */ long xb_entry; /* entry point */ }; #define BTEXTPOS(bp) ((long) sizeof(struct bexec)) #define BDATAPOS(bp) (BTEXTPOS(bp) + (bp)->xb_text) #define BSYMPOS(bp) (BDATAPOS(bp) + (bp)->xb_data) #define BRTEXTPOS(bp) (BSYMPOS(bp) + (bp)->xb_syms) #define BRDATAPOS(bp) (BRTEXTPOS(bp) + (bp)->xb_trsize) #define BENDPOS(bp) (BRDATAPOS(bp) + (bp)->xb_drsize) /* bss size */ long xb_syms; /* symbol table size */ long xb_trsize; /* text relocation table size */ long /* * @(#) assert.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** assert.h * * MODIFICATION HISTORY * M000 RRR 9/29/82 * - Added ASSERT to work indistinguishable from a function call. * M001 05 Oct 82 andyp * - Parenthesized 'expr' in macro expansion. Previously negation * operator ('!') would bind incorrectly in expressions like: * ASSERT usr/include/ar.h100644 0 2 1525 3425136000 7073   (a < b && c < d); * M002 14 Apr 83 andyp * - 3.0 upgrade. Removed 'ASSERT', fixed 'assert'. 'assert' now does * what 'ASSERT' did, i.e. it works correctly. Note that it matches * the documentation, so there is no compatibility issue. 'ASSERT' * was never documented. */ /*** assert -- program verification * * assert(expr); * _assert(expr); * int expr; */ #ifndef M_LINT /*{*/ #ifndef NDEBUG /*{*/ # define _assert(expr)\ if (!(expr)) {\ fprintf(stderr,"Assertion failed: file %s, li/* * @(#) ctype.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** ctype.h * * In order to get non-macro versions of toupper() and tolower(), M000 * do a #undef. Non-macro versions are supplied in libc. M000 * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (mostly uncommented). 3.0 source. Added * toupper() and tolower(). */ #ne %d\n", __FILE__, __LINE__);\ exit(1);\ }\ else # define assert(expr) _assert(expr) #else /*}{*/ # define _assert(expr) # define assert(expr) #endif /*}*/ #endif /*}*/ es * the documentation, so there is no compatibility issue. 'ASSERT' * was never documented. */ /*** assert -- program verification * * assert(expr); * _assert(expr); * int expr; */ #ifndef M_LINT /*{*/ #ifndef NDEBUG /*{*/ # define _assert(expr)\ if (!(expr)) {\ fprintf(stderr,"Assertion failed: file %s, lidefine _U 01 #define _L 02 #define _N 04 #define _S 010 #define _P 020 #define _C 040 #define _B 0100 #define _X 0200 extern char _ctype[]; #define isalpha(c) ((_ctype+1)[c]&(_U|_L)) #define isupper(c) ((_ctype+1)[c]&_U) #define islower(c) ((_ctype+1)[c]&_L) #define isdigit(c) ((_ctype+1)[c]&_N) #define isxdigit(c) ((_ctype+1)[c]&_X) #define isspace(c) ((_ctype+1)[c]&_S) #define ispunct(c) ((_ctype+1)[c]&_P) #define isalnum(c) ((_ctype+1)[c]&(_U|_L|_N)) #define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_N|_B)) usr/include/core.h100644 0 2 323 3425136000 7374 #define isgraph(c) ((_ctype+1)[c]&(_P|_U|_L|_N)) #define iscntrl(c) ((_ctype+1)[c]&_C) #define isascii(c) ((unsigned)(c)<=0177) #define _toupper(c) ((c)-'a'+'A') #define _tolower(c) ((c)-'A'+'a') #define toupper(c) (islower(c) ? _toupper(c) : (c)) /* M000 */ #define tolower(c) (isupper(c) ? _tolower(c) : (c)) /* M000 */ #define toascii(c) ((c)&0177) e(c) ((_ctype+1)[c]&_S) #define ispunct(c) ((_ctype+1)[c]&_P) #define isalnum(c) ((_ctype+1)[c]&(_U|_L|_N)) #define isprint(c) ((_ctype+1)[c]&(_P|_U|_L|_N|_B)) /* * @(#) core.h 1.1 85/01/23 */ /* machine dependent stuff for core files */ /* definitions for ALTOS 8086 */ #define TXTRNDSIZ 4096L #define stacktop(siz) (0x10000L) #define stackbas(siz) (0x10000L-siz) there is no compatibility issue. 'ASSERT' * was never documented. */ /*** assert -- program verification * * assert(expr); * _assert(expr); * int expr; */ #ifndef M_LINT /*{*/ #ifndef NDEBUG /*{*/ # define _assert(expr)\ if (!(expr)) {\ fprintf(stderr,"Assertion failed:PˆPÒùÒùusr/include/curses.h100644 0 2 11051 3425136000 10010 usr/include/ctype.h100644 0 2 2540 3425136000 7613   /* * @(#) curses.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* @(#)curses.h 1.14 (Berkeley) 7/4/83 */ # ifndef WINDOW # include # include # define bool char # define reg register # define TRUE (1) # define FALSE (0) # define ERR (0) # define OK (1) # define _ENDLINE 001 # define _FULLWIN 002 # define _SCROLLWIN 004 # define _FLUSH,x) VOID(wmove(win,y,x)==ERR?ERR:wgetch(win)) #define mvwaddstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str)) #define mvwgetstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str)) #define mvwinch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : winch(win)) #define mvwdelch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win)) #define mvwinsch(win,y,x,c) VOID(wmove(win,y,x) == ERR ? ERR:winsch(win,c)) #define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch) #define mvgetch(y,x) mvwgetch(stdscr, 010 # define _STANDOUT 0200 # define _NOCHANGE -1 # define _puts(s) tputs(s, 0, _putchar); typedef struct sgttyb SGTTY; /* * Capabilities from termcap */ extern bool AM, BS, CA, DA, DB, EO, GT, HZ, IN, MI, MS, NC, OS, UL, XN; extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *DC, *DL, *DM, *DO, *ED, *EI, *HO, *IC, *IM, *IP, *LL, *MA, *ND, *NL, *SE, *SF, *SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VE, *VS, PC; /* * From the tty modes... */ extern bool NONL, UPPERCASE, nory,x) #define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str) #define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str) #define mvinch(y,x) mvwinch(stdscr,y,x) #define mvdelch(y,x) mvwdelch(stdscr,y,x) #define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c) /* * psuedo functions */ #define clearok(win,bf) (win->_clear = bf) #define leaveok(win,bf) (win->_leave = bf) #define scrollok(win,bf) (win->_scroll = bf) #define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH)) #define getyx(win,y,x) mtty, _pfast; struct _win_st { short _cury, _curx; short _maxy, _maxx; short _begy, _begx; short _flags; bool _clear; bool _leave; bool _scroll; char **_y; short *_firstch; short *_lastch; struct _win_st *_nextp, *_orig; }; # define WINDOW struct _win_st extern bool My_term, _echoit, _rawmode, _endwin; extern char *Def_term, ttytype[]; extern int LINES, COLS, _tty_ch, _res_flg; extern SGTTY _tty; extern WINDOW *stdscr, *curscr; /* * Define VOID to stop lint from generating "nul y = win->_cury, x = win->_curx #define winch(win) (win->_y[win->_cury][win->_curx] & 0177) #define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, stty(_tty_ch,&_tty)) #define noraw() (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),stty(_tty_ch,&_tty)) #define crmode() (_tty.sg_flags |= CBREAK, _rawmode = TRUE, stty(_tty_ch,&_tty)) #define nocrmode() (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,stty(_tty_ch,&_tty)) #define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, stty(_tty_ch, &_tl effect" * comments. */ # ifdef lint int __void__; # define VOID(x) (__void__ = (int) (x)) # else # define VOID(x) (x) # endif /* * psuedo functions for standard screen */ # define addch(ch) VOID(waddch(stdscr, ch)) # define getch() VOID(wgetch(stdscr)) # define addstr(str) VOID(waddstr(stdscr, str)) # define getstr(str) VOID(wgetstr(stdscr, str)) # define move(y, x) VOID(wmove(stdscr, y, x)) # define clear() VOID(wclear(stdscr)) # define erase() VOID(werase(stdscr)) # define clrtobot() VOID(wclrtoty)) #define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, stty(_tty_ch, &_tty)) #define nl() (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty)) #define nonl() (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty)) #define savetty() (gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags) #define resetty() (_tty.sg_flags = _res_flg, stty(_tty_ch, &_tty)) WINDOW *initscr(), *newwin(), *subwin(); char *longname(), *getcap(); /* * Used to be in unctrl.h. */ #define unctrl(c) _unctrl[(c)bot(stdscr)) # define clrtoeol() VOID(wclrtoeol(stdscr)) # define insertln() VOID(winsertln(stdscr)) # define deleteln() VOID(wdeleteln(stdscr)) # define refresh() VOID(wrefresh(stdscr)) # define inch() VOID(winch(stdscr)) # define insch(c) VOID(winsch(stdscr,c)) # define delch() VOID(wdelch(stdscr)) # define standout() VOID(wstandout(stdscr)) # define standend() VOID(wstandend(stdscr)) /* * mv functions */ #define mvwaddch(win,y,x,ch) VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch)) #define mvwgetch(win,y   & 0177] extern char *_unctrl[]; # endif ECHO, _echoit = FALSE, stty(_tty_ch, &_tty)) #define nl() (_tty.sg_flags |= CRMOD,_pfast = _rawmode,stty(_tty_ch, &_tty)) #define nonl() (_tty.sg_flags &= ~CRMOD, _pfast = TRUE, stty(_tty_ch, &_tty)) #define savetty() (gtty(_tty_ch, &_tty), _res_flg = _tty.sg_flags) #define resetty() (_tty.sg_flags = _res_flg, stty(_tty_ch, &_tty)) WINDOW *initscr(), *newwin(), *subwin(); char *longname(), *getcap(); /* * Used to be in unctrl.h. */ #define unctrl(c) _unctrl[(c)/* * @(#) dk.h 1.1 85/01/23 */ /* * switch commands */ #define RAM_ON 0226 #define ROM_ON 0322 #define R_CNTL 0264 #define W_CNTL 0170 /* * library routine declarations */ extern long cmread(); extern long ocmread(); /* * call setup struct */ struct dialout { char srv; char area; char sw; char mch; char chan; char other; short check; }; struct indial { char i_lchan; char i_rhost; char i_rchan; char i_srv; char i_area; char i_sw; char i_mch; char i_chan; char i_other; short i_usr/include/dbm.h100644 0 2 1320 3425136000 7224 check; }; #define D_SH 1 #define D_FS 2 #define D_LSTNR 3 struct ring { char r_lchan; char r_srv; }; ne R_CNTL 0264 #define W_CNTL 0170 /* * library routine declarations */ extern long cmread(); extern long ocmread(); /* * call setup struct */ struct dialout { char srv; char area; char sw; char mch; char chan; char other; short check; }; struct indial { char i_lchan; char i_rhost; char i_rchan; char i_srv; char i_area; char i_sw; char i_mch; char i_chan; char i_other; short i_/* * @(#) dbm.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * dbm.h - declarations for the data base management package. * * MODIFICATION HISTORY * M000 22 Jun 83 vwh * - Moved variable declarations from dbm.h to dbm.c (this file) * and made them static! `pagbuf' and `dirbuf' were declared * in dbm.h and in other modules attempting to use the dbm rusr/include/dumprestor.h100644 0 2 1362 3425136000 10674 outines. * Made routines not documented in dbm(3) static. */ typedef struct { char *dptr; int dsize; } datum; int dbminit(); int delete(); int store(); datum fetch(); datum firstkey(); datum nextkey(); */ /* * dbm.h - declarations for the data base management package. * * MODIFICATION HISTORY * M000 22 Jun 83 vwh * - Moved variable declarations from dbm.h to dbm.c (this file) * and made them static! `pagbuf' and `dirbuf' were declared * in dbm.h and in other modules attempting to use the dbm r/* * @(#) dumprestor.h 1.1 85/01/23 */ /* Modification History * * 05/02/82 JGL M000 * - paramaterized NTREC to write 10K byte records, * regardless of BSIZE */ #define NTREC (20*512/BSIZE) #define MLEN 16 #define MSIZ 4096 #define TS_TAPE 1 #define TS_INODE 2 #define TS_BITS 3 #define TS_ADDR 4 #define TS_END 5 #define TS_CLRI 6 #define MAGIC (int)60011 #define CHECKSUM (int)84446 struct spcl { int c_type; time_t c_dateusr/include/dk.h100644 0 2 1151 3425136000 7062   ; time_t c_ddate; int c_volume; daddr_t c_tapea; ino_t c_inumber; int c_magic; int c_checksum; struct dinode c_dinode; int c_count; char c_addr[BSIZE]; } spcl; struct idates { char id_name[16]; char id_incno; time_t id_ddate; }; (20*512/BSIZE) #define MLEN 16 #define MSIZ 4096 #define TS_TAPE 1 #define TS_INODE 2 #define TS_BITS 3 #define TS_ADDR 4 #define TS_END 5 #define TS_CLRI 6 #define MAGIC (int)60011 #define CHECKSUM (int)84446 struct spcl { int c_type; time_t c_date*/ #define ENOSPC 28 /* No space left on device */ #define ESPIPE 29 /* Illegal seek */ #define EROFS 30 /* Read only file system */ #define EMLINK 31 /* Too many links */ #define EPIPE 32 /* Broken pipe */ /* math software */ #define EDOM 33 /* Math arg out of domain of func */ #define ERANGE 34 /* Math result not representable */ #define EUCLEAN 35 /* File system needs cleaning *//*M000*/ #define EDEADLOCK 36 /* Would deadlock *//*M000*/ #define ENOTNAM 37 /* Not a name file *//*M000*/ #deusr/include/errno.h100644 0 2 4260 3425136000 7615 fine ENAVAIL 38 /* Not available *//*M000*/ #define EISNAM 39 /* Is a name file *//*M001*/ /* From 2.5 version of errno.h (ALTOS). */ #define EUPORT 39 #define EPEXIST 40 */ #define EPIPE 32 /* Broken pipe */ /* math software */ #define EDOM 33 /* Math arg out of domain of func */ #define ERANGE 34 /* Math result not representable */ #define EUCLEAN 35 /* File system needs cleaning *//*M000*/ #define EDEADLOCK 36 /* Would deadlock *//*M000*/ #define ENOTNAM 37 /* Not a name file *//*M000*/ #de/* * @(#) errno.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** errno.h * * Error codes * * MODIFICATION HISTORY * M000 07 Apr 83 andyp 3.0 upgrade * - Merged XENIX and 3.0 errors. * M001 17 Aug 83 andyp * - Added EISNAM. */ #define EPERM 1 /* Not super-user */ #define ENOENT 2 /* No such file or directory */ #define ESRCH 3 /* No such processusr/include/execargs.h100644 0 2 513 3425136000 10246  */ #define EINTR 4 /* interrupted system call */ #define EIO 5 /* I/O error */ #define ENXIO 6 /* No such device or address */ #define E2BIG 7 /* Arg list too long */ #define ENOEXEC 8 /* Exec format error */ #define EBADF 9 /* Bad file number */ #define ECHILD 10 /* No children */ #define EAGAIN 11 /* No more processes */ #define ENOMEM 12 /* Not enough core */ #define EACCES 13 /* Permission denied */ #define EFAULT 14 /* Bad address */ #define ENOTBLK 15 /* Block device required/* * @(#) execargs.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** execargs.h * * WARNING: machine dependent * */ /* INTEL 8086 version */ char **execargs = (char**)(-2); resentable */ #define EUCLEAN 35 /* File system needs cleaning *//*M000*/ #define EDEADLOCK 36 /* Would deadlock *//*M000*/ #define ENOTNAM 37 /* Not a name file */PˆPÒùÒù */ #define EBUSY 16 /* Mount device busy */ #define EEXIST 17 /* File exists */ #define EXDEV 18 /* Cross-device link */ #define ENODEV 19 /* No such device */ #define ENOTDIR 20 /* Not a directory */ #define EISDIR 21 /* Is a directory */ #define EINVAL 22 /* Invalid argument */ #define ENFILE 23 /* File table overflow */ #define EMFILE 24 /* Too many open files */ #define ENOTTY 25 /* Not a typewriter */ #define ETXTBSY 26 /* Text file busy */ #define EFBIG 27 /* File too large   usr/include/fcntl.h100644 0 2 2050 3425136000 7571 /* * @(#) grp.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** grp.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (uncommented). Picked up from 3.0. Added * comments. */ struct group { /* see getgrent(3) */ char *gr_name; /* group name */ char *gr_passwd; /* encrypted password */ int gr_gid; /* numerical group ID */ char/* * @(#) fcntl.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** fcntl.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - Picked up from 3.0, unchanged. */ /* Flag values accessible to open(2) and fcntl(2) */ /* (The first three can only be set by open) */ #define O_RDONLY 0000 #define O_WRONLY 0001 #define O_RDWR 0002 #define O_NDELA **gr_mem; /* group member names, a la argv */ }; Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** grp.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (uncommented). Picked up from 3.0. Added * comments. */ struct group { /* see getgrent(3) */ char *gr_name; /* group name */ char *gr_passwd; /* encrypted password */ int gr_gid; /* numerical group ID */ charY 0004 /* Non-blocking I/O */ #define O_APPEND 0010 /* append (writes guaranteed at the end) */ #define O_SYNCW 0100 /* Flag values accessible only to open(2) */ #define O_CREAT 00400 /* open with file create (uses third open arg)*/ #define O_TRUNC 01000 /* open with truncation */ #define O_EXCL 02000 /* exclusive open */ /* fcntl(2) requests */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags */usr/include/ident.h100644 0 2 113 3425136000 7544  #define F_SETFL 4 /* Set file flags */ APPEND 0010 /* append (writes guaranteed at the end) */ #define O_SYNCW 0100 /* Flag values accessible only to open(2) */ #define O_CREAT 00400 /* open with file create (uses third open arg)*/ #define O_TRUNC 01000 /* open with truncation */ #define O_EXCL 02000 /* exclusive open */ /* fcntl(2) requests */ #define F_DUPFD 0 /* Duplicate fildes */ #define F_GETFD 1 /* Get fildes flags */ #define F_SETFD 2 /* Set fildes flags */ #define F_GETFL 3 /* Get file flags *//* * @(#) ident.h 1.1 85/01/23 */ char myname[] = "Altos ACS 8600\0\0"; 983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** grp.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (uncommented). Picked up from 3.0. Added * comments. */ struct group { /* see getgrent(3) */ char *gr_name; /* group name */ char *gr_passwd; /* encrypted password */ int gr_gid; /* numerical groupPˆPÒùÒùusr/include/grp.h100644 0 2 1062 3425136000 7255   usr/include/math.h100644 0 2 1301 3425136000 7412  mount(1m) * command */ struct mnttab { char mt_dev[LFNMAX]; /* name of place special file mounted */ char mt_filsys[LPNMAX]; /* root name of mounted special file */ short mt_ro_flg; /* read/write permissions */ time_t mt_time; /* date on which mounted */ }; #define ISMNTFREE(mp) ((mp)->mt_dev[0] == '\0') #define PNMNTTAB "/etc/mnttab" /* administrative mount table */ #define MDMNTTAB 0644 /* mode of same */ #define PNMNTLCK "/etc/mntlock" /* lock for same */ #define PNMNTTMP "/tmp/mntXXXXXX" /*/* * @(#) math.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** math.h * * MODIFICATION HISTORY * M000 05 Apr 83 andyp 3.0 upgrade * - Brought back LOGHUGE from v7/2.3. */ extern double fabs(), floor(), ceil(), fmod(), ldexp(); extern double sqrt(), hypot(), atof(); extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2(); extern double exp( skel for mktemp(3) */ */ struct mnttab { char mt_dev[LFNMAX]; /* name of place special file mounted */ char mt_filsys[LPNMAX]; /* root name of mounted special file */ short mt_ro_flg; /* read/write permissions */ time_t mt_time; /* date on which mounted */ }; #define ISMNTFREE(mp) ((mp)->mt_dev[0] == '\0') #define PNMNTTAB "/etc/mnttab" /* administrative mount table */ #define MDMNTTAB 0644 /* mode of same */ #define PNMNTLCK "/etc/mntlock" /* lock for same */ #define PNMNTTMP "/tmp/mntXXXXXX" /*), log(), log10(), pow(); extern double sinh(), cosh(), tanh(); extern double gamma(); extern double j0(), j1(), jn(), y0(), y1(), yn(); #define HUGE 1.797693134862316e308 #define LOGHUGE 309 Confidential. */ /*** math.h * * MODIFICATION HISTORY * M000 05 Apr 83 andyp 3.0 upgrade * - Brought back LOGHUGE from v7/2.3. */ extern double fabs(), floor(), ceil(), fmod(), ldexp(); extern double sqrt(), hypot(), atof(); extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2(); extern double exp(usr/include/mon.h100644 0 2 762 3425136000 7244 usr/include/mnttab.h100644 0 2 2027 3425136000 7754 /* * @(#) mon.h 1.1 85/01/23 */ /* * Monitor buffer starts with the following structure: */ struct monhdr { int (*mh_lowpc)(); /* lowest address to profile */ int (*mh_highpc)(); /* highest address to profile */ unsigned short mh_nfunc; /* number of procedures to profile */ }; /* * and is followed by an array of monhdr->mh_nfunc of: */ struct mon { long m_count; /* number of invocations */ int (*m_proc)(); /* procedure address */ }; /* * and then by an array of shorts. */ /mPˆPÒùÒù/* * @(#) mnttab.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** mnttab.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - Added comments. * - Added ISMNTFREE() macro. * - Added various pathname macros. */ #define NMOUNT 32 /* arbitrarily large; actual value is configurable */ /* * Format of the /etc/mnttab file which is set by the  usr/include/mp.h100644 0 2 751 3425136000 7065 /* * @(#) pack.h 1.1 85/01/23 */ struct header { char sync; char ksize; unsigned short sum; char cntl; char ccntl; }; #define HDRSIZ 6 struct pack { short p_state; /* line state */ short p_bits; /* mask for getepack */ short p_rsize; /* input packet size */ short p_xsize; /* output packet size */ struct header p_ihbuf; /* input header */ struct header p_ohbuf; /* output header */ char *p_rptr; char p_mode; char **p_ipool; char p_xcount; /* # active output buffers */ char p_rcount; char/* * @(#) mp.h 1.1 85/01/23 */ #define MINT struct mint MINT { int len; short *val; }; #define FREE(x) {if(x.len!=0) {free((char *)x.val); x.len=0;}} #ifndef DBG #define shfree(u) free((char *)u) #else #include "stdio.h" #define shfree(u) { if(dbg) fprintf(stderr, "free %o\n", u); free((char *)u);} extern int dbg; #endif struct half { short high; short low; }; extern MINT *itom(); extern short *xalloc(); #ifdef lint extern xv_oid; #define VOID xv_oid = #else #define VOID #endif rts. */ /mPˆPÒùÒù p_nout,p_tout; char p_lpsize; /* log(psize/32) */ char p_timer; char p_obusy; char p_srxmit; char p_rwindow; /* window size */ char p_swindow; char p_msg; /* control msg */ char p_rmsg; /* repeated control msg */ char p_ps,p_pr; /* last packet sent, recv'd */ char p_rpr; char p_nxtps; /* next output seq number */ char p_imap; /* bit map of input buffers */ char p_pscopy; /* newest output packet */ char *p_ob[8]; /* output buffers */ char *p_ib[8]; /* input buffers */ char p_os[8]; /* outusr/include/mtab.h100644 0 2 207 3425136000 7370 put buffer status */ char p_is[8]; /* input buffer status */ short p_osum[8]; /* output checksums */ short p_isum[8]; /* input checksums */ DSYSTEM; }; #define CHECK 0125252 #define SYN 020 #define MOD8 7 #define ISCNTL(a) ((a & 0300)==0) #define MIN(a,b) ((a & */ #ifndef makedev # include #endif typedef unsigned size_t; struct psout { dev_t o_ttyd; /* u_ttyd */ int o_flag; /* p_flag */ short o_pid; /* p_pid */ char o_tty[9]; /* 1st few chars of tty name with 'tty' strusr/include/pwd.h100644 0 2 2151 3425136000 7257 ipped, if present */ char o_stat; /* p_stat */ short o_uid; /* p_uid */ char o_uname[9]; /* login name of process owner */ short o_ppid; /* p_ppid */ char o_cpu; /* p_cpu */ char o_pri; /* p_pri */ char o_nice; /* p_nice */ short o_addr0; /* p_addr[0] */ short o_size; /* p_size */ caddr_t o_wchan; /* p_wchan */ time_t o_u/* * @(#) pwd.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** pwd.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (uncommented). 3.0 source picked up, unchanged. * Added comments. */ struct passwd { /* see getpwent(3) */ char *pw_name; /* login name */ char *pw_passwd; /* encrypted password */ int pw_uid; /* numerical usertime; /* u_utime */ time_t o_stime; /* u_stime */ time_t o_cutime; /* u_cutime */ time_t o_cstime; /* u_cstime */ short o_pgrp; /* p_pgrp */ #ifdef VFLAG size_t o_dsize; /* p_dsize */ size_t o_ssize; /* p_ssize */ size_t o_rssize; /* p_rssize */ char o_time; /* p_time */ char o_slptime; /* p_slptime */ unsigned o_stksize; /* computed - size of s   ID */ int pw_gid; /* numerical group ID */ char *pw_age; /* data for password aging, see below */ char *pw_comment; char *pw_gecos; char *pw_dir; /* initial working directory */ char *pw_shell; /* program to use as shell */ }; /* * Characters for pw_passwd and 'digits' for pw_age taken from * the 64 character alphabet (., /, 0-9, a-z, A-Z). * * pw_age field: * Mmc...c * M = maximum number of weeks for which password is valid. * m = minimum period in weeks which must expire before * passwdbuf, seof) register char *ep; char *instring, *endbuf; { INIT /* Dependent declarations and initializations */ register c; register eof = seof; char *lastep = instring; int cclcnt; char bracket[NBRA], *bracketp; int closed; char neg; int lc; int i, cflg; lastep = 0; if((c = GETC()) == eof || c == '\n') { if(c == '\n') { UNGETC(c); nodelim = 1; } if(*ep == 0 && !sed) ERROR(41); RETURN(ep); } bracketp = bracket; circf = closed = nbra = ebra = 0; if(c == '^') circf++; elseord may be changed. * c...c = week (counted from 'the epoch') when password was last * changed. */ ar *pw_comment; char *pw_gecos; char *pw_dir; /* initial working directory */ char *pw_shell; /* program to use as shell */ }; /* * Characters for pw_passwd and 'digits' for pw_age taken from * the 64 character alphabet (., /, 0-9, a-z, A-Z). * * pw_age field: * Mmc...c * M = maximum number of weeks for which password is valid. * m = minimum period in weeks which must expire before * passw UNGETC(c); while(1) { if(ep >= endbuf) ERROR(50); c = GETC(); if(c != '*' && ((c != '\\') || (PEEKC() != '{'))) lastep = ep; if(c == eof) { *ep++ = CCEOF; RETURN(ep); } switch(c) { case '.': *ep++ = CDOT; continue; case '\n': if(!sed) { UNGETC(c); *ep++ = CCEOF; nodelim = 1; RETURN(ep); } else ERROR(36); case '*': if(lastep==0 || *lastep==CBRA || *lastep==CKET) goto defchar; *lastep |= STAR; continue; case '$': if(PEEKC() usr/include/regexp.h100644 0 2 15412 3425136000 10003 != eof && PEEKC() != '\n') goto defchar; *ep++ = CDOL; continue; case '[': if(&ep[17] >= endbuf) ERROR(50); *ep++ = CCL; lc = 0; for(i = 0; i < 16; i++) ep[i] = 0; neg = 0; if((c = GETC()) == '^') { neg = 1; c = GETC(); } do { if(c == '\0' || c == '\n') ERROR(49); if(c == '-' && lc != 0) { if((c = GETC()) == ']') { PLACE('-'); break; } while(lc < c) { PLACE(lc); lc++; } } /* M001 begin *//* * @(#) regexp.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** regexp.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. 3.0 source picked up unchanged. * M001 12 Dec 83 andyp * - Brought back recognition of '\n' in character classes. It was * in v7, for some reason they dropped it in 3.0. It is a useful * and innocuous fea if(c == '\\') { switch(c = GETC()) { case 'n': c = '\n'; break; } } /* M001 end */ lc = c; PLACE(c); } while((c = GETC()) != ']'); if(neg) { for(cclcnt = 0; cclcnt < 16; cclcnt++) ep[cclcnt] ^= -1; ep[0] &= 0376; } ep += 16; continue; case '\\': switch(c = GETC()) { case '(': if(nbra >= NBRA) ERROR(43); *bracketp++ = nbra; *ep++ = CBRA; *ep++ = nbra++; continue; case ')': if(bracketp <ture. */ #define CBRA 2 #define CCHR 4 #define CDOT 8 #define CCL 12 #define CDOL 20 #define CCEOF 22 #define CKET 24 #define CBACK 36 #define STAR 01 #define RNGE 03 #define NBRA 9 #define PLACE(c) ep[c >> 3] |= bittab[c & 07] #define ISTHERE(c) (ep[c >> 3] & bittab[c & 07]) char *braslist[NBRA]; char *braelist[NBRA]; int nbra, ebra; char *loc1, *loc2, *locs; int sed; int nodelim; int circf; int low; int size; char bittab[] = { 1, 2, 4, 8, 16, 32, 64, 128 }; char * compile(instring, ep, en  = bracket || ++ebra != nbra) ERROR(42); *ep++ = CKET; *ep++ = *--bracketp; closed++; continue; case '{': if(lastep == (char *) (0)) goto defchar; *lastep |= RNGE; cflg = 0; nlim: c = GETC(); i = 0; do { if('0' <= c && c <= '9') i = 10 * i + c - '0'; else ERROR(16); } while(((c = GETC()) != '\\') && (c != ',')); if(i > 255) ERROR(11); *ep++ = i; if(c == ',') { if(cflg++) ERROR(44); if((c = GETCstar; case CCL|RNGE: getrnge(ep + 16); while(low--) { c = *lp++ & 0177; if(!ISTHERE(c)) return(0); } curlp = lp; while(size--) { c = *lp++ & 0177; if(!ISTHERE(c)) break; } if(size < 0) lp++; ep += 18; /* 16 + 2 */ goto star; case CBACK: bbeg = braslist[*ep]; ct = braelist[*ep++] - bbeg; if(ecmp(bbeg, lp, ct)) { lp += ct; continue; } return(0); case CBACK|STAR: bbeg = braslist[*ep]; ct = braelist[*ep++] - bbeg; ()) == '\\') *ep++ = 255; else { UNGETC(c); goto nlim; /* get 2'nd number */ } } if(GETC() != '}') ERROR(45); if(!cflg) /* one number */ *ep++ = i; else if((ep[-1] & 0377) < (ep[-2] & 0377)) ERROR(46); continue; case '\n': ERROR(36); case 'n': c = '\n'; goto defchar; default: if(c >= '1' && c <= '9') { if((c -= '1') >= closed) ERROR(25); *ep++ = CBACK; *ep++ = c; continue; } } / curlp = lp; while(ecmp(bbeg, lp, ct)) lp += ct; while(lp >= curlp) { if(advance(lp, ep)) return(1); lp -= ct; } return(0); case CDOT|STAR: curlp = lp; while(*lp++); goto star; case CCHR|STAR: curlp = lp; while(*lp++ == *ep); ep++; goto star; case CCL|STAR: curlp = lp; do { c = *lp++ & 0177; } while(ISTHERE(c)); ep += 16; goto star; star: do { if(--lp == locs) break; if(advance(lp, ep)) return(1); } while(* Drop through to default to use \ to turn off special chars */ defchar: default: lastep = ep; *ep++ = CCHR; *ep++ = c; } } } step(p1, p2) register char *p1, *p2; { register c; if(circf) { loc1 = p1; return(advance(p1, p2)); } /* fast check for first character */ if(*p2==CCHR) { c = p2[1]; do { if(*p1 != c) continue; if(advance(p1, p2)) { loc1 = p1; return(1); } } while(*p1++); return(0); } /* regular algorithm */ do { if(advance(p1, p2)) { llp > curlp); return(0); } } getrnge(str) register char *str; { low = *str++ & 0377; size = *str == 255 ? 20000 : (*str &0377) - low; } ecmp(a, b, count) register char *a, *b; register count; { while(count--) if(*a++ != *b++) return(0); return(1); } = *ep); ep++; goto star; case CCL|STAR: curlp = lp; do { c = *lp++ & 0177; } while(ISTHERE(c)); ep += 16; goto star; star: do { if(--lp == locs) break; if(advance(lp, ep)) return(1); } while(oc1 = p1; return(1); } } while(*p1++); return(0); } advance(lp, ep) register char *lp, *ep; { register char *curlp; char c; char *bbeg; int ct; while(1) switch(*ep++) { case CCHR: if(*ep++ == *lp++) continue; return(0); case CDOT: if(*lp++) continue; return(0); case CDOL: if(*lp==0) continue; return(0); case CCEOF: loc2 = lp; return(1); case CCL: c = *lp++ & 0177; if(ISTHERE(c)) { ep += 16; continue; } return(0); case Cusr/include/saio.h100644 0 2 1603 3425136000 7421 BRA: braslist[*ep++] = lp; continue; case CKET: braelist[*ep++] = lp; continue; case CCHR|RNGE: c = *ep++; getrnge(ep); while(low--) if(*lp++ != c) return(0); curlp = lp; while(size--) if(*lp++ != c) break; if(size < 0) lp++; ep += 2; goto star; case CDOT|RNGE: getrnge(ep); while(low--) if(*lp++ == '\0') return(0); curlp = lp; while(size--) if(*lp++ == '\0') break; if(size < 0) lp++; ep += 2; goto   /* * @(#) saio.h 1.1 85/01/23 */ /* * header file for standalone package */ /* * io block: includes an * inode, cells for the use of seek, etc, * and a buffer. */ struct iob { char i_flgs; struct inode i_ino; int i_unit; daddr_t i_boff; daddr_t i_cyloff; off_t i_offset; daddr_t i_bn; char *i_ma; int i_cc; char i_buf[512]; }; #define F_READ 01 #define F_WRITE 02 #define F_ALLOC 04 #define F_FILE 010 /* * dev switch */ struct devsw { char *dv_name; int (*dv_strategy)(); int (*dv_usr/include/sgtty.h100644 0 2 4576 3425136000 7654 open)(); int (*dv_close)(); }; struct devsw devsw[]; /* * request codes. Must be the same a F_XXX above */ #define READ 1 #define WRITE 2 #define NBUFS 4 char b[NBUFS][512]; daddr_t blknos[NBUFS]; #define NFILES 4 struct iob iob[NFILES]; /* * Set to which 32Kw segment the code is physically running in. * Must be set by the users main (or there abouts). */ int segflag; efine F_ALLOC 04 #define F_FILE 010 /* * dev switch */ struct devsw { char *dv_name; int (*dv_strategy)(); int (*dv_/* * @(#) sgtty.h 1.1 85/01/23 */ /* * Structure for stty and gtty system calls. */ struct sgttyb { char sg_ispeed; /* input speed */ char sg_ospeed; /* output speed */ char sg_erase; /* erase character */ char sg_kill; /* kill character */ int sg_flags; /* mode flags */ }; /* * List of special characters */ struct tchars { char t_intrc; /* interrupt */ char t_quitc; /* quit */ char t_startc; /* start output */ char t_stopc; /* stop output */ char t_eofc; /* end-of-file */ char t_busr/include/setjmp.h100644 0 2 1435 3425136000 7773 rkc; /* input delimiter (like nl) */ }; /* * Modes */ #define TANDEM 01 #define CBREAK 02 #define LCASE 04 #define ECHO 010 #define CRMOD 020 #define RAW 040 #define ODDP 0100 #define EVENP 0200 #define ANYP 0300 #define NLDELAY 001400 #define TBDELAY 006000 #define XTABS 06000 #define CRDELAY 030000 #define VTDELAY 040000 #define BSDELAY 0100000 #define ALLDELAY 0177400 /* * Delay algorithms */ #define CR0 0 #define CR1 010000 #define CR2 020000 #define CR3 030000 #define NL0 0 #define NL1 000400 #d/* * @(#) setjmp.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ #ifndef _JBLEN /* { */ #ifdef M_VAX #define _JBLEN 10 #endif #ifdef M_PDP11 #define _JBLEN 3 #endif #ifdef M_I86 #ifdef M_I86SM /* shortret, sp, bp, si, di */ #define _JBLEN 5 #endif #ifdef M_I86MM /* ret, sp, bp, si, di */ #define _JBLEN 6 #endif #ifdef M_I86LM /* ret, sp, bp, si, di, ds *efine NL2 001000 #define NL3 001400 #define TAB0 0 #define TAB1 002000 #define TAB2 004000 #define FF0 0 #define FF1 040000 #define BS0 0 #define BS1 0100000 /* * Speeds */ #define B0 0 #define B50 1 #define B75 2 #define B110 3 #define B134 4 #define B150 5 #define B200 6 #define B300 7 #define B600 8 #define B1200 9 #define B1800 10 #define B2400 11 #define B4800 12 #define B9600 13 #define B19200 14 /* Altos uses 14 as B19200 instead of EXTA */ #define EXTA 14 #define EXTB 15 /* * tty ioctl comman/ #define _JBLEN 7 #endif #ifdef M_I86HM /* ret, sp, bp, si, di, ds */ #define _JBLEN 7 #endif #ifdef M_I86CM ERROR -- fall-thru case #endif #endif #ifdef M_M68000 #define _JBLEN 13 #endif #ifdef M_Z8000 #define _JBLEN (3+15) #endif #endif /* } */ typedef int jmp_buf[_JBLEN]; M_PDP11 #define _JBLEN 3 #endif #ifdef M_I86 #ifdef M_I86SM /* shortret, sp, bp, si, di */ #define _JBLEN 5 #endif #ifdef M_I86MM /* ret, sp, bp, si, di */ #define _JBLEN 6 #endif #ifdef M_I86LM /* ret, sp, bp, si, di, ds *  ds */ #define TIOCGETD (('t'<<8)|0) #define TIOCSETD (('t'<<8)|1) #define TIOCHPCL (('t'<<8)|2) #define TIOCMODG (('t'<<8)|3) #define TIOCMODS (('t'<<8)|4) #define TIOCGETP (('t'<<8)|8) #define TIOCSETP (('t'<<8)|9) #define TIOCSETN (('t'<<8)|10) #define TIOCEXCL (('t'<<8)|13) #define TIOCNXCL (('t'<<8)|14) #define TIOCFLUSH (('t'<<8)|16) #define TIOCSETC (('t'<<8)|17) #define TIOCGETC (('t'<<8)|18) #define DIOCLSTN (('d'<<8)|1) #define DIOCNTRL (('d'<<8)|2) #define DIOCMPX (('d'<<8)|3) #define DIOCgmentation violation */ #define SIGSYS 12 /* bad argument to system call */ #define SIGPIPE 13 /* write on a pipe with no one to read it */ #define SIGALRM 14 /* alarm clock */ #define SIGTERM 15 /* software termination signal from kill */ #define SIGUSR1 16 /* user defined signal 1 */ #define SIGUSR2 17 /* user defined signal 2 */ #define SIGCLD 18 /* death of a child */ #define SIGPWR 19 /* power-fail restart */ #ifndef KERNEL extern int (*signal())(); #endif #define SIG_DFL (int (*)())0 #ifdef lint #defNMPX (('d'<<8)|4) #define DIOCSCALL (('d'<<8)|5) #define DIOCRCALL (('d'<<8)|6) #define DIOCPGRP (('d'<<8)|7) #define DIOCGETP (('d'<<8)|8) #define DIOCSETP (('d'<<8)|9) #define DIOCLOSE (('d'<<8)|10) #define DIOCTIME (('d'<<8)|11) #define DIOCRESET (('d'<<8)|12) #define FIOCLEX (('f'<<8)|1) #define FIONCLEX (('f'<<8)|2) #define MXLSTN (('x'<<8)|1) #define MXNBLK (('x'<<8)|2) fine TIOCGETC (('t'<<8)|18) #define DIOCLSTN (('d'<<8)|1) #define DIOCNTRL (('d'<<8)|2) #define DIOCMPX (('d'<<8)|3) #define DIOCine SIG_IGN (int (*)())0 #else #define SIG_IGN (int (*)())1 #endif /* for 186 kernel */ #define SIGMOUS 27 /* mouse interrupt */ #define SIGWIND 28 /* window stat change */ #define SIGFPT SIGFPE * software termination signal from kill */ #define SIGUSR1 16 /* user defined signal 1 */ #define SIGUSR2 17 /* user defined signal 2 */ #define SIGCLD 18 /* death of a child */ #define SIGPWR 19 /* power-fail restart */ #ifndef KERNEL extern int (*signal())(); #endif #define SIG_DFL (int (*)())0 #ifdef lint #defusr/include/signal.h100644 0 2 3305 3425136000 7744 usr/include/stand.h100644 0 2 4343 3425136000 7603 /* * @(#) signal.h 1.6 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** signal.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - No changes. */ /* * ALTOS modifications * 16 Jul 84 cs 3.0 altos additions. * - NSIG and 186 kernel definitions. */ /* * No more than 32 signals (1-32) because they are * stored in bits in a long. */ #ifnde/* * @(#) stand.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** stand.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. (uncommented). Structs changed a bit, including * members moving from one struct to another. Net effect is loss * of 'cyloff' field, addition of [amc]time fields. Global names * changed some, usually withf NSIG #define NSIG 32 #endif #define SIGHUP 1 /* hangup */ #define SIGINT 2 /* interrupt (rubout) */ #define SIGQUIT 3 /* quit (ASCII FS) */ #define SIGILL 4 /* illegal instruction (not reset when caught) */ #define SIGTRAP 5 /* trace trap (not reset when caught) */ #define SIGIOT 6 /* IOT instruction */ #define SIGEMT 7 /* EMT instruction */ #define SIGFPE 8 /* floating point exception */ #define SIGKILL 9 /* kill (cannot be caught or ignored) */ #define SIGBUS 10 /* bus error */ #define SIGSEGV 11 /* se   addition of leading "_". Global * names added are errno, mtab. Global names removed are "b", * "blocknos". "segflag" is now M_PDP11. Defines added are BLKSIZ, * NAMSIZ, NDEV. Defines removed are NBUFS. */ #define SCCSID @(#)saio.h 4.2 /* * Header file for standalone package */ #include #include #include /* * I/O block flags */ #define F_READ 01 #define F_WRITE 02 #define F_ALLOC 04 #define F_FILE 010 /* * Request codes -- must be * the same as/* * @(#) stddef.h 1.1 85/01/23 */ #ifndef TRUE #define TRUE 1 #define FALSE 0 #endif #ifndef true #define true 1 #define false 0 #endif typedef int boolean; #define round(x) ((x >= 0.0) ? floor (x + 0.5) : (ceil (x - 0.5))) i_atime; time_t i_mtime; time_t i_ctime; struct dtab *i_dp; off_t i_offset; daddr_t i_bn; char *i_ma; int i_cc; char i_buf[512]; /* M000 why isn't this BLKSIZ ??? */ }; #define NFILES 6 struct iob _iobuf[NFILES]; #ifdef M_PDP11 /* * Set to which 32KPˆPÒùÒù an F_XXX above */ #define READ 1 #define WRITE 2 /* * Buffer sizes */ #define BLKSIZ 512 #define NAMSIZ 60 /* * devsw table -- * initialized in conf.c */ struct devsw { int (*dv_strategy)(); int (*dv_open)(); int (*dv_close)(); }; struct devsw _devsw[]; /* * dtab table -- entries * are created by MKNOD */ #define NDEV 6 struct dtab { char *dt_name; struct devsw *dt_devp; int dt_unit; daddr_t dt_boff; } _dtab[NDEV]; /* * mtab table -- entries * are created by mount */ #definusr/include/stdio.h100644 0 2 4226 3425136000 7614 e NMOUNT 4 struct mtab { char *mt_name; struct dtab *mt_dp; } _mtab[NMOUNT]; /* * I/O block: includes an inode, * cells for the use of seek, etc, * and a buffer. */ struct iob { char i_flgs; struct inode i_ino; time_t i_atime; time_t i_mtime; time_t i_ctime; struct dtab *i_dp; off_t i_offset; daddr_t i_bn; char *i_ma; int i_cc; char i_buf[512]; /* M000 why isn't this BLKSIZ ??? */ }; #define NFILES 6 struct iob _iobuf[NFILES]; #ifdef M_PDP11 /* * Set to which 32Kw segment th/* * @(#) stdio.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** stdio.h * * MODIFICATION HISTORY * M000 07 Apr 83 andyp 3.0 upgrade * - Changed getc(), putc() to deal with sign extension problems. * Added documentation headers. * - Propagated () to macro args to avoid precedence problems. * - Removed 3.0 vax-specific code. * A001 31 Jul 84 e code is physically running in. * Must be set by the user's main (or thereabouts). */ int segflag; #endif /* * Set to the error type of the routine that * last returned an error -- may be read by perror. */ int errno; me_t i_atime; time_t i_mtime; time_t i_ctime; struct dtab *i_dp; off_t i_offset; daddr_t i_bn; char *i_ma; int i_cc; char i_buf[512]; /* M000 why isn't this BLKSIZ ??? */ }; #define NFILES 6 struct iob _iobuf[NFILES]; #ifdef M_PDP11 /* * Set to which 32Kw segment th bob howry * - Added line buffering .. used high bit of _file field in * _iobuf structure to hold flag. */ #define BUFSIZ 512 #define _NFILE 20 #ifndef FILE extern struct _iobuf { char *_ptr; int _cnt; char *_base; char _flag; char _file; } _iob[_NFILE]; #endif #define _IOREAD 01 #define _IOWRT 02 #define _IONBF 04 #define _IOMYBUF 010 #define _IOEOF 020 #define _IOERR 040 #define _IOSTRG 0100 #define _IORW 0200 #define _IOLBF 0200 /* A001 */ #define NULL 0 #define FILE structusr/include/stddef.h100644 0 2 350 3425136000 7715    _iobuf #define EOF (-1) #define stdin (&_iob[0]) #define stdout (&_iob[1]) #define stderr (&_iob[2]) /*** getc -- get character from a stream. * * return character on success. return EOF on end of file or * error. * * int getc(stream) * FILE *stream; */ #ifndef M_LINT #define getc(p) ( \ --(p)->_cnt >= 0 ? \ (0xff & (int) (*(p)->_ptr++)) : \ _filbuf(p) \ ) #define getchar() getc(stdin) /*** putc -- put character on a stream. * * return character on success. return EOF on error. ar *strdup(); ng.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** string.h -- string(3) routines * */ #ifdef M_V7 #define strchr index #define strrchr rindex #endif extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strchr(), *strrchr(), *strpbrk(), *strtok(); extern int strcmp(), strncmp(), strlen(), strspn(), strcspn(); extern ch * * int putc(ch, stream) * char ch; * FILE *stream; */ #define putc(c, p) ( \ --(p)->_cnt >= 0 ? \ (0xff & (int) (*(p)->_ptr++ = (c))) : \ _flsbuf(c, p) \ ) #define putchar(c) putc(c, stdout) #define feof(p) (((p)->_flag&_IOEOF)!=0) #define ferror(p) (((p)->_flag&_IOERR)!=0) #define fileno(p) ((p)->_file & 0x7F) /* A001 */ #endif M_LINT extern FILE *fopen(); extern FILE *fdopen(); extern FILE *freopen(); extern long ftell(); extern char *fgets(); extern char *gets(); #define L_ctermidusr/include/symbol.h100644 0 2 222 3425136000 7747  9 #define L_cuserid 9 #define L_tmpnam 19 #define LFNMAX 15 /* max len for filename */ #define LPNMAX 128 /* (practical) max len for pathname */ \ _flsbuf(c, p) \ ) #define putchar(c) putc(c, stdout) #define feof(p) (((p)->_flag&_IOEOF)!=0) #define ferror(p) (((p)->_flag&_IOERR)!=0) #define fileno(p) ((p)->_file & 0x7F) /* A001 */ #endif M_LINT extern FILE *fopen(); extern FILE *fdopen(); extern FILE *freopen(); extern long ftell(); extern char *fgets(); extern char *gets(); #define L_ctermid/* * @(#) symbol.h 1.1 85/01/23 * * Structure of a symbol table entry */ struct symbol { char sy_name[8]; char sy_type; int sy_value; }; * Corporation and AT&T, and should be treated as Confidential. */ /*** string.h -- string(3) routines * */ #ifdef M_V7 #define strchr index #define strrchr rindex #endif extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strchr(), *strrchr(), *strpbrk(), *strtok(); extern int strcmp(), strncmp(), strlen(), strspn(), strcspn()PˆPÒùÒùusr/include/string.h100644 0 2 1017 3425136000 7773 usr/include/sysexits.h100644 0 2 6254 3425136000 10370 /* * @(#) string.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** string.h -- string(3) routines * */ #ifdef M_V7 #define strchr index #define strrchr rindex #endif extern char *strcpy(), *strncpy(), *strcat(), *strncat(), *strchr(), *strrchr(), *strpbrk(), *strtok(); extern int strcmp(), strncmp(), strlen(), strspn(), strcspn(); extern ch  /* * @(#) sysexits.h 1.1 85/01/23 */ /* ** SYSEXITS.H -- Exit status codes for system programs. ** ** This include file attempts to categorize possible error ** exit statuses for system programs, notably delivermail ** and the Berkeley network. ** ** Error numbers begin at EX__BASE to reduce the possibility of ** clashing with other exit statuses that random programs may ** already return. The meaning of the codes is approximately ** as follows: ** ** EX_USAGE --ror messages */ # define EX_USAGE 64 /* command line usage error */ # define EX_DATAERR 65 /* data format error */ # define EX_NOINPUT 66 /* cannot open input */ # define EX_NOUSER 67 /* addressee unknown */ # define EX_NOHOST 68 /* host name unknown */ # define EX_UNAVAILABLE 69 /* service unavailable */ # define EX_SOFTWARE 70 /* internal software error */ # define EX_OSERR 71 /* system error (e.g., can't fork) */ # define EX_OSFILE The command was used incorrectly, e.g., with ** the wrong number of arguments, a bad flag, a bad ** syntax in a parameter, or whatever. ** EX_DATAERR -- The input data was incorrect in some way. ** This should only be used for user's data & not ** system files. ** EX_NOINPUT -- An input file (not a system file) did not ** exist or was not readable. This could also include ** errors like "No message" to a mailer (if it  72 /* critical OS file missing */ # define EX_CANTCREAT 73 /* can't create (user) output file */ # define EX_IOERR 74 /* input/output error */ annot open input */ # define EX_NOUSER 67 /* addressee unknown */ # define EX_NOHOST 68 /* host name unknown */ # define EX_UNAVAILABLE 69 /* service unavailable */ # define EX_SOFTWARE 70 /* internal software error */ # define EX_OSERR 71 /* system error (e.g., can't fork) */ # define EX_OSFILEcared ** to catch it). ** EX_NOUSER -- The user specified did not exist. This might ** be used for mail addresses or remote logins. ** EX_NOHOST -- The host specified did not exist. This is used ** in mail addresses or network requests. ** EX_UNAVAILABLE -- A service is unavailable. This can occur ** if a support program or file does not exist. This ** can also be used as a catchall message when something ** youusr/include/systype.h100644 0 2 716 3425136000 10172  wanted to do doesn't work, but you don't know ** why. ** EX_SOFTWARE -- An internal software error has been detected. ** This should be limited to non-operating system related ** errors as possible. ** EX_OSERR -- An operating system error has been detected. ** This is intended to be used for such things as "cannot ** fork", "cannot create pipe", or the like. It includes ** things like getuid returning a user that does/* * @(#)systype.h 1.1 11/30/84 */ #ifndef SYS_586 /* machines */ #define SYS_586 1 #define SYS_186 2 #define SYS_286 3 #define SYS_8600 4 #define SYS_68000 5 #define SYS_486 6 #define SYS_586T 7 #define SYS_9286 8 /* special features (use bits in high byte) */ #define SYSBOOST 0x100 /* 4.2 file system booster pak */ #define BOOSTER(x) (((x)&SYSBOOST) == SYSBOOST) /* machine type exclusive of special features */ #define SYST(x) ((x)&0xff) #endif tem error (e.g., can't fork) */ # defiPˆPÒùÒù not ** exist in the passwd file. ** EX_OSFILE -- Some system file (e.g., /etc/passwd, /etc/utmp, ** etc.) does not exist, cannot be opened, or has some ** sort of error (e.g., syntax error). ** EX_CANTCREAT -- A (user specified) output file cannot be ** created. ** EX_IOERR -- An error occurred while doing I/O on some file. */ # define EX_OK 0 /* successful termination */ # define EX__BASE 64 /* base value for er  usr/include/termio.h100644 0 2 6145 3425136000 7773 EXTA 0000016 #define EXTB 0000017 #define CSIZE 0000060 #define CS5 0 #define CS6 0000020 #define CS7 0000040 #define CS8 0000060 #define CSTOPB 0000100 #define CREAD 0000200 #define PARENB 0000400 #define PARODD 0001000 #define HUPCL 0002000 #define CLOCAL 0004000 /* line discipline 0 modes */ #define ISIG 0000001 #define ICANON 0000002 #define XCASE 0000004 #define ECHO 0000010 #define ECHOE 0000020 #define ECHOK 0000040 #define ECHONL 0000100 #define NOFLSH 0000200 #define KEYTRANS 040000 /* for 186 ke/* * @(#)termio.h 1.4 1/23/85 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ #define NCC 8 /* control characters */ #define VINTR 0 #define VQUIT 1 #define VERASE 2 #define VKILL 3 #define VEOF 4 #define VEOL 5 #define VMIN 4 #define VTIME 5 #define VCEOF NCC /* true EOF char (V7 compatability) */ #define VCEOL (NCC + 1) /* true EOL char */ #define CNUL 0 #define CDEL 0377 /* defauyborad line discipline */ #define XCLUDE 0100000 /* *V7* exclusive use */ #define SSPEED 13 /* default speed: 7=300, 13=9600 baud */ #define OFFSPEED 0 /* speed for unopened modem ports */ /* * Ioctl control packet */ struct termio { unsigned short c_iflag; /* input modes */ unsigned short c_oflag; /* output modes */ unsigned short c_cflag; /* control modes */ unsigned short c_lflag; /* line discipline modes */ char c_line; /* line discipline */ #ifdef KERNEL uchar_t c_cclt control chars */ #define CESC '\\' #define CINTR 0177 /* DEL */ #define CQUIT 034 /* FS, cntl | */ #define CERASE '\010' /* backsp */ #define CKILL '\025' /* cntl u */ #define CEOF 04 /* cntl d */ #define CSTART 021 /* cntl q */ #define CSTOP 023 /* cntl s */ /* input modes */ #define IGNBRK 0000001 #define BRKINT 0000002 #define IGNPAR 0000004 #define PARMRK 0000010 #define INPCK 0000020 #define ISTRIP 0000040 #define INLCR 0000100 #define IGNCR 0000200 #define ICRNL 0000400 #define IUCLC 0001000s[NCC]; /* control chars */ #else uchar_t c_cc[NCC]; /* control chars */ #endif }; /* default speed: 7=300, 13=9600 baud */ #define OFFSPEED 0 /* speed for unopened modem ports */ /* * Ioctl control packet */ struct termio { unsigned short c_iflag; /* input modes */ unsigned short c_oflag; /* output modes */ unsigned short c_cflag; /* control modes */ unsigned short c_lflag; /* line discipline modes */ char c_line; /* line discipline */ #ifdef KERNEL uchar_t c_cc #define IXON 0002000 #define IXANY 0004000 #define IXOFF 0010000 /* output modes */ #define OPOST 0000001 #define OLCUC 0000002 #define ONLCR 0000004 #define OCRNL 0000010 #define ONOCR 0000020 #define ONLRET 0000040 #define OFILL 0000100 #define OFDEL 0000200 #define NLDLY 0000400 #define NL0 0 #define NL1 0000400 #define CRDLY 0003000 #define CR0 0 #define CR1 0001000 #define CR2 0002000 #define CR3 0003000 #define TABDLY 0014000 #define TAB0 0 #define TAB1 0004000 #define TAB2 0010000 #define TAB3 0014usr/include/time.h100644 0 2 1372 3425136000 7427 000 #define BSDLY 0020000 #define BS0 0 #define BS1 0020000 #define VTDLY 0040000 #define VT0 0 #define VT1 0040000 #define FFDLY 0100000 #define FF0 0 #define FF1 0100000 /* control modes */ #define CBAUD 0000017 #define B0 0 #define B50 0000001 #define B75 0000002 #define B110 0000003 #define B134 0000004 #define B150 0000005 #define B200 0000006 #define B300 0000007 #define B600 0000010 #define B1200 0000011 #define B1800 0000012 #define B2400 0000013 #define B4800 0000014 #define B9600 0000015 #define   /* * @(#) time.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** time.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade. Picked up 3.0 source, unchanged. Added comments. */ struct tm { /* see ctime(3) */ int tm_sec; /* time of day, seconds */ int tm_min; /* time of day, minutes */ int tm_hour; /* time of day, hours (24 hour clock/* * @(#) ustat.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** ustat.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - Picked up 3.0 source, unchanged. */ struct ustat { daddr_t f_tfree; /* total free */ ino_t f_tinode; /* total inodes free */ char f_fname[6]; /* filsys name */ char f_fpack[6]; /* filsys pack name */ }; ˆPÒùÒù) */ int tm_mday; /* day of month (1-31) */ int tm_mon; /* month of year (0-11) */ int tm_year; /* year - 1900 */ int tm_wday; /* day of week (Sunday = 0) */ int tm_yday; /* day of year (0-365) */ int tm_isdst; /* non-0 if DST in effect */ }; * M000 14 Apr 83 andyp * - 3.0 upgrade. Picked up 3.0 source, unchanged. Added comments. */ struct tm { /* see ctime(3) */ int tm_sec; /* time of day, seconds */ int tm_min; /* time of day, minutes */ int tm_hour; /* time of day, hours (24 hour clockusr/include/utmp.h100644 0 2 750 3425136000 7435 usr/include/tp_defs.h100644 0 2 261 3425136000 10071 /* * @(#) utmp.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** utmp.h * * Format of /etc/utmp and /usr/adm/wtmp * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - Picked up 3.0 source, unchanged. */ struct utmp { char ut_line[8]; /* tty name */ char ut_name[8]; /* user id */ long ut_time; /* time on */ }; ack name */ PˆPÒùÒù/* * @(#) tp_defs.h 1.1 85/01/23 */ char mt[] = "/dev/mt0"; char tc[] = "/dev/tapx"; int flags = flu; char mheader[] = "/usr/mdec/mboot"; char theader[] = "/usr/mdec/tboot"; /* day of year (0-365) */ int tm_isdst; /* non-0 if DST in effect */ }; * M000 14 Apr 83 andyp * - 3.0 upgrade. Picked up 3.0 source, unchanged. Added comments. */ struct tm { /* see ctime(3) */ int tm_sec; /* time of day, seconds */ int tm_min; /* time of day, minutes */ int tm_hour; /* time of day, hours (2PˆPÒùÒùusr/include/varargs.h100644 0 2 771 3425136000 10120 usr/include/ustat.h100644 0 2 767 3425136000 7620   /* * @(#) varargs.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** varargs.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - No changes. */ typedef char *va_list; #define va_dcl int va_alist; #define va_start(list) list = (char *) &va_alist #define va_end(list) #define va_arg(list,mode) ((mode *)(list += sizeof(mode)))[-1] PÒùÒùentrys */ struct srel86 { char srtyp; /* type of segment relocation */ char srhib; /* high byte of reloc address */ unsigned int srlow; /* low word of reloc address */ }; #define R86_CTC 0 /* code reference to code */ #define R86_CTD 1 /* code reference to data */ #define R86_DTC 2 /* data reference to code */ #define R86_DTD 3 /* data reference to data */ +---------------------+ */ /* relocation table usr/include/whoami.h100644 0 2 100 3425136000 7721 usr/include/sys.s100644 0 2 1250 3425136000 7315 /* * @(#) whoami.h 1.1 85/01/23 */ #define sysname "acs-586" Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /*** varargs.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp 3.0 upgrade * - No changes. */ typedef char *va_list; #define va_dcl int va_alist; #define va_start(list) list = (char *) &va_alist #define va_end(list) #define va_arg(list,mode) ((mode *)(list += sizeof(mode)))PˆPÒùÒù| | @(#) sys.s 1.1 85/01/23 | indir = 0. exit = 1. fork = 2. read = 3. write = 4. open = 5. close = 6. wait = 7. creat = 8. link = 9. unlink = 10. exec = 11. chdir = 12. time = 13. mknod = 14. chmod = 15. chown = 16. break = 17. stat = 18. lseek = 19. getpid = 20. mount = 21. umount = 22. setuid = 23. getuid = 24. stime = 25. ptrace = 26. alarm = 27. fstat = 28. pause = 29. utime = 30. stty = 31. gtty = 32. access = 33. nice = 34. ftime = 35. sync = 36. kill = 37. dup = 41. pipe = 42. times = 43. profil usr/include/xout86.h100644 0 2 1710 3425136000 7642 = 44. setgid = 46. getgid = 47. signal = 48. acct = 51. phys = 52. lock = 53. ioctl = 54. mpx = 56. exece = 59. umask = 60. chroot = 61. clocal = 62. cxenix = 63. 2. time = 13. mknod = 14. chmod = 15. chown = 16. break = 17. stat = 18. lseek = 19. getpid = 20. mount = 21. umount = 22. setuid = 23. getuid = 24. stime = 25. ptrace = 26. alarm = 27. fstat = 28. pause = 29. utime = 30. stty = 31. gtty = 32. access = 33. nice = 34. ftime = 35. sync = 36. kill = 37. dup = 41. pipe = 42. times = 43. profil /* * @(#) xout86.h 1.1 85/01/23 */ /* * x.out.86 - Detail definitions of 8086 abs format */ /* File format: * * +---------------------+ * | x.out header | * +---------------------+ * | text | * +---------------------+ * | data | * +---------------------+ * | reloc table | * +---------------------+ * | symbol table | * +---------------------+ */ /* relocation table    usr/include/local/uparm.h100644 0 2 655 3425136000 10672 ock on disk */ #define LAYOUTS 10 /* Number of user definable layouts */ struct layout { daddr_t l_blkoff; /* Block offset to the area */ daddr_t l_nblocks; /* Number of blocks in the area */ }; ctors for bad sectors to be mapped into. * 10 Future expansion * 11 All of track0 * 12 Place where boot program is placed. * 13 Rest of cylinder zero, is used for fsck temporary file. * 14 Layout information. * 15 Sector to sector map (see sspare.h) */ #define LAYBLK 3 /* Layout info is kept in the 3 bl/* * @(#) uparm.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ #define libpath(file) "/usr/lib/file" #define loclibpath(file) "/usr/local/lib/file" #define binpath(file) "/usr/bin/file" #define usrpath(file) "/usr/file" #define E_TERMCAP "/etc/termcap" #define B_CSH "/bin/csh" ÿÿÿÿ¾ ¾ ÿÿÿÿ¾ ¾ ÿ öüÿoùöùöPˆPš÷š÷PˆP¦÷¦÷usr/include/local/sspare.h100644 0 2 1212 3425136000 11051 usr/include/local/layout.h100644 0 2 2307 3425136000 11077 /* * @(#)sspare.h 1.1 2/2/84 * Sector sparing information. * Bad sectors are mapped to another sector in a reserved * area of the disk. */ struct mapsec { int bad_cyl; /* Cylinder number of bad sector */ char bad_hed; /* Head number of bad sector */ char bad_sec; /* Sector number of bad sector */ int bad_good; /* Offset into mapping area of good sector */ }; #define BADMAP 4 /* Location in cylinder zero sector mapping */ #define MAXBAD (12*8*2) /* Maximum number of bad sectors on disk */ /* * @(#)layout.h 1.1 2/2/84 * This structure describes the layout information stored on the disk. * There are ten user definable areas on the disk. * * 0 Should always be the whole disk * 1 Is currently assumed to be the swap area. * 2 Is currently assumed to be the root file system. * And includes the whole rest of the disk. * 3-8 Currently unused (could be used for other file systems). * * If you would like to have more file systems, you should * make area 2 smaller (but still large e /* This is probably overly generous */ #define BADSIZ (MAXBAD * sizeof(struct mapsec)) /* Total size (in bytes) of sector map */ e disk. */ struct mapsec { int bad_cyl; /* Cylinder number of bad sector */ char bad_hed; /* Head number of bad sector */ char bad_sec; /* Sector number of bad sector */ int bad_good; /* Offset into mapping area of good sector */ }; #define BADMAP 4 /* Location in cylinder zero sector mapping */ #define MAXBAD (12*8*2) /* Maximum number of bad sectors on disk */ nough for the root fs). * Split the extra space in to the other file systems. * * The layout numbers correspond to minor device numbers. * Other minor device numbers are as follows. * 9 Extra sectors for bad sectors to be mapped into. * 10 Future expansion * 11 All of track0 * 12 Place where boot program is placed. * 13 Rest of cylinder zero, is used for fsck temporary file. * 14 Layout information. * 15 Sector to sector map (see sspare.h) */ #define LAYBLK 3 /* Layout info is kept in the 3 bl!  usr/include/sys/floppy.h.586100644 0 2 1640 3425136000 11137  interrupt service register */ #define IC59_RIRR 0x0a /* select read interrupt request register */ /* Interrupt Mask Bits */ #define A_SYC 0x01 /* system call interrupt */ #define A_TIM 0x02 /* clock timer */ #define A_HD0 0x04 /* hard disk controller interrupt 0 for 8089 */ #define A_HD1 0x08 /* hard disk controller interrupt 1 for 8089 */ /* #define A_HD (A_HD0 | A_HD1) */ #define A_HD 0x04 /* hard disk z80 interrupt */ #define A_CT 0x08 /* streaming tape z80  /* * @(#)floppy.h 1.1 2/2/84 * This information gets passed to the floppy format program from * the driver to tell it what sort of tracks to set up. */ struct fd_param { char fd_tpc; char fd_spt; unsigned int fd_bps; char fd_ncyl; char fd_step; int fd_trksiz; /* Bytes per track, for format */ } ; struct fd_layout { daddr_t fd_soff; daddr_t fd_ssize; int fd_type; } ; struct fmtrec { int fmt_track; int fmt_side; } ; struct fpbdef { /* floppy disk parameter block for z80 */ char cmninterrupt */ #define A_IOP 0x10 /* IO processor interrupt */ #define A_MB1 0x20 /* Multi-bus interrupt 1 */ #define A_MB2 0x40 /* Multi-bus interrupt 2 */ #define A_FLP 0x80 /* floppy interrupt for z80 board */ #define A_AUX 0x80 /* auxiliary serial channel interrupt */ /* Interrupt vector base values */ #define A_BASE 0x10 /* master: 10-17 */ roller interrupt 1 for 8089 */ /* #define A_HD (A_HD0 | A_HD1) */ #define A_HD 0x04 /* hard disk z80 interrupt */ #define A_CT 0x08 /* streaming tape z80 d2; /* command */ char stat2; /* status */ char drv2; /* drv */ char cyl2; /* cylinder */ char head2; /* head */ char sec2; /* sector */ caddr_t dmaoff2; /* dma start offset */ short dmaseg2; /* dma start segment */ unsigned count2; /* byte transfer count */ } ; #define FDIOTYP ((0 << 8) | 'f') #define FDIOSTRK ((1 << 8) | 'f') #define FDIOFMT ((2 << 8) | 'f') #define FDIODEV ((3 << 8) | 'f') rack; int fmt_side; } ; struct fpbdef { /* floppy disk parameter block for z80 */ char cmnusr/include/sys/iopmem.h.586100644 0 2 426 3425136000 11075 usr/include/sys/intr.h.586100644 0 2 2544 3425136000 10606 /* * @(#)iopmem.h 1.1 6/28/84 */ #define CEIOSTRT 1 /* start appropriate z80 */ #define CEIOCON 2 /* no-op */ #define CEISON 3 /* test if z80 executing */ #define CE186START 4 /* start 186 comm board */ #define OT struct opentab OT { short ot_procp; short ot_pid; }; * Interrupt vector base values */ #define A_BASE 0x10 /* master: 10-17 */ roller interrupt 1 for 8089 */ /* #define A_HD (A_HD0 | A_HD1) */ #define A_HD 0x04 /* hard disk z80 interrupt */ #define A_CT 0x08 /* streamiPˆP¦÷¦÷/* * @(#)intr.h 1.1 2/1/84 * definitions for interrupt control system on the * ALTOS 586 */ /* 8259 Programmable Interrupt Controller ports */ #define IC_59A0 0x82 /* master 8259 a0=0 */ #define IC_59A1 0x80 /* a0=1 */ /* OCW's for master 8259 (operation command words...) */ /* OCW2 commands */ #define IC59_EOI 0x60 /* specific eoi */ #define IC59_NSEOI 0x20 /* non-specific eoi */ /* OCW3 commands */ #define IC59_RISR 0x0b /* select read!  usr/include/sys/mmu.h.586100644 0 2 15041 3425136000 10444  logical page */ /* * Segment I/O Ports * * The MMU consists of 256 4K pages, each of which has its own * mode and address registers. The mode field describes access * permissions, there is no way to 'shorten' a 4k page. * * XENIX divides the 1 megabyte logical address space into various * parts. The first two 64K seqments first map describe the kernal, * the next 5 segments describe the user task. The other segments are * reserved for use by the kernel. * * l/* * @(#)mmu.h 1.4 5/2/84 * mmu.h - Memory Management * - used by mmu.c * - supports scatter-loading of individual processes */ extern short mm_nfree; /* number of free pages */ extern short mm_free; /* first free page */ extern short mm_pages[]; /* page list */ extern short mm_size; /* # mem pages, initialized to NCOREL */ /* * Bit masks for the contents of mm_pages */ #define MM_NUMBER 0x3FFF /* normally, next page in linked list */ #define MM_STMASK 0xCogical addr use * 0xxxx system D-space * 1xxxx to 4xxxx system I-space * 5xxxx user D-space * 6xxxx to 9xxxx user I-space * * Axxxx to Cxxxx Reserved for user space expansion * * Dxxxx reserved for `copyseg' * DFxxx reserved for comm board download DMA * Exxxx reserved for DMA channel 1 * Fxxxx to FBxxx reserved for DMA channel 2 * FCxxx to FFFFF 000 /* status bits */ /* * status values -- It is important the MM_FREE not be 0, * so mm_pages is automatically loaded with all pages busy. */ #define MM_LINK 0x0000 /* general in-use */ #define MM_FREE 0x8000 /* on free list */ #define MM_END 0x4000 /* end of list. MM_NUMBER holds index into proc array of proc structures */ #define MM_TEXTEND 0xC000 /* end of text. MM_NUMBER holds index into text array of text structures */ /* * If the MM_FREE bit is set, then (mm_pages[i] &  unavailable (used by monitor prom) */ #define SEGSD 0x0000 /* system data segment */ #define SEGSI 0x1000 /* first system instruction segment */ #define SEGUD 0x5000 /* user data segment */ #define SEGUI 0x6000 /* first user instruction segment */ #define SEGUX 0x9000 /* first user extra data segment */ #define SEGCF 0xD000 /* segment for 'copyseg' 'from' */ #define SEGCT 0xD100 /* segment for 'copyseg' 'to' */ #define SEGDL 0xDF00 /* segment for comm board download DMA */ #define SEGD1 0xMM_NUMBER) yields * the page number of the next page on the core free list. * The core free list is null-terminated. * * If the MM_LINK bit is set, then (mm_pages[i] & MM_NUMBER) is * used as part of a linked list of the pages allocated to * a particular process. (Pages used by the kernel are marked * MM_LINK | 0.) * * The conventions for the use of the MM_NUMBER field of each page * marked with MM_END or MM_TEXTEND may be changed. The intention * here is to be able to trace any page back to thE000 /* segment for DMA channel 1 */ #define SEGD2 0xF000 /* segment for DMA channel 2 */ /* I/O ports */ #define PAGESD 0x200 /* first system data map register */ #define PAGEUT1 0x21a /* first system work map register */ #define PAGEUT2 0x21c /* last system work map register */ #define PAGEUU 0x21e /* system u_ map register */ #define PAGESI 0x220 /* first system instruction map reg. */ #define PAGEUD 0x2a0 /* first user data map register e process or * text structure which "owns" it. */ #define NPNUMB 1 /* number of address spaces (program numbers) */ #define NPSEGM 0 /* no segments */ #define MMPAGE 1 /* Page (Central Data) type mmu */ #define NDPAGE 16 /* 16 4K pages per D space */ #define NIPAGE 48 /* 48 4K pages maximum per I space */ #define NXPAGE 48 /* 48 4K pages maximum per extra data space */ #define MAXKPAGE 0x001F /* mask for largest kernal logical page */ #define MAXPAGE 0x00FB /* mask for largest"  */ #define PAGEUI 0x2c0 /* first user instruction map register */ #define PAGEUX 0x320 /* first user extra data map register */ #define PAGECF 0x3a0 /* copyseg 'from' register */ #define PAGECT 0x3a2 /* copyseg 'to' register */ #define PAGEDL 0x3be /* comm board download DMA register */ #define PAGED1 0x3c0 /* first DMA channel 1 register */ #define PAGED2 0x3e0 /* first DMA channel 2 register */ #define PGLAST 0x3f6 /* very last usable map registeret() & mmupget() error return */ /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO 0 /* tells mmuset to setup code to make */ #define RW 0 /* kernal access read-only, or read/write. */ /* not needed for altos mmu */ #define MMUERR ((mloc_t) -1) /* mmug */ #define pgadr(x) (x&0xff) /* extract address information */ #define pgmod(x) (x&0xff00) /* extract mode information */ /* mode register bit definitions */ #define MM_SR 0x0400 /* system read access */ #define MM_ER 0x0400 /* expansion processor read access */ #define MM_UR 0x4000 /* user read access */ #define MM_SW 0x1800 /* system write access */ #define MM_EW 0x0800 /* expansion processor write access */ #deusr/include/sys/param.h.586100644 0 2 12616 3425136000 10753 fine MM_UW 0x8000 /* user write access */ #define MM_STK 0x2000 /* stack segment (warning interrupts) */ #define MM_CHG 0x0200 /* page was modified */ /*** MMU/protection TRAP register bits */ #define MT_IOE 0x0001 /* invalid op error */ #define MT_FME 0x0006 /* fatal memory error */ #define MT_STE 0x0008 /* stack warning error */ #define MT_SWE 0x0010 /* * @(#)param.h 1.10 11/2/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Adjustable parameters */ #define SSIZE 1024 /* initial stack size (bytes) */ #define SINCR 1024 /* increment of stack (bytes) */ #define NOFILE 50 /* max open files per process */ #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 20 /* Ticks/second of the clock */ #define MSGBUFS 12 /* system write error */ #define MT_PWE 0x0020 /* external processor write err */ #define MT_UWE 0x0080 /* user write error */ #define MT_BTE 0x0100 /* buss timeout error */ #define MT_UAE 0x0800 /* user access error */ #define MT_NMI 0x8000 /* NMI switch interrupt */ #define MT_PANIC (MT_SWE|MT_PWE|MT_BTE) /* fatal hardware/software errors */ #define PAGESIZ 0x1000 /* size in bytes of one page */ #defi8 /* Characters saved from error messages */ #define NCARGS 5120 /* # characters in exec arglist */ #define MAXTTYS 16 /* Max # open ttys */ #define NIOSTAT 50 /* max number of bufs to keep stats for */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ /* CDLIMIT is ridiculously large because of CDC's sparse file applications */ /* ((1L<<21) - 1L) is the largest u_limit value that won't overflow in sys2.c */ #define CDLIMIT ((1L<<21)ne OFFMASK 0x0FFF /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO 0 /* tells mmuset to setup code to make */ #define RW 0 /* kernal access read-only, or read/write. */ /* not needed for altos mmu */ #define MMUERR ((mloc_t) -1) /* mmug"   - 1L) /* default max write address */ #define NSDSEGS 5 /* number of shared data segs/proc */ #define LIMHOST 30 /* limit of hosts on network AMG (32 max) */ #ifndef NSIG /* Also look in signal.h */ #define NSIG 32 /* Maximum number of signals */ #endif /* * priorities * probably should not be * altered too much */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWIND 27 #define PWAIT 30 #define PSLEP 40 #define PUSER 50 ress */ #define atos(x) ((int)( (x) & 0x0000FFFF)) /* long address to short address (get low 16 bits of long address */ #define atoh(x) ((int)( (x) >> 16)) /* mem size to long address */ #define mstol(x) ((long)((int)(x)&(MMPGSZ-1))< SM on On-Board USART */ #define USERMODE(ps) ((ps)&PS_USER) #define CLKONLY(ps) (((ps)&PS_PRIMASK)==(SPL0MASK<<8)) #define USIZE 1 /* size of use block is 1 page */ #define UBASE 0xf000 /* abs. addr of user block is top page */ #define DATASTART(ts,sep) (caddr_t)0 /* block */ #define LINOPB 3 /* LOG2(INOPB) */ #define NULL 0 #define NODEV (dev_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* block number of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define NICFREE 50 /* number of superblock free blocks */ #define NSBFILL 58 /* VERY MAGIC - aligns s_magic & s_type at end of SB blk */ /* * MMU parameters. */ #define MMPGSZ 4096 /* byte start of user data */ #define STACKSTART(ss) (0-mstob(ss)) /* start of user stack */ #define USRSTACK (caddr_t)0 /* base address of user stack */ #define URSBC 14 /* User stk Reg Save area Byte Cnt */ #define SHWDSZ (sizeof(int)+6) /* space on user stack for shell word */ /* * 8086 simulated "state" definitions. */ #define PS_USER 0x01 /* "user" mode */ #define PS_SYS 0xFE /* for mch.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* current spl priority (PIC mask) */ /* Conditional coms/page in the MMU */ #define LMMPGSZ 12 /* log2(MMPGSZ) */ /* * Some macros for units conversion */ /* mem size to disk blocks */ #define mstod(x) ((x)*(MMPGSZ/BSIZE)) /* inumber to disk address */ #define itod(x) (daddr_t)(((unsigned)(x)+(INOPB+INOPB-1))>>LINOPB) /* inumber to disk offset */ #define itoo(x) (int)(((x)+(INOPB+INOPB-1))&(INOPB-1)) /* mem size to bytes */ #define mstob(x) ((x)<>LMMPGSZ) /* bytes to mem sipilation */ #define PAGEMMU /* mmu is divided in pages */ #define SHORTINT /* sizeof(int)==sizeof(short) */ /*#define BYTESWAP*/ /* byte ordering is opposite that of pdp11 /*#define OLDFORK*/ /* return to parent by bumping pc by 2 */ /*#define FIXEDSTACK*/ /* stack cannot grow */ #define BUFMAPOUT /* buffers are mapped out */ #define LARGECODE /* kernel supports multisegment code */ h.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* current spl priority (PIC mask) */ /* Conditional comze (truncated)*/ #define btomst(x) (((unsigned)(x))>>LMMPGSZ) /* bytes to page number */ #define btopn(x) (((unsigned)(x))>>LMMPGSZ) /* address (long (32 bit)) to page number (int)*/ #define atopn(x) ((int)(((long)(x))>>LMMPGSZ)) /* address (long (32 bit)) to page count (int)*/ #define atop(x) ((int)(((long)(x)+(MMPGSZ-1))>>LMMPGSZ)) /* address (long (32 bit)) to offset (int) get bits LMMPGSZ-1 - 0 */ #define atoo(x) ((int)((x)&(MMPGSZ-1))) /* long address to short address (get low 16 bits of long add#  usr/include/sys/sc.h.586100644 0 2 10404 3425136000 10251  /* six bits/char */ #define BITS7 0x10 /* seven bits/char */ #define BITS8 0x30 /* eight bits/char */ #define FDUP 0x00 /* full duplex */ #define RECBRK 0x40 /* break received */ #define MRECV 0x80 /* multiple character receive */ /* CHANNEL PARAMETER 1 */ #define BAUD 0x0F /* mask for baud rate field */ #define CTS 0x40 /* clear to send */ #define DSR 0x80 /* data set ready */ /* CHANNEL STATUS 0 */ #define XEMPTY 0x01 /* xmitter empty */ #define DTR 0x02 /* data xmit ready */ #define BRK 0x0/* * @(#)sc.h 1.3 10/12/84 * intelligent serial board device structure */ #define CONSOLE 0 /* minor device # for console */ #define FASTCHAN 4 /* minor device # for fast input channel */ #define RBSIZE 32 /* receive buffer size -- must be power of 2 */ #define FASTBSIZE 2048 /* receive buffer size for fast input channel */ #define NSC 12 /* does not yet handle more than one controller */ #define NSCCONT (NSC/6) struct device { char scver; char sccmnd; char scstat; char scivec0, scivec1; char scdum4 /* break in progress */ #define RTS 0x08 /* request to send, also used as carrier det */ #define PERRSC 0x10 /* parity error */ #define OVERRSC 0x20 /* receiver overrun */ #define FERROR 0x40 /* framing error */ /* CHANNEL STATUS 1 */ #define RAVAIL 0x01 /* receive character avail in tty reg */ #define R0FULL 0x01 /* receive buffer 0 full */ #define R1FULL 0x02 /* receive buffer 1 full */ #define XREADY 0x10 /* xmitter ready */ #define RBREAK 0x20 /* break received */ /* CHANNEL COMMAND */ #demy; struct schan { char chparm0, chparm1; char chstat0, chstat1; char chcmnd; char chxadl, chxadm, chxadh; /* high byte not used */ char chxlenl, chxlenh; char chradl, chradm, chradh; /* high byte not used */ char chrlen, chrlenh; char chrin, chrinh; char chrout, chrouth; char chratel, chrateh; char chinited; } scchan[6]; char fdcmnd; char fdstat; char * fdrbufp; char fdrbufh; char fdrblen; char fdrbin; char fdrbout; unsigned fddummy; struct fchan { char chstat; char chtfine CHBUSY 0x80 /* channel command reg busy (or'ed in) */ #define XINTEN 0x40 /* xmit interrupt enable (or'ed in) */ #define RINTEN 0x20 /* receive interrupt enable (or'ed in) */ #define MINTEN 0x10 /* modem interrupt enable (or'ed in) */ #define CHCMASK (0x0F | CHBUSY) /* channel command mask */ #define NOP (0 | CHBUSY) /* channel nop comand */ #define CHINIT (1 | CHBUSY) /* channel initialize */ #define XMIT (2 | CHBUSY) /* start xmit operation */ #define RCVACK (3 | CHBUSY) /* acknowledge receiver *pc; /* tracks per cylinder */ char chbpsl, chbpsh; /* bytes per sector */ char chstep; /* head step time (ms) */ char unused; /* for word alignment */ char chdens[10]; /* FM/-MFM bit map */ long chwatt; /* number of write attempts */ long chwcmp; /* number of writes complete */ long chratt; /* number of read attempts */ long chrcmp; /* number of reads complete */ } fdchan[2]; char rtccmd; /* real time clock command byte */ char rtcsec; char rtcmin; char rtchour; char / #define XABORT (4 | CHBUSY) /* abort xmit operation */ #define RABORT (5 | CHBUSY) /* abort receive operation */ #define SNDBRK (6 | CHBUSY) /* send break operation */ #define RXMIT (7 | CHBUSY) /* resume xmit operation */ #define CHPARM (8 | CHBUSY) /* change parameter */ #define RESERR (9 | CHBUSY) /* reset error */ #define RESMOD (10 | CHBUSY) /* reset modem interrupt */ #define RMULTI (11 | CHBUSY) /* run over multibus */ #define PTRINVL 0x80 /* set in high byte of chrin if ptr invalid */ #define Grtcday; char rtcdate; char rtcmon; char rtcyear; } ; #define SCVER(cont) (cont.scver >> 3) #define CNBUSY 0x80 #define DISABLE ( 0 | CNBUSY) #define ENABLE ( 1 | CNBUSY) #define INTDIS ( 2 | CNBUSY) #define INTEN ( 3 | CNBUSY) #define RESINT ( 4 | CNBUSY) /* CHANNEL PARAMETER 0 */ #define PENABLE 0x01 /* parity enable */ #define EVENPAR 0x02 /* even parity */ #define ONESTOP 0x04 /* one stop bit */ #define TWOSTOP 0x0C /* two stop bits */ #define BITS5 0x00 /* five bits/char */ #define BITS6 0x20#  ETTIME (1 | CHBUSY) /* get real time clock info */ #define SETTIME (2 | CHBUSY) /* set real time clock info */ extern unsigned int CBtype; /* not 0 if comm board present */ #define CB186 1 /* 186 comm board type */ #define CBZ80 2 /* Z80 comm board type */ ge parameter */ #define RESERR (9 | CHBUSY) /* reset error */ #define RESMOD (10 | CHBUSY) /* reset modem interrupt */ #define RMULTI (11 | CHBUSY) /* run over multibus */ #define PTRINVL 0x80 /* set in high byte of chrin if ptr invalid */ #define Gusr/include/sys/ctioctl.h.586T100644 0 2 326 3425136000 11373 usr/include/sys/space.h.586100644 0 2 2553 3425136000 10725 #define CTIOC ('M'<<8) #define CTMEDIA (CTIOC|1) #define CTRETENT (CTIOC|2) #define CTERASE (CTIOC|3) #define CTWRTFMK (CTIOC|4) #define CTREDFMK (CTIOC|5) #define CTRDSTAT (CTIOC|6) #define CTREWIND (CTIOC|7) EXT, &text[NTEXT], NCLIST, MAXUPRC, NFLOCKS, NHBUF, NHBUF-1, }; /* here because they're initialized */ short mm_free = 0; short mm_nfree = 0; MAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mount[NMOPˆP¦÷¦÷/* * @(#)space.h 1.3 4/3/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Copyright (C) Microsoft Corporation, 1982 */ #include "buf.h" #include "tty.h" #include "proc.h" #include "text.h" #include "dir.h" #include "a.out.h" #include "user.h" #include "file.h" #include "inode.h" #include "map.h" #include "callo.h" #include "mount.h" #include "var.h" #include "syusr/include/sys/fdioctl.h.586T100644 0 2 174 3425136000 11357 sinfo.h" #include "locking.h" int Timezone=TIMEZONE; int Dstflag=DSTFLAG; int Cmask=CMASK; struct buf buf[NBUF+NSABUF]; char sabuf[NSABUF][BSIZE+BSLOP]; struct hbuf hbuf[NHBUF]; /* buffer hash table */ struct file file[NFILE]; struct inode inode[NINODE]; struct locklist locklist[NFLOCKS]; struct proc proc[NPROC]; struct text text[NTEXT]; struct map swapmap[SMAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mount[NMOUNT]; struct#define MCRDY (('m' << 8) | 0) #define MCCHG (('m' << 8) | 1) #define MCFMT (('m' << 8) | 2) #define MCMTR (('m' << 8) | 3) TIOC|4) #define CTREDFMK (CTIOC|5) #define CTRDSTAT (CTIOC|6) #define CTREWIND (CTIOC|7) EXT, &text[NTEXT], NCLIST, MAXUPRC, NFLOCKS, NHBUF, NHBUF-1, }; /* here because they're initialized */ short mm_free = 0; short mm_nfree = 0; MAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mount[NMOPˆP¦÷¦÷ sysinfo sysinfo; struct syswait syswait; int Hz=HZ; int Maxmem=MAXMEM; struct var v= { NBUF, NSABUF, NCALL, NINODE, &inode[NINODE], NFILE, &file[NFILE], NMOUNT, &mount[NMOUNT], NPROC, &proc[NPROC], NTEXT, &text[NTEXT], NCLIST, MAXUPRC, NFLOCKS, NHBUF, NHBUF-1, }; /* here because they're initialized */ short mm_free = 0; short mm_nfree = 0; MAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mount[NMOUNT]; struct$  usr/include/sys/mmu.h.586T100644 0 2 16345 3425136000 10600  page */ #define MAXPAGE 0x00FB /* mask for largest logical page */ /* * Segment I/O Ports * * The MMU consists of 256 4K pages, each of which has its own * mode and address registers. The mode field describes access * permissions, there is no way to 'shorten' a 4k page. * * XENIX divides the 1 megabyte logical address space into various * parts. The first two 64K seqments first map describe the kernal, * the next 5 segments describe the user task. The other /* * @(#)mmu.h 1.1 10/29/84 *mmu.h for the 586T/986T *from 586 @(#)mmu.h 1.4 5/2/84 * mmu.h - Memory Management * - used by mmu.c * - supports scatter-loading of individual processes */ extern short mm_nfree; /* number of free pages */ extern short mm_free; /* first free page */ extern short mm_pages[]; /* page list */ extern short mm_size; /* # mem pages, initialized to NCOREL */ /* * Bit masks for the contents of mm_pages */ #define MM_NUMBER 0x3FFF /*segments are * reserved for use by the kernel. * * logical addr use * 0xxxx system D-space * 1xxxx to 3xxxx system I-space * 5xxxx user D-space * 6xxxx to 9xxxx user I-space * * Axxxx to Cxxxx Reserved for user space expansion * * Dxxxx reserved for `copyseg' * DFxxx reserved for comm board download DMA * 4xxxx reserved for SEGHD0, SEGHD1, SEGHD2 use * Exxxx res normally, next page in linked list */ #define MM_STMASK 0xC000 /* status bits */ /* * status values -- It is important the MM_FREE not be 0, * so mm_pages is automatically loaded with all pages busy. */ #define MM_LINK 0x0000 /* general in-use */ #define MM_FREE 0x8000 /* on free list */ #define MM_END 0x4000 /* end of list. MM_NUMBER holds index into proc array of proc structures */ #define MM_TEXTEND 0xC000 /* end of text. MM_NUMBER holds index into text array of text structurerved for SEGHD3, SEGHD4, SEGHD5 use * Fxxxx to FBxxx reserved for SEGFD, SEGST use * FCxxx to FFFFF unavailable (used by monitor prom) */ #define SEGSD 0x0000 /* system data segment */ #define SEGSI 0x1000 /* first system instruction segment */ #define SEGUD 0x5000 /* user data segment */ #define SEGUI 0x6000 /* first user instruction segment */ #define SEGUX 0x9000 /* first user extra data segment */ #define SEGCF 0xD000 /* segment for 'copyseg' 'from' */ #defies */ /* * If the MM_FREE bit is set, then (mm_pages[i] & MM_NUMBER) yields * the page number of the next page on the core free list. * The core free list is null-terminated. * * If the MM_LINK bit is set, then (mm_pages[i] & MM_NUMBER) is * used as part of a linked list of the pages allocated to * a particular process. (Pages used by the kernel are marked * MM_LINK | 0.) * * The conventions for the use of the MM_NUMBER field of each page * marked with MM_END or MM_TEXTEND may be changed. The ne SEGCT 0xD100 /* segment for 'copyseg' 'to' */ #define SEGDL 0xDF00 /* segment for comm board download DMA */ /* each hard disk segment uses 20k */ #define SEGHD3 0x4000 /* segment for hard disk pb 0 */ #define SEGHD1 0x4500 /* segment for hard disk pb 1 */ #define SEGHD2 0x4a00 /* segment for hard disk pb 2 */ /* have 4k left unused in 4f00 */ #define SEGHD0 0xE000 /* segment for hard disk pb 3 */ #define SEGHD4 0xE500 /* segment for hard disk pb 4 */ #define SEGHD5 0xEA00 /* segment fointention * here is to be able to trace any page back to the process or * text structure which "owns" it. */ #define NPNUMB 1 /* number of address spaces (program numbers) */ #define NPSEGM 0 /* no segments */ #define MMPAGE 1 /* Page (Central Data) type mmu */ #define NDPAGE 16 /* 16 4K pages per D space */ #define NIPAGE 48 /* 48 4K pages maximum per I space */ #define NXPAGE 48 /* 48 4K pages maximum per extra data space */ #define MAXKPAGE 0x001F /* mask for largest kernal logical$  r hard disk pb 5 */ /* have 4k left unused in ef00 */ #define SEGFD 0xF000 /* segment for floppy disk (8k) */ #define SEGST 0xF200 /* segment for streaming tape (40k) */ #define SEGD1 0xE000 /* segment for DMA channel 1 */ #define SEGD2 0xF000 /* segment for DMA channel 2 */ /* I/O ports */ #define PAGESD 0x200 /* first system data map register */ #define PAGEUT1 0x21a /* first system work map register */ #define PAGEUT2 0x21c /* last system work map register */ #defin MT_NMI 0x8000 /* NMI switch interrupt */ #define MT_PANIC (MT_SWE|MT_PWE|MT_BTE) /* fatal hardware/software errors */ #define PAGESIZ 0x1000 /* size in bytes of one page */ #define OFFMASK 0x0FFF /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO 0 e PAGEUU 0x21e /* system u_ map register */ #define PAGESI 0x220 /* first system instruction map reg. */ #define PAGEUD 0x2a0 /* first user data map register */ #define PAGEUI 0x2c0 /* first user instruction map register */ #define PAGEUX 0x320 /* first user extra data map register */ #define PAGECF 0x3a0 /* copyseg 'from' register */ #define PAGECT 0x3a2 /* copyseg 'to' register */ #define PAGEDL 0x3be /* comm board download DMA register */ # /* tells mmuset to setup code to make */ #define RW 0 /* kernal access read-only, or read/write. */ /* not needed for altos mmu */ #define MMUERR ((mloc_t) -1) /* mmuget() & mmupget() error return */ /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO 0 define PAGED1 0x3c0 /* first DMA channel 1 register */ #define PAGED2 0x3e0 /* first DMA channel 2 register */ #define PGLAST 0x3f6 /* very last usable map register */ #define pgadr(x) (x&0xff) /* extract address information */ #define pgmod(x) (x&0xff00) /* extract mode information */ /* mode register bit definitions */ #define MM_SR 0x0400 /* system read access */ #define MM_ER 0x0400 /* expansion processor read access */ #define MM_UR usr/include/sys/floppy.h.586T100644 0 2 1640 3425136000 16417 1usr/include/sys/floppy.h.586 0x4000 /* user read access */ #define MM_SW 0x1800 /* system write access */ #define MM_EW 0x0800 /* expansion processor write access */ #define MM_UW 0x8000 /* user write access */ #define MM_STK 0x2000 /* stack segment (warning interrupts) */ #define MM_CHG 0x0200 /* page was modified */ /*** MMU/protection TRAP register bits */ #define MT_IOE 0x0001 usr/include/sys/intr.h.586T100644 0 2 2544 3425136000 15531 1usr/include/sys/intr.h.586 /* invalid op error */ #define MT_FME 0x0006 /* fatal memory error */ #define MT_STE 0x0008 /* stack warning error */ #define MT_SWE 0x0010 /* system write error */ #define MT_PWE 0x0020 /* external processor write err */ #define MT_UWE 0x0080 /* user write error */ #define MT_BTE 0x0100 /* buss timeout error */ #define MT_UAE 0x0800 /* user access error */ #define%  usr/include/sys/iopmem.h.586T100644 0 2 426 3425136000 16332 1usr/include/sys/iopmem.h.586/* * @(#)crtioctl.h 1.2 4/16/84 */ #define CRTCLR (('c'<<8)|0) #define CRTCPY (('c'<<8)|1) union crt { int crt_pat; struct crtcpy { int crt_first; int crt_last; } crt_cpy; }; -1) /* mmuget() & mmupget() error return */ /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO PˆP¦÷¦÷usr/include/sys/param.h.586T100644 0 2 12616 3425136000 16022 1usr/include/sys/param.h.586usr/include/sys/intr.h.186100644 0 2 3061 3425136000 10575 usr/include/sys/sc.h.586T100644 0 2 10404 3425136000 14625 1usr/include/sys/sc.h.586/* * @(#)intr.h 1.2 12/5/84 * definitions for interrupt control system on the * ALTOS 186 and ALTOS 486 */ #include "../h/baseport.h" /* 8259 Programmable Interrupt Controller ports */ #define IC_59A0 (EXBPRT + 0x2c0) /* master 8259 a0=0 */ #define IC_59A1 (EXBPRT + 0x2c2) /* a0=1 */ /* OCW's for master 8259 (operation command words...) */ /* OCW2 commands */ #define IC59_EOI 0x60 /* specific eoi */ #define IC59_NSEOI 0x20 /* non-specific eoi */ /* OCW3 commusr/include/sys/space.h.586T100644 0 2 2553 3425136000 15767 1usr/include/sys/space.h.586ands */ #define IC59_RISR 0x0b /* select read interrupt service register */ #define IC59_RIRR 0x0a /* select read interrupt request register */ /* Interrupt Mask Bits */ #ifdef ACS186 #define I_SYC 0x01 /* system call interrupt */ #define I_CRT 0x02 /* CRT */ #define I_8274B 0x04 /* 8274 serial port B - keybd, AltosNet */ #define I_IO 0x08 /* I/O slot - hard disk, etc. */ #define I_INT 0x10 /* internal interrupts */ #define I_8274A 0x20 /* 8274 serial port A - 2 RS232 channels*/usr/include/sys/crtioctl.h.186100644 0 2 271 3425136000 11424 %   #define I_ETH 0x40 /* ethernet */ #define I_CLOCK 0x80 /* mouse */ #else #define I_SYC 0x01 /* system call interrupt */ #define I_NC1 0x02 /* not connected */ #define I_8274B 0x04 /* 8274 serial port B -- AltosNet */ #define I_IO 0x08 /* I/O slot - hard disk, etc. */ #define I_INT 0x10 /* internal interrupts */ #define I_NC2 0x20 /* not connected */ #define I_Z80 0x40 /* serial concentrator */ #define I_CLOCK 0x80 /* clock */ #endif /* Interrupt vector base values  TIOXESCO (tIOC|21) #define TIOXESCC (tIOC|22) #define SETMODEM (tIOC|23) #define TIOCGPGRP (('t'<<8)|119) /* get pgrp of tty */ #define TIOCSPGRP (('t'<<8)|118) /* set pgrp of tty */ #define LIOC ('l'<<8) #define LIOCGETP (LIOC|1) #define LIOCSETP (LIOC|2) #define LIOCGETS (LIOC|5) #define LIOCSETS (LIOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) */ #define I_BASE 0x18 /* vectors are 24-31 */ e I_CLOCK 0x80 /* mouse */ #else #define I_SYC 0x01 /* system call interrupt */ #define I_NC1 0x02 /* not connected */ #define I_8274B 0x04 /* 8274 serial port B -- AltosNet */ #define I_IO 0x08 /* I/O slot - hard disk, etc. */ #define I_INT 0x10 /* internal interrupts */ #define I_NC2 0x20 /* not connected */ #define I_Z80 0x40 /* serial concentrator */ #define I_CLOCK 0x80 /* clock */ #endif /* Interrupt vector base values  /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERRS (VPM|9) #define VPMRPT (VPM|10) #define VPMTRCO (VPM|16) #define FIOCLEX (('f'<<8)|1) /* V7 */ #define FIONCLEX (('f'<<8)|2) /* V7 */ #define FIORDCHK (('f'<<8)|3) /* V7 */ /* window ioctls */ #define WIOCMAKE (('w'<<8)|0) /* make a window */ #define WIOCINIT (('w'<<8)|1) /* initialize window */ #define WIOCDRAW (('w'<<8)|2) /* draw window */ #define WIOCERAS (('w'<<8)|3) /usr/include/sys/ioctl.h.186100644 0 2 5474 3425136000 10745 * erase window */ #define WIOCGETD (('w'<<8)|4) /* get window data */ #define WIOCSETD (('w'<<8)|5) /* set window data */ #define WIOCLFNT (('w'<<8)|6) /* load window font */ #define WIOCSFNT (('w'<<8)|7) /* set window font */ #define WIOCCFNT (('w'<<8)|8) /* clear window font */ #define WIOCGFNT (('w'<<8)|9) /* get window font data */ #define WIOCRDMS (('w'<<8)|10) /* read window mouse */ #define WIOCGRSD (('w'<<8)|11) /* get raster-display data */ #define WIOCSTAT (('w'<<8)|12) /* get window stat/* * @(#)ioctl.h 1.4 12/20/84 */ #define IOCTYPE 0xff00 #define TIOC ('T'<<8) #define TCGETA (TIOC|1) #define TCSETA (TIOC|2) #define TCSETAW (TIOC|3) #define TCSETAF (TIOC|4) #define TCSBRK (TIOC|5) #define TCXONC (TIOC|6) #define TCFLSH (TIOC|7) #define TCDSET (TIOC|32) #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define tIOC ('t'<<8) #define TIOCGETD (tIOC|0) /* V7 */ #define TIOCSETD (tIOC|1) /* V7 us flags */ #define WIOCLABL (('w'<<8)|13) /* set user window label */ #define WIOCRACD (('w'<<8)|14) /* get window row/column data */ #define WIOCSKBD (('w'<<8)|15) /* set keyboard window */ #define WIOCSRSD (('w'<<8)|16) /* set raster-display uflags */ #define WIOCGRUP (('w'<<8)|17) /* update window graphics */ ) /* get window font data */ #define WIOCRDMS (('w'<<8)|10) /* read window mouse */ #define WIOCGRSD (('w'<<8)|11) /* get raster-display data */ #define WIOCSTAT (('w'<<8)|12) /* get window stat*/ #define TIOCHPCL (tIOC|2) /* V7 */ #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) #define TIOCSETN (tIOC|10) /* V7 */ #define TIOCEXCL (tIOC|13) /* V7 */ #define TIOCNXCL (tIOC|14) /* V7 */ #define TIOCFLUSH (tIOC|16) /* V7 */ #define TIOCSETC (tIOC|17) /* V7 */ #define TIOCGETC (tIOC|18) /* V7 */ #define TIOCBRK (tIOC|20) /* V7 */ #define&  usr/include/sys/mmu.h.186100644 0 2 15601 3425136000 10442 f /* mask for largest logical page */ /* * Segment I/O Ports * * The MMU consists of 256 4K pages, each of which has its own * mode and address registers. The mode field describes access * permissions, there is no way to 'shorten' a 4k page. * * XENIX divides the 1 megabyte logical address space into various * parts. The first two 64K seqments first map describe the kernal, * the next 5 segments describe the user task. The other segments are * reserved for us/* * @(#)mmu.h 1.3 6/18/84 * mmu.h - Memory Management * - used by mmu.c * - supports scatter-loading of individual processes */ #include "../h/baseport.h" extern short mm_nfree; /* number of free pages */ extern short mm_free; /* first free page */ extern short mm_pages[]; /* page list */ extern short mm_size; /* # mem pages, initialized to NCOREL */ /* * Bit masks for the contents of mm_pages */ #define MM_NUMBER 0x3FFF /* normally, next page in linked e by the kernel. * * logical addr use * 0xxxx system D-space * 1xxxx to 3xxxx system I-space * 5xxxx user D-space * 6xxxx to 9xxxx user I-space * * Axxxx to Bxxxx Reserved for user space expansion * * Cxxxx reserved for graphics memory * Dxxxx reserved for graphics memory copy * Exxxx reserved for DMA channel 1 * E8xxx reserved for DMA channel 2 * Fxxxx reselist */ #define MM_STMASK 0xC000 /* status bits */ /* * status values -- It is important the MM_FREE not be 0, * so mm_pages is automatically loaded with all pages busy. */ #define MM_LINK 0x0000 /* general in-use */ #define MM_FREE 0x8000 /* on free list */ #define MM_END 0x4000 /* end of list. MM_NUMBER holds index into proc array of proc structures */ #define MM_TEXTEND 0xC000 /* end of text. MM_NUMBER holds index into text array of text structures */ /* * If the MM_FREE bitrved for character and pointer memory, * copyseg, and monitor */ #define SEGSD 0x0000 /* system data segment */ #define SEGSI 0x1000 /* first system instruction segment */ #define SEGNT 0x3000 /* TEMP segment for network */ #define SEGAS 0x3800 /* segment for save ascii buffers */ #define SEGIP 0x4000 /* segment for iopmem */ #define SEGUD 0x5000 /* user data segment */ #define SEGUI 0x6000 /* first user instruction segment */ #define SEGUX 0x9000 /* first user extra data segment */  is set, then (mm_pages[i] & MM_NUMBER) yields * the page number of the next page on the core free list. * The core free list is null-terminated. * * If the MM_LINK bit is set, then (mm_pages[i] & MM_NUMBER) is * used as part of a linked list of the pages allocated to * a particular process. (Pages used by the kernel are marked * MM_LINK | 0.) * * The conventions for the use of the MM_NUMBER field of each page * marked with MM_END or MM_TEXTEND may be changed. The intention * here is to be able#define SEGGR 0xC000 /* segment for graphics memory */ #define SEGGC 0xD000 /* segment for copy of graphics memory */ #define SEGD1 0xE000 /* segment for DMA channel 1 */ #define SEGD2 0xE800 /* segment for DMA channel 2 */ #define SEGBG 0xEF00 /* segment for copy of background color */ #define SEGCF 0xF000 /* segment for 'copyseg' 'from' */ #define SEGCT 0xF100 /* segment for 'copyseg' 'to' */ #define SEGCH 0xF200 /* segment for character memory */ #define SEGPM 0xF400 /* segment for pointer to trace any page back to the process or * text structure which "owns" it. */ #define NPNUMB 1 /* number of address spaces (program numbers) */ #define NPSEGM 0 /* no segments */ #define MMPAGE 1 /* Page (Central Data) type mmu */ #define NDPAGE 16 /* 16 4K pages per D space */ #define NIPAGE 48 /* 48 4K pages maximum per I space */ #define NXPAGE 48 /* 48 4K pages maximum for extra data space */ #define MAXKPAGE 0x001F /* mask for largest kernal logical page */ #define MAXPAGE 0x00d&   memory */ #define SEGKB 0xF600 /* segment for copy of pointer memory */ #define SEGMN 0xF800 /* segment for monitor */ #define PSEGPTR 0xf000 /* PHYSICAL segment of pointer memory */ #define PSEGCHR 0xf200 /* PHYSICAL segment of character memory */ #define PSEGGRF 0xe000 /* PHYSICAL segment of graphics memory */ /* I/O ports */ #define MMPORT(x) (EXBPRT+((((x) >> 8) & 0xff) * 2)) #define PGFIRST (EXBPRT+0x000) /* first map register */ #define PAGESD MMPORT(SEGSD) /* first system data map rIWORD 0xFFFF0000 /* hi word of a long word */ #define LHISHIFT 16 /* hi word of a long word */ #define RO 0 /* tells mmuset to setup code to make */ #define RW 0 /* kernal access read-only, or read/write. */ /* not needed for altos mmu */ #define MMUERR ((mloc_t) -1) /* mmuget(), mmupget() error return */ /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LHegister */ #define PAGEUT1 (EXBPRT+0x01a) /* first system work map register */ #define PAGEUT2 (EXBPRT+0x01c) /* last system work map register */ #define PAGEUU (EXBPRT+0x01e) /* system u_ map register */ #define PAGESI MMPORT(SEGSI) /* first system instruction map reg. */ #define PAGEUD MMPORT(SEGUD) /* first user data map register */ #define PAGEUI MMPORT(SEGUI) /* first user instruction map register */ #define PAGEUX MMPORT(SEGUX) /* first user extra data map register */ #define PAGEAS MMPusr/include/sys/param.h.186100644 0 2 13743 3425136000 10751 ORT(SEGAS) /* logical page for ascii save buffer */ #define PAGEIP MMPORT(SEGIP) /* first user instruction map register */ #define PAGEGR MMPORT(SEGGR) /* first graphics memory register */ #define PAGEGC MMPORT(SEGGC) /* first graphics copy register */ #define PAGED1 MMPORT(SEGD1) /* first dma channel 1 register */ #define PAGED2 MMPORT(SEGD2) /* first dma channel 2 register */ #define PAGECF MMPORT(SEGCF) /* copyseg 'from' register */ #define PAGECT MMPORT(SEGCT) /* copyseg 'to' register *//* * @(#)param.h 1.7 11/5/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Adjustable parameters */ #define SSIZE 1024 /* initial stack size (bytes) */ #define SINCR 1024 /* increment of stack (bytes) */ #define NOFILE 50 /* max open files per process */ #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 20 /* Ticks/second of the clock */ #define MSGBUFS 128 #define PAGECH MMPORT(SEGCH) /* first character memory register */ #define PAGEPM MMPORT(SEGPM) /* first pointer memory register */ #define PAGEKB MMPORT(SEGKB) /* page of copy of pointer memory */ #define PAGEBG MMPORT(SEGBG) /* copy of background color */ #define PGLAST (EXBPRT+0x1fe) /* last map register */ #define pgadr(y) (y&0xff) /* extract address information */ #define pgmod(y) (y&0x0f00) /* extract mode information */ /* mode register bit definitions */ #define MM_MASK 0x0fff #define MM_SW 0 /* Characters saved from error messages */ #define NCARGS 5120 /* # characters in exec arglist */ #define MAXTTYS 16 /* Max # open ttys */ #define NIOSTAT 50 /* max number of bufs to keep stats for */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ /* CDLIMIT is ridiculously large because of CDC's sparse file applications */ /* ((1L<<21) - 1L) is the largest u_limit value that won't overflow in sys2.c */ #define CDLIMIT ((1L<<21) x0100 /* system write access */ #define MM_UA 0x0200 /* user read access */ #define MM_UW 0x0400 /* user write access */ #define MM_STK 0x0800 /* stack segment (warning interrupts) */ #define PAGESIZ 0x1000 /* size in bytes of one page */ #define OFFMASK 0x0FFF /* develop offset within page from addr */ #define LLOWWORD 0x0000FFFF /* low word of a long word */ #define LH'  - 1L) /* default max write address */ #define NSDSEGS 5 /* number of shared data segs/proc */ #ifndef NSIG /* Also look in signal.h */ #define NSIG 32 /* Maximum number of signals */ #endif /* * priorities * probably should not be * altered too much */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWIND 27 #define PWAIT 30 #define PSLEP 40 #define PUSER 50 #define PIDLE 127 /* * fundamental constants of the implementatiddress (get low 16 bits of long address */ #define atoh(x) ((int)( (x) >> 16)) /* mem size to long address */ #define mstol(x) ((long)((int)(x)&(MMPGSZ-1))< SM on On-Board USART */ #define USERMODE(ps) ((ps)&PS_USER) #define CLKONLY(ps) (((ps)&PS_PRIMASK)==(SPL0MASK<<8)) #define USIZE 1 /* size of use block is 1 page */ #define UBASE 0xf000 /* abs. addr of user block is top page */ #define DATASTART(ts,sep) (caddr_t)0 /* start of user data */ #define STACKSTART(ss) (0-mstob(ss)) /* start of user stack */ #define USRSTACK (c_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* block number of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define NICFREE 50 /* number of superblock free blocks */ #define NSBFILL 58 /* VERY MAGIC - aligns s_magic & s_type at end of SB blk */ /* * MMU parameters. */ #define MMPGSZ 4096 /* bytes/page in the MMU */ #define LMMPGSZ 12 /* log2(MMPGSZ) */ /* * Some macros addr_t)0 /* base address of user stack */ #define URSBC 14 /* User stk Reg Save area Byte Cnt */ #define SHWDSZ (sizeof(int)+6) /* space on user stack for shell word */ /* * 8086 simulated "state" definitions. */ #define PS_USER 0x01 /* "user" mode */ #define PS_SYS 0xFE /* for mch.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* current spl priority (PIC mask) */ /* Conditional compilation */ #define PAGEMMU /* mmu is divided in pages */ #define SHORTINT /* sizeof(int)==sizeof(shofor units conversion */ /* mem size to disk blocks */ #define mstod(x) ((x)*(MMPGSZ/BSIZE)) /* inumber to disk address */ #define itod(x) (daddr_t)(((unsigned)(x)+(INOPB+INOPB-1))>>LINOPB) /* inumber to disk offset */ #define itoo(x) (int)(((x)+(INOPB+INOPB-1))&(INOPB-1)) /* mem size to bytes */ #define mstob(x) ((x)<>LMMPGSZ) /* bytes to mem size (truncated)*/ #define btomst(x) (((unsigned)(x))>>LMMPGSZ) /* bytes to pagert) */ /*#define BYTESWAP*/ /* byte ordering is opposite that of pdp11 /*#define OLDFORK*/ /* return to parent by bumping pc by 2 */ /*#define FIXEDSTACK*/ /* stack cannot grow */ #define BUFMAPOUT /* buffers are mapped out */ #define LARGECODE /* kernel supports multisegment code */ /* * for 186 version */ #define LIMHOST 30 /* Number of hosts on the network */ #define NUMROW 25 #define NUMLINE 24 #define NUMCOL 80 #define WMAPSIZ 20 #define NRSDISP 1 #define SCREENSIZ ((NUMLINE)*(NUMCOL)) #def number */ #define btopn(x) (((unsigned)(x))>>LMMPGSZ) /* address (long (32 bit)) to page number (int)*/ #define atopn(x) ((int)(((long)(x))>>LMMPGSZ)) /* address (long (32 bit)) to page count (int)*/ #define atop(x) ((int)(((long)(x)+(MMPGSZ-1))>>LMMPGSZ)) /* address (long (32 bit)) to offset (int) get bits LMMPGSZ-1 - 0 */ #define atoo(x) ((int)((x)&(MMPGSZ-1))) /* long address to short address (get low 16 bits of long address */ #define atos(x) ((int)( (x) & 0x0000FFFF)) /* long address to short a'  ine NFONT 2 #define NPFKEY 32 /* Number of programmable function keys */ #define gsignal signal /* line disciplines that can be changed to */ #define OTTYDISC 0 /* old, v7 std tty driver */ #define KEYDISC 1 /* AI keyboard, old tty discipline */ #define NTTYDISC 2 /* new tty discipline */ #define NKEYDISC 3 /* AI keyboard, new tty discipline */ #define NETLDISC 4 /* Berknet line discipline */ #define MAX(a, b) (((a)>(b))?(a):(b)) #define MIN(a, b) (((a)<(b))?(a):(b)) SIZ ((NUMLINE)*(NUMCOL)) #defT]), NPROC, (char *)(&proc[NPROC]), NTEXT, (char *)(&text[NTEXT]), NCLIST, MAXUPRC, NFLOCKS, NHBUF, NHBUF-1, NWINDOW }; int rsdmajor = 7; int wdmajor = 8; short mm_free = 0; short mm_nfree = 0; long rowchange = 0L; long bgrowchange = 0L; int *bchrp, *echrp, *bparmp, *eparmp; int chrbuf[CHRSZ], parmbuf[PARMSZ]; int winerase = 0; int wflag = 0; /* WDSTART */ int numcolor = 2; short r_cy,r_cx = -1; /* cursor position */ short colormap[14] = { HLF_WHITE, BLACK, HLF_BLUE, BLUE, HLF_YELLOW, YELusr/include/sys/space.h.186100644 0 2 4456 3425136000 10725 LOW, HLF_GREEN, GREEN, HLF_MAGENTA, MAGENTA, HLF_CYAN, CYAN, HLF_RED, RED }; /* * user provided labels & temporary space. * the size of windbuf should always equal to * the value of wbufsize */ int wbufsize = NUMCOL * NWINDOW; /* used in machdep.c */ char windbuf[NUMCOL * NWINDOW]; Z], parmbuf[PARMSZ]; int winerase = 0; int wflag = 0; /* WDSTART */ int numcolor = 2; short r_cy,r_cx = -1; /* cursor position */ short colormap[14] = { HLF_WHITE, BLACK, HLF_BLUE, BLUE, HLF_YELLOW, YEL/* * @(#)space.h 1.3 6/1/84 */ #include "buf.h" #include "tty.h" #include "proc.h" #include "text.h" #include "dir.h" #include "a.out.h" #include "user.h" #include "file.h" #include "inode.h" #include "map.h" #include "callo.h" #include "mount.h" #include "var.h" #include "sysinfo.h" #include "locking.h" #include "window.h" #include "rsd.h" #include "wmap.h" #include "keybd.h" int Timezone=TIMEZONE; int Dstflag=DSTFLAG; int Cmask=CMASK; struct buf buf[NBUF+NSABUF]; char sabuf[NSABUF]usr/include/sys/tty.h.186100644 0 2 6652 3425136000 10452 [BSIZE+BSLOP]; struct hbuf hbuf[NHBUF]; struct file file[NFILE]; struct inode inode[NINODE]; struct locklist locklist[NFLOCKS]; struct proc proc[NPROC]; struct text text[NTEXT]; struct map swapmap[SMAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mount[NMOUNT]; int Hz=HZ; int Maxmem = MAXMEM; struct sysinfo sysinfo; struct syswait syswait; struct windef windef[(NRSDISP * NWINDOW) + 1]; struct wfont wfont[NFONT]; struct tty kbtty[/* * @(#)tty.h 1.3 10/5/84 Copyright Microsoft Corporation, 1983 */ #include "termio.h" /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ struct clist { int c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* * A tty structure is needed for each UNIX character device that * is used for normal terminal IO. */ struct tty { struct clist t_rawNRSDISP]; struct tty wdtty[(NRSDISP * NWINDOW) + 1]; struct wmap windmap[WMAPSIZ]; struct keybd keybd[NKEYBD]; struct rsdef rsdef[NRSDISP] = { 0, 0, NUMCOL*MARGINX, NUMLINE*MARGINY, BLACK, CSRDISP, 0, 0, 0, 0 }; struct wdata rwindef[1] = { ALT2, 0, 0, NUMCOL*MARGINX, NUMROW*MARGINY, BLACK, BORDER, WHITE, 0, 0, WRCONSOLE, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; struct var v= { NBUF, NSABUF, NCALL, NINODE, (char *)(&inode[NINODE]), NFILE, (char *)(&file[NFILE]), NMOUNT, (char *)(&mount[NMOUN(  q; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct cblock *t_buf; /* buffer pointer */ int (*t_proc)(); /* routine for device functions */ ushort t_iflag; /* input modes */ ushort t_oflag; /* output modes */ ushort t_cflag; /* control modes */ ushort t_lflag; /* line discipline modes */ short t_state; /* internal state */ short t_pgrp; /* process group name */ short t_dev; /* minor device number */ char t_line; /* line discipline #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 #define CTRL(c) ('c'&037) /* default special characters */ #define CEOT CTRL(d) #define CBRK 0377 #define CSUSP CTRL(z) /* for now, later ^z */ #define CDSUSP CTRL(y) /* for now, later ^y */ #define CRPRNT CTRL(r) #define CFLUSH CTRL(o) #define CWERAS CTRL(w) #define CLNEXT CTRL(v) #define CCLEAR CTRL(l) PRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_SUSPEND 2 */ char t_delct; /* delimiter count */ char t_col; /* current column */ char t_row; /* current row */ uchar_t t_cc[NCC+2]; /* settable control chars */ struct windef *t_wp; /* pointer to window struct */ struct keybd *t_kp; /* pointer to keyboard struct */ }; /* * The structure of a clist block */ #define CLSIZE 48 struct cblock { struct cblock *c_next; char c_first; char c_last; char c_data[CLSIZE]; }; extern struct cblock cfree[]; extern struct cblock *getcb(); extern struct cblock *getusr/include/sys/wio.h.186100644 0 2 20636 3425136000 10446 cf(); extern struct clist ttnulq; struct chead { struct cblock *c_next; int c_size; }; extern struct chead cfreelist; struct inter { int cnt; }; /* control characters */ /* pick up from termio.h */ /* default control chars */ /* pick up from termio.h */ #define TTIPRI 28 #define TTOPRI 29 /* limits */ extern int ttlowat[], tthiwat[]; #define TTYHOG 256 #define TTXOLO 60 #define TTXOHI 180 /* input modes */ /* pick up from termio.h */ /* output modes */ /* pick up from termio.h */ /* control mo/* * @(#)wio.h 1.2 4/16/84 * Window System * Window I/O Definitions */ #define CH8ptox(x) ((x)>>3) /* pixel to char x-coordinate */ #define CH8ptoy(y) ((y)>>4) /* pixel to char y-coordinate */ #define CH8xtop(x) ((x) << 3) /* char x-coordinate to pixels */ #define CH8ytop(y) ((y) << 4)/* char y-corrdinate to pixels */ /* window background color */ #define BLACK 0x0 #define WHITE 0x0F00 #define BLUE 0x000F #define YELLOW 0x0F0F #define GREEN 0x00FF #define MAGENTA 0x0FFF #define CYAN des */ /* pick up from termio.h */ /* line discipline 0 modes */ /* pick up from termio.h */ /* default speed */ /* pick up from termio.h */ /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Internal state */ #define TIMEOUT 01 /* Delay timeout in progress */ #define WOPEN 02 /* Waiting for open to complete */ #define ISOPEN 04 /* Device is open */ #define TBLOCK 010 #define CARR_ON 020 /* Software copy of carrier-pres 0x00F0 #define RED 0x0FF0 #define HLF_WHITE 0xFF00 #define HLF_YELLOW 0xFF0F #define HLF_MAGENTA 0xFFFF #define HLF_RED 0xFFF0 #define HLF_BLUE 0xF00F #define HLF_GREEN 0xF0FF #define HLF_CYAN 0xF0F0 /* border characters */ #ifndef LLCORN #define LLCORN (20) #define LRCORN (19) #define ULCORN (17) #define URCORN (18) #define THBAR (30) #define BHBAR (31) #define RVBAR (29) #define LVBAR (28) #endif LLCORN /* window ioctls */ #define WIOCMAKE (('w'<<8)|0) /* make a window ent */ #define BUSY 040 /* Output in progress */ #define OASLP 0100 /* Wakeup when output done */ #define IASLP 0200 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define ESC 04000 /* Last char escape */ #define RTO 010000 #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_SUSPEND 2(  */ #define WIOCINIT (('w'<<8)|1) /* initialize window */ #define WIOCDRAW (('w'<<8)|2) /* draw window */ #define WIOCERAS (('w'<<8)|3) /* erase window */ #define WIOCGETD (('w'<<8)|4) /* get window data */ #define WIOCSETD (('w'<<8)|5) /* set window data */ #define WIOCLFNT (('w'<<8)|6) /* load window font */ #define WIOCSFNT (('w'<<8)|7) /* set window font */ #define WIOCCFNT (('w'<<8)|8) /* clear window font */ #define WIOCGFNT (('w'<<8)|9) /* get window font data */ #define WIOCRDMS (('w'<<8)|ont naming size */ #define NCHAR 128 /* number of characters/font */ #define MINWD 50 /* minimum window dimension */ #define MARGINX 8 /* CHAR8 x-corrdinate margin size */ #define MARGINY 16 /* CHAR8 y-coordinate margin size */ #define MINWDH (MARGINY * 0) /* minimum window height */ #define MINWDW (MARGINX * 3) /* minimum window width */ /* fonts */ #define CH8FT "/etc/char8.ft" /* 8 x 11 10) /* read window mouse */ #define WIOCGRSD (('w'<<8)|11) /* get raster-display data */ #define WIOCSTAT (('w'<<8)|12) /* get window status flags */ #define WIOCLABL (('w'<<8)|13) /* set user window label */ #define WIOCRACD (('w'<<8)|14) /* get window row/column data */ #define WIOCSKBD (('w'<<8)|15) /* set keyboard window */ #define WIOCSRSD (('w'<<8)|16) /* set raster-display uflags */ #define WIOCGRUP (('w'<<8)|17) /* update window graphics */ #ifndef KERNEL #include "./param.h" /* video modes */ fast output font */ #define NUNIXFT "/etc/nunix.ft" /* default nunix font */ #define DFN NFONT-1 /* default font slot number */ struct fcdef /* font character definition */ { char fc_hs; /* horizontal size in bits */ char fc_vs; /* vertical size */ char fc_ha; /* horizontal adjust (signed) */ char fc_va; /* vertical adjust (signed) */ char fc_hi; /* horizontal increment */ char fc_vi; /* vertical increment */ short fc_mr; /* relative mini-raster pointer */ }; struct template#define STORE 0 /* destination = source */ #define SET 1 /* destination |= source */ #define CLEAR 2 /* destination &= source */ #define XOR 3 /* destination ^= source */ #define NOT 4 /* destination ^= -1 */ /* w_flags */ #define WALLOC 0x1 /* allocated */ #define WOPENED 0x2 /* opened */ #define WRAST 0x4 /* rast-window */ #define WSUB 0x8 /* sub-window */ #define WINIT 0x10 /* initialized */ #define WEXPOSE 0x20 /* exposed */ #define WDSTART 0x40 /* in wdstart */ #define WDSTOP 0x80 /* output s /* window template definition */ { short t_x; /* upper-left-corner x (pixels) */ short t_y; /* upper-left-corner y (pixels) */ short t_width; /* width (pixels) */ short t_height; /* height (pixels) */ short t_color; /* background color */ }; struct wfdata /* window font data */ { /* system-maintained parameters */ char wf_mhs; /* maximum horizontal size */ char wf_mvs; /* maximum vertical size */ char wf_mha; /* maximum horizontal adjust */ char wf_mva; /* maximum vetopped */ #define WBELL 0x100 /* bell pending */ #define WKEYBD 0x200 /* keybd window */ #define WCSROFF 0x400 /* cursor off */ /* w_uflags */ #define ALT2 0x1 /* altos 2 mode */ #define SCROLL 0x2 /* scroll mode */ #define CSROFF 0x4 /* cursor off */ #define BFLSP 0x8 /* big font line spacing */ #define NLABEL 0x10 /* invisible label */ #define SAVEWI 0x20 /* save window image */ #define EONW 0x80 /* expose on write */ #define WMGR 0x100 /* wrtical adjust */ char wf_mhi; /* maximum horizontal increment */ char wf_mvi; /* maximum vertical increment */ char wf_ehs; /* effective horizontal size */ char wf_evs; /* effective vertical size */ char wf_eha; /* effective horizontal adjust */ char wf_eva; /* effective vertical adjust */ short wf_type; /* font type flag */ char *wf_fbuf; /* font buffer pointer */ long wf_size; /* font size in bytes */ /* user-settable parameters */ short wf_slot; /* font slot number */ indow manager */ #define WRAPOUT 0x200 /* wraparound output characters */ #define USERLAB 0x400 /* use user provided label */ #define NBORDER 0x800 /* no border window */ /* r_uflags */ #define NOAUTOX 0x1 /* no auto window exposure */ /* wfont types */ #define GEN 0 /* general font */ #define CHAR8 1 /* char8 font */ #define CFNT -1 /* current font */ #define BFNT -2 /* biggest font */ /* basic params */ #define MARGIN 10 /* bare margin size */ #define FNTSIZ 60 /* maximum f)  char wf_name[FNTSIZ]; /* font name */ }; struct wdata /* comprehensive window data */ { /* user-settable parameters */ short w_uflags; /* user settable flags */ short w_ulcx; /* upper-left-corner x (pixels) */ short w_ulcy; /* upper-left-corner y (pixels) */ short w_width; /* window width (pixels) */ short w_height; /* window height (pixels) */ short w_color; /* window color (BLACK|WHITE) */ short w_mode; /* window draw mode STORE,XOR.. */ short w_ccolor; /* window character rsdata /* user raster information */ { short ur_data[19]; }; struct wdata /* user window information */ { /* user settable */ short uw_uflags; struct template uw_t; short uw_mode; short uw_ccolor; short uw_assize; char uw_label[DIRSIZ]; /* system maintained */ short uw_flags; short uw_data[8]; /* e.g. lbdr,rbdr,tbdr,bbdr,cx,cy,nrow,ncol */ int uw_rval; }; #endif /* ifdef KERNEL */ fbuf; long uf_size; /* user settable */ short uf_slot; char uf_name[FNTSIZ]; }; struct color */ short w_assize; /* ascii-save buff size (bytes) */ char w_label[DIRSIZ]; /* window label */ /* system-maintained parameters */ short w_flags; /* window status flags */ short w_lbdr; /* window left border */ short w_rbdr; /* window right border */ short w_tbdr; /* window top border */ short w_bbdr; /* window bottom border */ short w_cx; /* window current x-coordinate */ short w_cy; /* window current y-coordinate */ short w_nrow; /* window number of rows */ shorusr/include/sys/param.h.486100644 0 2 13743 3425136000 10754 t w_ncol; /* window number of columns */ union { int r_fd; /* returned file descriptor */ dev_t r_wd; /* returned major/minor device */ } w_rval; #define w_fdes w_rval.r_fd #define w_rdev w_rval.r_wd }; struct rsdata /* window raster-display data */ { long r_base; /* video memory base address */ long r_size; /* size of video memory (bytes) */ short r_llen; /* line length (bytes) */ /* long r_sync; sync program address */ /* long r_vcon; video controller address */ /* /* * @(#)param.h 1.6 6/22/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Adjustable parameters */ #define SSIZE 1024 /* initial stack size (bytes) */ #define SINCR 1024 /* increment of stack (bytes) */ #define NOFILE 50 /* max open files per process */ #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 20 /* Ticks/second of the clock */ #define MSGBUFS 128long r_ltbl; line table address */ short r_ulcx; /* upper-left-corner x (pixels) */ short r_ulcy; /* upper-left-corner y (pixels) */ short r_width; /* raster width (pixels) */ short r_height; /* raster height (pixels) */ short r_color; /* raster color (BLACK|WHITE) */ short r_flags; /* raster status flags */ short r_uflags; /* raster user-settable flags */ short r_wdcnt; /* raster sub-window count */ }; struct wstat /* window status flags */ { short w_Flags; /* system flags  /* Characters saved from error messages */ #define NCARGS 5120 /* # characters in exec arglist */ #define MAXTTYS 16 /* Max # open ttys */ #define NIOSTAT 50 /* max number of bufs to keep stats for */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ /* CDLIMIT is ridiculously large because of CDC's sparse file applications */ /* ((1L<<21) - 1L) is the largest u_limit value that won't overflow in sys2.c */ #define CDLIMIT ((1L<<21)  */ short w_Uflags; /* user flags */ }; struct wracd /* window row & column data */ { short w_Nrow; /* number of rows */ short w_Ncol; /* number of columns */ }; struct wlabel /* window label */ { char w_Label[DIRSIZ]; }; #endif /* #ifndef KERNEL */ #ifdef KERNEL struct wfdata /* user font information */ { /* system maintained */ char uf_data[10]; short uf_type; char *uf_fbuf; long uf_size; /* user settable */ short uf_slot; char uf_name[FNTSIZ]; }; struct )  - 1L) /* default max write address */ #define NSDSEGS 5 /* number of shared data segs/proc */ #ifndef NSIG /* Also look in signal.h */ #define NSIG 32 /* Maximum number of signals */ #endif /* * priorities * probably should not be * altered too much */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWIND 27 #define PWAIT 30 #define PSLEP 40 #define PUSER 50 #define PIDLE 127 /* * fundamental constants of the implementatiddress (get low 16 bits of long address */ #define atoh(x) ((int)( (x) >> 16)) /* mem size to long address */ #define mstol(x) ((long)((int)(x)&(MMPGSZ-1))< SM on On-Board USART */ #define USERMODE(ps) ((ps)&PS_USER) #define CLKONLY(ps) (((ps)&PS_PRIMASK)==(SPL0MASK<<8)) #define USIZE 1 /* size of use block is 1 page */ #define UBASE 0xf000 /* abs. addr of user block is top page */ #define DATASTART(ts,sep) (caddr_t)0 /* start of user data */ #define STACKSTART(ss) (0-mstob(ss)) /* start of user stack */ #define USRSTACK (c_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* block number of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define NICFREE 50 /* number of superblock free blocks */ #define NSBFILL 58 /* VERY MAGIC - aligns s_magic & s_type at end of SB blk */ /* * MMU parameters. */ #define MMPGSZ 4096 /* bytes/page in the MMU */ #define LMMPGSZ 12 /* log2(MMPGSZ) */ /* * Some macros addr_t)0 /* base address of user stack */ #define URSBC 14 /* User stk Reg Save area Byte Cnt */ #define SHWDSZ (sizeof(int)+6) /* space on user stack for shell word */ /* * 8086 simulated "state" definitions. */ #define PS_USER 0x01 /* "user" mode */ #define PS_SYS 0xFE /* for mch.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* current spl priority (PIC mask) */ /* Conditional compilation */ #define PAGEMMU /* mmu is divided in pages */ #define SHORTINT /* sizeof(int)==sizeof(shofor units conversion */ /* mem size to disk blocks */ #define mstod(x) ((x)*(MMPGSZ/BSIZE)) /* inumber to disk address */ #define itod(x) (daddr_t)(((unsigned)(x)+(INOPB+INOPB-1))>>LINOPB) /* inumber to disk offset */ #define itoo(x) (int)(((x)+(INOPB+INOPB-1))&(INOPB-1)) /* mem size to bytes */ #define mstob(x) ((x)<>LMMPGSZ) /* bytes to mem size (truncated)*/ #define btomst(x) (((unsigned)(x))>>LMMPGSZ) /* bytes to pagert) */ /*#define BYTESWAP*/ /* byte ordering is opposite that of pdp11 /*#define OLDFORK*/ /* return to parent by bumping pc by 2 */ /*#define FIXEDSTACK*/ /* stack cannot grow */ #define BUFMAPOUT /* buffers are mapped out */ #define LARGECODE /* kernel supports multisegment code */ /* * for 186 version */ #define LIMHOST 30 /* Number of hosts on the network */ #define NUMROW 25 #define NUMLINE 24 #define NUMCOL 80 #define WMAPSIZ 20 #define NRSDISP 1 #define SCREENSIZ ((NUMLINE)*(NUMCOL)) #def number */ #define btopn(x) (((unsigned)(x))>>LMMPGSZ) /* address (long (32 bit)) to page number (int)*/ #define atopn(x) ((int)(((long)(x))>>LMMPGSZ)) /* address (long (32 bit)) to page count (int)*/ #define atop(x) ((int)(((long)(x)+(MMPGSZ-1))>>LMMPGSZ)) /* address (long (32 bit)) to offset (int) get bits LMMPGSZ-1 - 0 */ #define atoo(x) ((int)((x)&(MMPGSZ-1))) /* long address to short address (get low 16 bits of long address */ #define atos(x) ((int)( (x) & 0x0000FFFF)) /* long address to short a*  ine NFONT 2 #define NPFKEY 32 /* Number of programmable function keys */ #define gsignal signal /* line disciplines that can be changed to */ #define OTTYDISC 0 /* old, v7 std tty driver */ #define KEYDISC 1 /* AI keyboard, old tty discipline */ #define NTTYDISC 2 /* new tty discipline */ #define NKEYDISC 3 /* AI keyboard, new tty discipline */ #define NETLDISC 4 /* Berknet line discipline */ #define MAX(a, b) (((a)>(b))?(a):(b)) #define MIN(a, b) (((a)<(b))?(a):(b)) SIZ ((NUMLINE)*(NUMCOL)) #def/ /* CHANNEL PARAMETER 1 */ #define BAUD 0x0F /* mask for baud rate field */ #define CTS 0x40 /* clear to send */ #define DSR 0x80 /* data set ready */ /* CHANNEL STATUS 0 */ #define XEMPTY 0x01 /* xmitter empty */ #define DTR 0x02 /* data xmit ready */ #define BRK 0x04 /* break in progress */ #define RTS 0x08 /* request to send, also used as carrier det */ #define PERRSC 0x10 /* parity error */ #define OVERRSC 0x20 /* receiver overrun */ #define FERROR 0x40 /* framing error */ /* CHANNEL STATUusr/include/sys/sc.h.486100644 0 2 6412 3425136000 10234 S 1 */ #define RAVAIL 0x01 /* receive character avail in tty reg */ #define R0FULL 0x01 /* receive buffer 0 full */ #define R1FULL 0x02 /* receive buffer 1 full */ #define XREADY 0x10 /* xmitter ready */ #define RBREAK 0x20 /* break received */ /* CHANNEL COMMAND */ #define CHBUSY 0x80 /* channel command reg busy (or'ed in) */ #define XINTEN 0x40 /* xmit interrupt enable (or'ed in) */ #define RINTEN 0x20 /* receive interrupt enable (or'ed in) */ #define MINTEN 0x10 /* modem interrupt enable (or'ed/* * @(#)sc.h 1.2 11/29/84 * intelligent serial board device structure */ #define CONSOLE 0 /* minor device # for console */ #define FASTCHAN 1 /* minor device # for fast input channel */ #define RBSIZE 32 /* receive buffer size -- must be power of 2 */ #define FASTBSIZE 2048 /* receive buffer size for fast input channel */ #define NSC 8 /* number of serial channels: z80 firmware wants 8 */ struct device { char scver; char sccmnd; char scstat; char scivec0, scivec1; char scdummy; struct schan {  in) */ #define CHCMASK (0x0F | CHBUSY) /* channel command mask */ #define NOP (0 | CHBUSY) /* channel nop comand */ #define CHINIT (1 | CHBUSY) /* channel initialize */ #define XMIT (2 | CHBUSY) /* start xmit operation */ #define RCVACK (3 | CHBUSY) /* acknowledge receiver */ #define XABORT (4 | CHBUSY) /* abort xmit operation */ #define RABORT (5 | CHBUSY) /* abort receive operation */ #define SNDBRK (6 | CHBUSY) /* send break operation */ #define RXMIT (7 | CHBUSY) /* resume xmit operation */ #define CHPchar chparm0, chparm1; char chstat0, chstat1; char chcmnd; char chxadl, chxadm, chxadh; /* high byte not used */ char chxlenl, chxlenh; char chradl, chradm, chradh; /* high byte not used */ char chrlen, chrlenh; char chrin, chrinh; char chrout, chrouth; char chratel, chrateh; char chinited; } scchan[NSC]; } ; #define SCVER(cont) (cont.scver >> 3) #define CNBUSY 0x80 #define DISABLE ( 0 | CNBUSY) #define ENABLE ( 1 | CNBUSY) #define INTDIS ( 2 | CNBUSY) #define INTEN ( 3 | CNBUSY) #defARM (8 | CHBUSY) /* change parameter */ #define RESERR (9 | CHBUSY) /* reset error */ #define RESMOD (10 | CHBUSY) /* reset modem interrupt */ #define RMULTI (11 | CHBUSY) /* run over multibus */ #define PTRINVL 0x80 /* set in high byte of chrin if ptr invalid */ receiver */ #define XABORT (4 | CHBUSY) /* abort xmit operation */ #define RABORT (5 | CHBUSY) /* abort receive operation */ #define SNDBRK (6 | CHBUSY) /* send break operation */ #define RXMIT (7 | CHBUSY) /* resume xmit operation */ #define CHPine RESINT ( 4 | CNBUSY) /* CHANNEL PARAMETER 0 */ #define PENABLE 0x01 /* parity enable */ #define EVENPAR 0x02 /* even parity */ #define ONESTOP 0x04 /* one stop bit */ #define TWOSTOP 0x0C /* two stop bits */ #define BITS5 0x00 /* five bits/char */ #define BITS6 0x20 /* six bits/char */ #define BITS7 0x10 /* seven bits/char */ #define BITS8 0x30 /* eight bits/char */ #define FDUP 0x00 /* full duplex */ #define RECBRK 0x40 /* break received */ #define MRECV 0x80 /* multiple character receive **  usr/include/sys/iopmem.h.486100644 0 2 426 3425136000 16205 1usr/include/sys/iopmem.h.586/* * @(#)acct.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Accounting structures */ typedef ushort comp_t; /* "floating point" */ /* 13-bit fraction, 3-bit exponent */ struct acct { char ac_flag; /* Accounting flag */ char ac_stat; /* Exit status */ ushort ac_uiusr/include/sys/space.h.486100644 0 2 2553 3425136000 15642 1usr/include/sys/space.h.586d; /* Accounting user ID */ ushort ac_gid; /* Accounting group ID */ dev_t ac_tty; /* control typewriter */ time_t ac_btime; /* Beginning time */ comp_t ac_utime; /* acctng user time in clock ticks */ comp_t ac_stime; /* acctng system time in clock ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; extern structusr/include/sys/intr.h.486100644 0 2 3061 3425136000 15373 1usr/include/sys/intr.h.186 acct acctbuf; extern struct inode *acctp; /* inode of accounting file */ #define AFORK 01 /* has executed fork, but no exec */ #define ASU 02 /* used super-user privileges */ #define ACCTF 0300 /* record type: 00 = acct */ ; /* acctng system time in clock ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; extern structusr/include/sys/mmu.h.486100644 0 2 15601 3425136000 15062 1usr/include/sys/mmu.h.186usr/include/sys/archive.h100644 0 2 302 3425136000 10700 usr/include/sys/acct.h100644 0 2 2345 3425136000 10222 +  /* * @(#) archive.h 1.1 85/01/23 */ struct archive { /* first block on tape */ char bu_dater[26]; int bu_numbr; long bu_stblk; char bu_rec[128]; char bu_stng[128]; char stuff[256]; }; 0300 /* record type: 00 = acct */ ; /* acctng system time in clock ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; ePˆP¦÷¦÷usr/include/sys/buf.h100644 0 2 6271 3425136000 10066 usr/include/sys/autsname.h100644 0 2 276 3425136000 11106 /* * @(#)buf.h 1.6 4/2/84 Copyright Microsoft Corporation, 1983 */ /* * Each buffer in the pool is usually doubly linked into 2 lists: * the device with which it is currently associated (always) * and also on a list of blocks available for allocation * for other use (usually). * The latter list is kept in last-used order, and the two * lists are doubly linked to make it easy to remove * a buffer from one list when it was found by * looking through the other. * A buffer is on the available list, /* * @(#)autsname.h 1.2 7/19/84 */ struct autsname { char asysname[DIRSIZ]; char anodename[DIRSIZ]; char arelease[DIRSIZ]; char aversion[DIRSIZ]; }; extern struct autsname autsname; }; 0300 /* record type: 00 = acct */ ; /* acctng system time in clock ticks */ comp_t ac_etime; /* acctng elapsed time in clock ticks */ comp_t ac_mem; /* memory usage */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; ePˆP¦÷¦÷and is liable * to be reassigned to another disk block, if and only * if it is not marked BUSY. When a buffer is busy, the * available-list pointers can be used for other purposes. * Most drivers use the forward ptr as a link in their I/O active queue. * A buffer header contains all the information required to perform I/O. * Most of the routines which manipulate these things are in bio.c. */ struct buf { int b_flags; /* see defines below */ struct buf *b_forw; /* headed by d_tab of conf.c */ stusr/include/sys/brk.h100644 0 2 553 3425136000 10045 ruct buf *b_back; /* " */ struct buf *av_forw; /* position on free list, */ struct buf *av_back; /* if not BUSY*/ dev_t b_dev; /* major+minor device name */ unsigned b_bcount; /* transfer count */ paddr_t b_paddr; /* physical address */ #define paddr(X) X->b_paddr daddr_t b_blkno; /* block # on device */ char b_error; /* returned after I/O */ unsigned int b_resid; /* words not transferred after error */ union { /* Available for use within drivers */ caddr_t b_caddr; lon/* * @(#) brk.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* commands for brkctl */ #define BR_ARGSEG 1 /* specified segment */ #define BR_NEWSEG 2 /* new segment */ #define BR_IMPSEG 3 /* implied segment */ ge */ comp_t ac_io; /* chars transferred */ comp_t ac_rw; /* blocks read or written */ char ac_comm[8]; /* command name */ }; ePˆP¦÷¦÷+  g b_long; unsigned int b_int[2]; char b_char[4]; } b_drvun; char b_unused; /* Used by hd driver */ }; #define b_cylin b_drvun.b_int[0] extern struct buf buf[]; /* The buffer pool itself */ extern struct buf bfreelist; /* head of available list */ extern char sabuf[][BSIZE+BSLOP]; #ifdef BUFMAPOUT long bigetl(); #else #define bigetc(bp,cp) (*(char *)(bp->b_paddr+cp)) #define biget(bp,cp) (*(int *)(bp->b_paddr+cp)) #define bigetl(bp,cp) (*(long *)(bp->b_paddr+cp)) #define biputc(bp,cp,c) (*(/* * @(#)callo.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 */ /* * The callout structure is for a routine arranging * to be called by the clock interrupt * (clock.c) with a specified argument, * in a specified amount of time. * Used, for example, to time tab delays on typewriters. */ struct callo { int c_time; /* incremental time */ caddr_t c_arg; /* argument to routine */ int (*c_func)(); /* routine */ }; extern struct callo callout[]; cs) */ /* * Fast access to buffersPˆP¦÷¦÷char *)(bp->b_paddr+cp)=c) #define biput(bp,cp,c) (*(int *)(bp->b_paddr+cp)=c) #define biputl(bp,cp,c) (*(long *)(bp->b_paddr+cp)=c) #endif paddr_t bufbase; /* * These flags are kept in b_flags. */ #define B_WRITE 0 /* non-read pseudo-flag */ #define B_READ 01 /* read when I/O occurs */ #define B_DONE 02 /* transaction finished */ #define B_ERROR 04 /* transaction aborted */ #define B_BUSY 010 /* not on av_forw/back list */ #define B_PHYS 020 /* Physical (raw) IO */ #define B_FMT 040 /* Format command fusr/include/sys/chars.h100644 0 2 1411 3425136000 10401 lag */ #define B_WANTED 0100 /* issue wakeup when BUSY goes off */ #define B_AGE 0200 /* delayed write for correct aging */ #define B_ASYNC 0400 /* don't wait for I/O completion */ #define B_DELWRI 01000 /* don't write till block leaves available list */ #define B_OPEN 02000 /* open routine called */ #define B_STALE 04000 #define B_UAREA 0100000 /* add u-area to a swap operation */ #define B_IOCTL 010000 /* for use by raw devices to flag special things (graphics) */ /* * Fast access to buffers in cache by/* * @(#) chars.h 1.1 85/01/23 */ #define NUL 0X00 #define SOH 0X01 #define STX 0X02 #define ETX 0X03 #define EOT 0X04 #define ENQ 0X05 #define ACK 0X06 #define BEL 0X07 #define BS 0X08 #define HT 0X09 #define LF 0X0A #define NL 0X0A #define VT 0X0B #define FF 0X0C #define CR 0X0D #define SO 0X0E #define SPRT 0X0E #define SI 0X0F #define DLE 0X10 #define DC1 0X11 #define PRT 0X11 #define DC2 0X12 #define BLINK 0X12 #define DC3 0X13 #define PRT132 0X13 #define DC4 0X14 #define CP 0X14 #define NAK 0X15 #de hashing. */ #define bhash(d,b) ((struct buf *)&hbuf[((int)d+(int)b)&v.v_hmask]) struct hbuf { int b_flags; struct buf *b_forw; struct buf *b_back; }; extern struct hbuf hbuf[]; ine B_DELWRI 01000 /* don't write till block leaves available list */ #define B_OPEN 02000 /* open routine called */ #define B_STALE 04000 #define B_UAREA 0100000 /* add u-area to a swap operation */ #define B_IOCTL 010000 /* for use by raw devices to flag special things (graphics) */ /* * Fast access to buffers in cache byfine SYN 0X16 #define ETB 0X17 #define CAN 0X18 #define EM 0X19 #define SUB 0X1A #define ESC 0X1B #define FS 0X1C #define GS 0X1D #define RS 0X1E #define US 0X1F #define SP 0X20 #define EOM 0X21 #define COLON 0X3A #define FMT 0X5B #define SOM 0X5D #define DEL 0X7F X0C #define CR 0X0D #define SO 0X0E #define SPRT 0X0E #define SI 0X0F #define DLE 0X10 #define DC1 0X11 #define PRT 0X11 #define DC2 0X12 #define BLINK 0X12 #define DC3 0X13 #define PRT132 0X13 #define DC4 0X14 #define CP 0X14 #define NAK 0X15 #deusr/include/sys/callo.h100644 0 2 720 3425136000 10355 ,  usr/include/sys/clist.h100644 0 2 206 3425136000 10400 usr/include/sys/dir.h100644 0 2 1016 3425136000 10060 /* * @(#) clist.h 1.1 85/01/23 */ struct cblock { struct cblock *c_next; char c_info[CBSIZE]; }; extern struct cblock cfree[]; ine RS 0X1E #define US 0X1F #define SP 0X20 #define EOM 0X21 #define COLON 0X3A #define FMT 0X5B #define SOM 0X5D #define DEL 0X7F X0C #define CR 0X0D #define SO 0X0E #define SPRT 0X0E #define SI 0X0F #define DLE 0X10 #define DC1 0X11 #define PRT 0X11 #define DC2 0X12 #define BLINK 0X12 #define DC3 0X13 #define PRT132 0X13 #define DC4 0X14 #define CP 0X14 #define PˆP¦÷¦÷/* * @(#) dir.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifndef DIRSIZ #define DIRSIZ 14 #endif struct direct { ino_t d_ino; char d_namusr/include/sys/conf.h100644 0 2 1536 3425136000 10236 e[DIRSIZ]; }; .h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifndef DIRSIZ #define DIRSIZ 14 #endif struct direct { ino_t d_ino; char d_nam/* * @(#)conf.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 */ /* * Declaration of block device switch. Each entry (row) is * the only link between the main unix code and the driver. * The initialization of the device switches is in the file conf.c. */ extern struct bdevsw { int (*d_open)(); int (*d_close)(); int (*d_strategy)(); struct iobuf *d_tab; } bdevsw[]; /* * Character device switch. */ extern struct cdevsw { int (*d_open)(); int (*d_close)(); int (*d_read)(); int (*d_write)(usr/include/sys/drive.h100644 0 2 475 3425136000 10403 ); int (*d_ioctl)(); } cdevsw[]; int bdevcnt; int cdevcnt; /* * Line discipline switch. */ extern struct linesw { int (*l_open)(); int (*l_close)(); int (*l_read)(); int (*l_write)(); int (*l_ioctl)(); int (*l_input)(); int (*l_output)(); int (*l_mdmint)(); } linesw[]; int linecnt; #define TAPEDEV 3 /* to block read-ahead on tape */ truct iobuf *d_tab; } bdevsw[]; /* * Character device switch. */ extern struct cdevsw { int (*d_open)(); int (*d_close)(); int (*d_read)(); int (*d_write)(,  /* * hard disk drive config info laid out by manufacturing diagnostics * * @(#) drive.h 1.2 85/01/23 */ struct drive { char dc_jump[3]; char dc_unused[9]; int dc_magic; int dc_cyls; char dc_heads; char dc_spt; char dc_secsize; char dc_skew; char dc_interleave; char dc_manutype; int dc_megabytes; }; RES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ #ifndef DIRSIZ #define DIRSIZ 14 #endif struct direct { ino_t d_ino;PˆP¦÷¦÷aphore */ } f_un; }; #define f_inode f_unNET.f_ino /* pointer to inode structure AMG */ #define f_netid f_unNET.f_net /* network address (host/fd) AMG */ #define f_offset f_un.f_off extern struct file file[]; /* The file table itself */ /* flags */ #define FOPEN (-1) #define FREAD 00001 #define FWRITE 00002 #define FNDELAY 00004 #define FAPPEND 00010 #define FSYNC 00100 #define FREMOTE 00200 /* is a remote (network) file - AMG */ #define FMASK 00377 /* open only modes */ #define FCREAT 00400 #defiusr/include/sys/fblk.h100644 0 2 755 3425136000 10211 ne FTRUNC 01000 #define FEXCL 02000 /* * dissasembly of * user remote file descriptor * - host in high byte * - actual remote fd in low byte */ #define HOST(netid) ((netid) >> 8) /* AMG */ #define FD(netid) ((netid) & 0xFF) /* AMG */ /* flags */ #define FOPEN (-1) #define FREAD 00001 #define FWRITE 00002 #define FNDELAY 00004 #define FAPPEND 00010 #define FSYNC 00100 #define FREMOTE 00200 /* is a remote (network) file - AMG */ #define FMASK 00377 /* open only modes */ #define FCREAT 00400 #defi/* * @(#) fblk.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct fblk { short df_nfree; daddr_t df_free[NICFREE]; }; d_ino;PˆP¦÷¦÷usr/include/sys/filsys.h100644 0 2 3163 3425136000 10620 usr/include/sys/file.h100644 0 2 2361 3425136000 10225 /* * @(#) filsys.h 1.3 85/01/23 */ /* * Structure of the super-block */ struct filsys { ushort s_isize; /* +0 size in blocks of i-list */ daddr_t s_fsize; /* +2 size in blocks of entire volume */ short s_nfree; /* +6 number of addresses in s_free */ daddr_t s_free[NICFREE]; /* +8 free block list */ short s_ninode; /* +208 number of i-nodes in s_inode */ ino_t s_inode[NICINOD]; /* +210 free i-node list */ char s_flock; /* +410 lock during free list manipulation */ char s_ilock; /* +411 lock dur/* * @(#)file.h 1.2 4/3/84 Copyright Microsoft Corporation, 1983 */ /* * One file structure is allocated for each open/creat/pipe call. * Main use is to hold the read/write pointer associated with * each open file. */ struct file { char f_flag; cnt_t f_count; /* reference count */ union { /* AMG */ unsigned short f_net; /* AMG */ struct inode *f_ino; /* AMG */ } f_unNET; /* AMG */ union { off_t f_off; /* read/write character pointer */ struct file *f_slnk; /* next waiter for sem-  ing i-list manipulation */ char s_fmod; /* +412 super block modified flag */ char s_ronly; /* +413 mounted read-only flag */ time_t s_time; /* +414 last super block update */ daddr_t s_tfree; /* +418 total free blocks*/ ino_t s_tinode; /* +422 total free inodes */ short s_dinfo[4]; /* +424 device information */ char s_fname[6]; /* +432 file system name */ char s_fpack[6]; /* +438 file system pack name */ /* remainder is maintained for xenix */ char s_clean; /* +444 S_CLEAN if struc */ /* control-word flags */ #define I87_RND 0x0c00 /* rounding control mask */ */ #define I87_IOP 0x0001 /* invalid operation */ #define I87_DNO 0x0002 /* denormalized operand */ #define I87_DV0 0x0004 /* divide by 0 */ #define I87_OVF 0x0008 /* overflow */ #define I87_UNF 0x0010 /* underflow */ #define I87_PRE 0x0020 /* precision ture is properly closed */ char s_fill[NSBFILL];/* +446 space to make sizeof filsys be BSIZE */ long s_magic; /* -8 indicates version of filsys */ long s_type; /* -4 type of new file system */ }; #define S_CLEAN 0106 /* arbitrary magic value */ /* s_magic, magic value for file system version */ #define S_S3MAGIC 0x2b5544 /* system 3 arbitrary magic value */ /* s_type, block size of file system */ #define S_B512 1 /* 512 byte block */ #define S_B1024 2 /* 1024 byte block */ /*usr/include/sys/ino.h100644 0 2 1177 3425136000 10077  codes for file system version (for utilities) */ #define S_V2 1 /* version 7 */ #define S_V3 2 /* system 3 */ c; /* -8 indicates version of filsys */ long s_type; /* -4 type of new file system */ }; #define S_CLEAN 0106 /* arbitrary magic value */ /* s_magic, magic value for file system version */ #define S_S3MAGIC 0x2b5544 /* system 3 arbitrary magic value */ /* s_type, block size of file system */ #define S_B512 1 /* 512 byte block */ #define S_B1024 2 /* 1024 byte block */ /*/* * @(#)ino.h 1.2 1/31/84 Copyright Microsoft Corporation, 1983 */ /* Inode structure as it appears on a disk block. */ struct dinode { ushort di_mode; /* mode and type of file */ short di_nlink; /* number of links to file */ ushort di_uid; /* owner's user id */ ushort di_gid; /* owner's group id */ off_t di_size; /* number of bytes in file */ char di_addr[40]; /* disk block addresses */ time_t di_atime; /* time last accessed */ time_t di_mtime; /* time last modifiusr/include/sys/i8087.h100644 0 2 1160 3425136000 10061 ed */ time_t di_ctime; /* time created */ }; /* * the 40 address bytes: * 39 used; 13 addresses * of 3 bytes each. */ ruct dinode { ushort di_mode; /* mode and type of file */ short di_nlink; /* number of links to file */ ushort di_uid; /* owner's user id */ ushort di_gid; /* owner's group id */ off_t di_size; /* number of bytes in file */ char di_addr[40]; /* disk block addresses */ time_t di_atime; /* time last accessed */ time_t di_mtime; /* time last modifi/* * @(#)i8087.h 1.1 3/26/84 */ /* i8087.h - 8087 flag definitions */ /* status flags / mask bits */ #define I87_IOP 0x0001 /* invalid operation */ #define I87_DNO 0x0002 /* denormalized operand */ #define I87_DV0 0x0004 /* divide by 0 */ #define I87_OVF 0x0008 /* overflow */ #define I87_UNF 0x0010 /* underflow */ #define I87_PRE 0x0020 /* precision -  usr/include/sys/inode.h100644 0 2 7457 3425136000 10417 s */ #define ILOCK 01 /* inode is locked */ #define IUPD 02 /* file has been modified */ #define IACC 04 /* inode access time to be updated */ #define IMOUNT 010 /* inode is mounted on */ #define IWANT 020 /* some process waiting on lock */ #define ITEXT 040 /* inode is pure text prototype */ #define ICHG 0100 /* inode has been changed */ #define IREMOTE 0200 /* remote inode (for current dir) AMG */ /* special for net work */ #define NETITYPE 0x8000 /* network special bit for device # */ /* modes/* * @(#)inode.h 1.2 4/20/84 Copyright Microsoft Corporation, 1983 */ /* * The I node is the focus of all * file activity in unix. There is a unique * inode allocated for each active file, * each current directory, each mounted-on * file, text file, and the root. An inode is 'named' * by its dev/inumber pair. (iget/iget.c) * Data, from mode on, is read in * from permanent inode on volume. */ #define NADDR 13 #define NSADDR (NADDR*sizeof(daddr_t)/sizeof(short)) /* file dependent part for named  */ #define IFMT 0170000 /* type of file */ #define IFDIR 0040000 /* directory */ #define IFCHR 0020000 /* character special */ #define IFBLK 0060000 /* block special */ #define IFREG 0100000 /* regular */ #define IFMPC 0030000 /* multiplexed char special */ #define IFMPB 0070000 /* multiplexed block special */ #define IFIFO 0010000 /* fifo special */ #define IFNAM 0050000 /* name special */ #define IFLNK 0120000 /* symbolic link */ #define ISUID 04000 /* set user id on execution */ #deffiles */ struct iisem { /* semaphore */ int i_scount; /* current semaphore count */ int i_eflag; /* err flg */ struct file *i_headw; /* first waiter */ struct file *i_tailw; /* last waiter */ }; struct iisd { /* shared data */ mloc_t i_buf; /* address of kernel copy */ int i_len; /* length of segment */ int i_vnum; /* version number */ int i_snum; /* serial # for getv, waitv *ine ISGID 02000 /* set group id on execution */ #define ISVTX 01000 /* save swapped text even after use */ #define IREAD 0400 /* read, write, execute permissions */ #define IWRITE 0200 #define IEXEC 0100 #define i_addr i_fdep.i_blks.i_p.i_a #define i_lastr i_fdep.i_blks.i_l #define i_rdev i_fdep.i_blks.i_p.i_a[0] #define i_faddr i_fdep.i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ NFADDR*BSIZE #define i_frptr i_fdep.i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_fdep.i_blks.i_p.i_f[NSADDR-4] #define i_/ int i_flags; /* LOCKED, etc. */ }; struct inode { char i_flag; cnt_t i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ ino_t i_number; /* i number, 1-to-1 with device address */ ushort i_mode; short i_nlink; /* directory entries */ ushort i_uid; /* owner */ ushort i_gid; /* group of owner */ off_t i_size; /* size of file */ union { /* file type dependent section */ struct { /* files which have data blocks */ frcnt i_fdep.i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_fdep.i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_fdep.i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 /* types for IFNAM type files */ #define IFSEM 1L /* semaphore type */ #define IFSHD 2L /* shared data */ i_blks.i_p.i_a[0] #define i_faddr i_fdep.i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ NFADDR*BSIZE #define i_frptr i_fdep.i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_fdep.i_blks.i_p.i_f[NSADDR-4] #define i_ union { daddr_t i_a[NADDR]; /* if normal file/directory */ short i_f[NSADDR]; /* if fifio's */ } i_p; daddr_t i_l; /* last logical block read (for read-ahead) */ } i_blks; struct { /* name type files */ long i_type; union { struct iisem i_sem; struct iisd i_sd; } i_ndata; } i_namef; } i_fdep; struct locklist *i_locklist; /* locked region list */ }; extern struct inode inode[]; /* The inode table itself */ /* flag.  usr/include/sys/iobuf.h100644 0 2 2660 3425136000 10414 /* * @(#)ioctl.h 1.3 7/17/84 Copyright Microsoft Corporation, 1983 */ #define IOCTYPE 0xff00 #define TIOC ('T'<<8) #define TCGETA (TIOC|1) #define TCSETA (TIOC|2) #define TCSETAW (TIOC|3) #define TCSETAF (TIOC|4) #define TCSBRK (TIOC|5) #define TCXONC (TIOC|6) #define TCFLSH (TIOC|7) #define TCDSET (TIOC|32) #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define tIOC ('t'<<8) #define TIOCGETD (tIOC|0) /* V7 */ #define TIOCSETD /* * @(#)iobuf.h 1.3 6/8/84 Copyright Microsoft Corporation, 1983 */ /* * Each block device has a iobuf, which contains private state stuff * and 2 list heads: the b_forw/b_back list, which is doubly linked * and has all the buffers currently associated with that major * device; and the d_actf/d_actl list, which is private to the * device but in fact is always used for the head and tail * of the I/O queue for the device. * Various routines in bio.c look at b_forw/b_back * (notice they are the sam (tIOC|1) /* V7 */ #define TIOCHPCL (tIOC|2) /* V7 */ #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) #define TIOCSETN (tIOC|10) /* V7 */ #define TIOCEXCL (tIOC|13) /* V7 */ #define TIOCNXCL (tIOC|14) /* V7 */ #define TIOCFLUSH (tIOC|16) /* V7 */ #define TIOCSETC (tIOC|17) /* V7 */ #define TIOCGETC (tIOC|18) /* V7 */ #definee as in the buf structure) * but the rest is private to each device driver. */ struct iobuf { int b_flags; /* see buf.h */ struct buf *b_forw; /* first buffer for this dev */ struct buf *b_back; /* last buffer for this dev */ struct buf *b_actf; /* head of I/O queue */ struct buf *b_actl; /* tail of I/O queue */ dev_t b_dev; /* major+minor device name */ char b_active; /* busy flag */ char b_errcnt; /* error count (for recovery) */ paddr_t io_addr; /* physical address */ int io_s1;  TIOCBRK (tIOC|20) /* V7 */ #define TIOXESCO (tIOC|21) #define TIOXESCC (tIOC|22) #define SETMODEM (tIOC|23) #define LIOC ('l'<<8) #define LIOCGETP (LIOC|1) #define LIOCSETP (LIOC|2) #define LIOCGETS (LIOC|5) #define LIOCSETS (LIOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERR/* space for drivers to leave things */ int io_s2; /* space for drivers to leave things */ int io_s3[5]; /* pad it out to size of struct buf */ }; #define tabinit(dv,stat) {0,0,0,0,0,makedev(dv,0),0,0,0,0,0,stat,0,0} #define NDEVREG (sizeof(struct device)/sizeof(int)) #define B_ONCE 01 /* flag for once only driver operations */ #define B_TAPE 02 /* this is a magtape (no bdwrite) */ #define B_TIME 04 /* for timeout use */ count (for recovery) */ paddr_t io_addr; /* physical address */ int io_s1; S (VPM|9) #define VPMRPT (VPM|10) #define VPMTRCO (VPM|16) #define FIOCLEX (('f'<<8)|1) /* V7 */ #define FIONCLEX (('f'<<8)|2) /* V7 */ #define FIORDCHK (('f'<<8)|3) /* V7 */ IOC|6) #define DIOC ('d'<<8) #define DIOCGETC (DIOC|1) #define DIOCGETB (DIOC|2) #define DIOCSETE (DIOC|3) #define DIOCGETP (DIOC|8) /* V7 */ #define DIOCSETP (DIOC|9) /* V7 */ #define VPM ('V'<<8) #define VPMCMD (VPM|8) #define VPMERRusr/include/sys/ioctl.h100644 0 2 3347 3425136000 10425 .  usr/include/sys/iostat.h100644 0 2 3541 3425136000 10612 usr/include/sys/layout.h100644 0 2 2307 3425136000 15716 1usr/include/local/layout.h/* * @(#) iostat.h 1.1 85/01/23 * * Instrumentation * * The following cells are used by * iostat.c * systat.c * disk device drivers (optional) * * This instrumentation is very rudimentary and inflexible. * It currently allows the monitoring of up to 3 independent units: * there needs to be magic code in the device drivers to divvy up * those three into three different disks devices, three units * of one kind, or whatever. *usr/include/sys/locking.h100644 0 2 2513 3425136000 10733  * Whenever each unit is busy, its corresponding bit (01, 02, or 04) * is set in dk_busy. The driver also should accumulate the * number of transfers performed in dk_numb[unit], and * the number of words transfered in dk_wds[unit]. * * clock.c increments one cell in dk_time[] depending upon which * of the three units are active (8 possibilities) and upon * whether we're in user or system mode, niced or idle (4 choices) * * The structure of dk_time is: * */* * @(#) locking.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Flag values for locking system call (sys/sys/locking.c) */ #define  { long usermode[8], /* in user mode * long usernice[8], /* in user mode, nice priority * long sysmode [8], /* in system mode * long sysidle [8]; } /* in the idle loop * * Programs like systat and iostat can sum these numbers and * extract both disk performance data and the amount of time spent * with the cpu assigned to user, nice, or system, as well as * idle time. Note that dk_time[24+0] counts system totLK_UNLCK 0 /* unlock request */ #define LK_LOCK 1 /* lock request */ #define LK_NBLCK 2 /* non-blocking lock request */ #define LK_RLCK 3 /* read permitted only lock request */ #define LK_NBRLCK 4 /* non-blocking read only lock request */ struct locklist { /* NOTE link must be first in struct */ struct locklist *ll_link; /* link to next lock region */ int ll_flags; /* misc flags ** sleeping */ struct pally idle * time, dk_time[24+1] to dk_time[24+7] count "wasted" time: * time where the cpu was idle waiting for I/O to complete. */ struct dkstat { /* M001 */ int dk_busy; long dk_time[32]; long dk_numb[3]; long dk_wds[3]; long tk_nin; long tk_nout; } Dk; a and the amount of time spent * with the cpu assigned to user, nice, or system, as well as * idle time. Note that dk_time[24+0] counts system tot/  roc *ll_proc; /* process which owns region */ off_t ll_start; /* starting offset */ off_t ll_end; /* ending offset, zero is eof */ }; extern struct locklist locklist[]; /* The lock table itself */ /* ll_flags */ #define LROLOCK 01 /* record is locked & is read only */ TE link must be first in struct */ struct locklist *ll_link; /* link to next lock region */ int ll_flags; /* misc flags ** sleeping */ struct p/* * @(#)mems.h 1.2 9/14/84 */ #define NMEMDEV 9 struct mems { caddr_t ma_base; unsigned ma_size; }; roprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct map { short m_size; unsigned short m_addr; }; extern structPˆP¦÷¦÷usr/include/sys/map.h100644 0 2 1044 3425136000 10060 usr/include/sys/modem.h100644 0 2 1025 3425136000 10403 /* * @(#) map.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct map { short m_size; unsigned short m_addr; }; extern struct map swapmap/* * @(#)modem.h 1.2 10/1/84 * Set and reset the CTS and DSR bits */ #define MIOBGET (('a'<<8)|0) /* get the input bits */ #define MIOBSET (('a'<<8)|1) /* set explicitly the output bits */ #define MIOMON (('a'<<8)|2) /* modem status monitering */ /* ** input bits */ #ifndef RTS #define RTS 0x08 /* request to send */ #endif #ifndef DTR #define DTR 0x02 /* data terminal ready */ #endif /* ** output bits */ #ifndef CTS #define CTS 0x40 /* clear to send */ #endif #ifndef DSR #define DSR 0x80 /* data[]; /* space for swap allocation */ Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct map { short m_size; unsigned short m_addr; }; extern struct map swapmap set ready */ #endif 10/1/84 * Set and reset the CTS and DSR bits */ #define MIOBGET (('a'<<8)|0) /* get the input bits */ #define MIOBSET (('a'<<8)|1) /* set explicitly the output bits */ #define MIOMON (('a'<<8)|2) /* modem status monitering */ /* ** input bits */ #ifndef RTS #define RTS 0x08 /* request to send */ #endif #ifndef DTR #define DTR 0x02 /* data terminal ready */ #endif /* ** output bits */ #ifndef CTS #define CTS 0x40 /* clear to send */ #endif #ifndef DSR #define DSR 0x80 /* datausr/include/sys/mems.h100644 0 2 153 3425136000 10224 /  usr/include/sys/mount.h100644 0 2 1373 3425136000 10452 fine DLY 0100 /* * machine structure */ struct mach { char mflag; char rchan; char rcount; char xchan; char xcount; struct clist ackq; struct clist datq; struct clist disq; struct chan *chanp[128]; }; /* m flags */ #define RNEXT 01 #define MRUN 04 #define XNEXT 010 /* * trace buffer */ #define TBSIZ 100 eq; char xseq; char ackf; char xflag; char state; char time; short sum; char *ip; char *ep; }; #define WWAIT 02 #define CRUN 04 #define RWAIT 010 #define ALLOC 020 #define DIS 040 #de/* * @(#) mount.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Mount structure. * One allocated on every mount. */ struct mount { intusr/include/sys/mx.h100644 0 2 4110 3425136000 7724  m_flags; /* status */ dev_t m_dev; /* device mounted */ struct inode *m_inodp; /* pointer to mounted on inode */ struct buf *m_bufp; /* buffer for super block */ }; #define MFREE 0 #define MINUSE 1 #define MINTER 2 extern struct mount mount[]; H IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Mount structure. * One allocated on every mount. */ struct mount { int/* * @(#) mx.h 1.1 85/01/23 */ #define NGROUPS 10 /* number of mpx files permitted at one time */ #define NCHANS 20 /* number of channel structures */ #define NPORTS 30 /* number of channels to i/o ports */ #define CNTLSIZ 10 #define NLEVELS 4 #define NMSIZE 50 /* max size of mxlstn file name */ /* * header returned on read of mpx */ struct rh { short index; short count; short ccount; }; /* * head expected on write of mpx */ struct wh { short index; short count; short ccount; char *dausr/include/sys/mpx.h100644 0 2 1501 3425136000 10105 ta; }; struct mx_args { char *m_name; int m_cmd; int m_arg[3]; }; #ifdef KERNEL /* * internal structure for channel */ struct chan { short c_flags; char c_index; char c_line; struct group *c_group; struct file *c_fy; struct tty *c_ttyp; struct clist c_ctlx; int c_pgrp; struct tty *c_ottyp; char c_oline; union { struct clist datq; } cx; union { struct clist datq; struct chan *c_chan; } cy; struct clist c_ctly; }; struct schan { short c_flags; char c_index; char c_line; stru/* * @(#) mpx.h 1.1 85/01/23 */ #define M 3 #define C 100 /* * character Q structure */ struct clist { short c_cc; int c_cf; int c_cl; }; struct chan { char cflag; char m, c; struct chan *dest; struct clist ioq; }; /* c flags */ #define BLOCK 01 struct line { char xbuf[24+2]; char rbuf[100+2]; char rseq; char xseq; char ackf; char xflag; char state; char time; short sum; char *ip; char *ep; }; #define WWAIT 02 #define CRUN 04 #define RWAIT 010 #define ALLOC 020 #define DIS 040 #de0  ct group *c_group; struct file *c_fy; struct tty *c_ttyp; struct clist c_ctlx; int c_pgrp; }; /* * flags */ #define INUSE 01 #define COPEN 02 #define XGRP 04 #define YGRP 010 #define WCLOSE 020 #define ISGRP 0100 #define BLOCK 0200 #define EOTMARK 0400 #define SIGBLK 01000 #define BLKMSG 01000 #define ENAMSG 02000 #define WFLUSH 04000 #define NMBUF 010000 #define PORT 020000 #define ALT 040000 #endif /* * mpxchan command codes */ #define MPX 5 #define MPXN 6 #define CHAN 1 #define JOIN 2 #defineoll response */ #define FILEBUSY (short)20 /* File busy response - server to work station */ #define FILEABORT (short)21 /* File abort request - work station to server */ #define FILEDEAD (short)22 /* Fileserver dead response */ #define RUNREQ (short)24 /* Run request - formerfl REMINREQ */ #define RUNRESP (short)25 /* Run response - formerly REMOUTREQ */ #define BOOTREQ (short)28 /* Boot request packet */ #define BOOTRESP (short)29 /* Boot response packet */ #define PCREQ (short)30 /* P EXTR 3 #define ATTACH 4 #define CONNECT 7 #define DETACH 8 #define DISCON 9 #define MXDEBUG 10 #define NPGRP 11 #define CSIG 12 #define PACK 13 #define DEBUG 10 #define NDEBUGS 30 /* * control channel message codes */ #define M_WATCH 1 #define M_CLOSE 2 #define M_EOT 3 #define M_OPEN 4 #define M_BLK 5 #define M_UBLK 6 #define DO_BLK 7 #define DO_UBLK 8 #define M_IOCTL 12 #define M_SIG 14 /* * debug codes other than mpxchan cmds */ #define MCCLOSE 29 #define MCOPEN 28 #define ALL 27 #define SCON 26 #C file server request */ #define PCRESP (short)31 /* PC file server response */ /* Protocol parameters */ #define MAXRETRY 2 /* normal retry count, before giving up */ #define TPS 20 /* ticks per second (same as HZ in param.h) */ #define NSTIMEOUT 7 /* min seconds for normal response */ #define NS0TIMEOUT 11 /* seconds for first socket 0 response */ #define RCVTIMEOUT 10 /* seconds for receive packet before discarding */ #define POLLTIMEOUT 2 /* seconds for poll response */ #define POLLFREQ define MSREAD 25 #define SDATA 24 #define MCREAD 23 #define MCWRITE 22 ON 9 #define MXDEBUG 10 #define NPGRP 11 #define CSIG 12 #define PACK 13 #define DEBUG 10 #define NDEBUGS 30 /* * control channel message codes */ #define M_WATCH 1 #define M_CLOSE 2 #define M_EOT 3 #define M_OPEN 4 #define M_BLK 5 #define M_UBLK 6 #define DO_BLK 7 #define DO_UBLK 8 #define M_IOCTL 12 #define M_SIG 14 /* * debug codes other than mpxchan cmds */ #define MCCLOSE 29 #define MCOPEN 28 #define ALL 27 #define SCON 26 # 60 /* polling frequency */ #define RECLIM 540 /* maximum packet size, excluding protocol layers */ /* Ioctl parameters for /dev/nsnet (called only by serverdaemon) */ #define SETMYHOST 11 /* set my host name and address */ #define SETHOST 12 /* set other host name and address */ #define SETDRIVER 13 /* initialize a network driver */ #define SETDAEMONPID 14 /* give kernel the server daemon process id */ #define GETERRINFO 15 /* get error information */ #define GETVERNUM 16 /* get version information */usr/include/sys/net.h100644 0 2 16676 3425136000 10132  /* Ioctl parameters for /dev/nsnet (called only by netstat) */ #define SETONHOST 7 /* turn host on (i.e., it's accessible) */ #define SETOFFHOST 8 /* turn host off (i.e., it's not accessible) */ #define STATHOST 9 /* get host table entry */ /* Block pointer template */ struct segment { int so_active; int so_length; int so_segment; /* 0 kernel data, 1 user data */ char *so_offset; }; /* Packet exchange protocol header template */ struct nshead { short ns_chksum; short ns_length; char ns_control/* * @(#)net.h 1.8 10/23/84 */ #ifdef lint #define VOID _VOID = (int) int _VOID; #else #define VOID (int) #endif #define NETSUCC 0 /* NSproto success (REQUEST-RESPONSE exchange OK) */ #define NETFAIL 1 /* NSproto failure */ /* Client-type for packet exchange protocol */ #define FILEREQ (short)16 /* File request - work station to file server */ #define FILERESP (short)17 /* File response - file server to work station */ #define POLLREQ (short)18 /* Poll request */ #define POLLRESP (short)19 /* P0  ; char ns_type; long ns_dstnet; char ns_dsthost[6]; short ns_dstsock; long ns_srcnet; char ns_srchost[6]; short ns_srcsock; long ns_tranid; short ns_client; }; /* Packet parameter template (items passed to/from NS read/write drivers */ struct packparam { int pck_hostid; /* src if receiving, dst if sending */ short pck_socket; /* src id receiving, dst if sending */ long pck_tranid; short pck_client; int pck_length; }; #define LIMTRAN 4 /* limit of un-responded requests */ #ifdef LIMHOST #ee packet */ #define BADHOST 87 /* rcv unknown host */ #define NOSERVER 88 /* rcv unknown socket (i.e., process) */ #define NORBUFS 89 /* no rcv buffers available */ #define FAILRESP 91 /* timeout - retry limit reached */ #define NOXNET 92 /* can't xmit - net disabled */ /* Error in sysn.c and net.c */ #define EXITERR 90 /* connection open when exiting process */ #define BADMAP 93 /* illegal network permission map */ #define MISCERR 94 /* misc error */ /* Errors in anet.c */ #define TXDEFER 100 /*lse #define LIMHOST 30 /* limit of systems on the network */ #endif #define LIMDRIVER 2 /* limit of network drivers on a system */ #define RS422A 0 /* Use RS422 on the Z80 */ #define RS422B 1 /* Use RS422 on the 186 */ /* Transaction status - legal transitions are: PENDING -> [BUSY -> PENDING ->] ... [FAILURE -> PENDING ->] ... SUCCESS -> DONE */ #define TRANPENDING 1 /* request sent, no answer yet */ #define TRANSUCCESS 2 /* response received, it matches */ #define TRANFAILURE 3 /* bad respon defer too much */ #define TXFAIL 101 /* transmitter failure */ #define TXUNDER 102 /* transmitter unknown */ #define RXLOST 103 /* receive packets lost */ #define RXCRCERR 104 /* receive CRC error */ #define RXOVRERR 105 /* receive overrun error */ #define RXUNKNOWN 106 /* receive unknown packet type */ /* * flags for u_netflag */ #define N_RTREF 0x01 /* root reference */ #define N_ATREF 0x02 /* super root reference */ #define N_SLREF 0x04 /* symbolic link reference */ /* * network commands and se, or no response due to timeout*/ #define TRANDONE 4 /* transaction completed, entry can be re-used */ #define TRANBUSY 5 /* BUSY response received */ #define TRANABORT 6 /* transaction aborted by remote system */ /* Transaction table template */ struct transact { int tr_dsthostid; /* remote host id */ short tr_dstsock; /* dest socket */ short tr_srcsock; /* source socket */ long tr_tranid; /* unique transaction identifier */ int tr_status; /* pending, success, failure, done */ struct sesystem calls */ #define NETBOOT 1 #define NETOPEN 2 #define NETCREAT 3 #define NETWRITE 4 #define NETREAD 5 #define NETCLOSE 6 #define NETLSEEK 7 #define NETFSTAT 8 #define NETSTAT 9 #define NETEXIT 10 #define NETFORK 11 #define NETUMASK 12 #define NETCHDIR 13 #define NETCHOWN 14 #define NETCHMOD 15 #define NETACCESS 16 #define NETUNLINK 17 #define NETLINK 18 #define NETUTIME 19 #define NETLOCKF 20 #define NETMKNOD 21 #define NETIOCTL 22 #define NETIDSET 23 #define NETRDCHK 24 #define NETOPREXEC 25 gment tr_res; /* response goes here */ }; extern struct transact transact[]; #define VDUHOSTID 0x00 #define BRDHOSTID 0xFF /* Host table template */ struct host { char ho_addr[6]; /* address of host */ long ho_net; /* network of host */ int ho_type; /* driver of next host */ char ho_next[6]; /* address of next host */ int ho_flags; /* status of host */ }; extern struct host host[]; /* Network boot info structure */ struct netinfo { char neti_name[14]; int neti_addr; /* Altos address of host */ #define NETCLREXEC 26 #define NETTRUNC 27 #define NETRDEQEX 28 #define NETSYMLN 29 #define NETREADLN 30 #define NETFCNTL 31 #define NETSRENV 32 #define NETINIT 99 #define NETDOPEN 50 #define NETDCLOSE 51 #define NETDREAD 52 #define NETDWRITE 53 #define NETSIG 64 #define PCCREATE 128 /* IBM PC requests ... */ #define PCREMOVE 129 #define PCATTACH 130 #define PCDETACH 131 #define PCREAD 132 #define PCWRITE 133 #define PCSELECT 134 #define PCSPOOL 135 #define PCFLUSH 136 #define PCPASSWD 137 /* * ne}; extern struct netinfo netinfo[]; #define NF_ONLINE 0x01 /* on line bit */ #define NF_PC 0x02 /* PC system bit */ /* * Errors in kernel */ /* Errors in nsnet.c */ #define TRANFULL 80 /* transaction table full */ #define NORESP 81 /* timeout - no response */ #define DISCARD 82 /* timeout - rcv packet discarded */ #define NOXBUFS 83 /* no xmit buffers available */ #define BADLEN 84 /* rcv bad packet length */ #define CHKERR 85 /* rcv checksum error */ #define BADRESP 86 /* rcv unknown NS respons1  twork abort signal packet */ struct netsig { int nsig_cmd; int nsig_num; }; /* * network virtual disk stuff */ #define FSSIZE ((long)50 * 1024) /* file system size */ #define NDSIZE ((long)400 * 1024) /* network disk size */ /* * misc constants */ #define MAXNETPATH 64 #define DEVTTY makedev(1,0) /* device for /dev/tty */ #define TTYHOST -1 /* fake host for remote /dev/tty */ #define TTYFD 19 /* file desc for remote /dev/tty */ e PCSPOOL 135 #define PCFLUSH 136 #define PCPASSWD 137 /* * ne; /* input buffer status */ short p_osum[8]; /* output checksums */ short p_isum[8]; /* input checksums */ DSYSTEM; }; #define CHECK 0125252 #define SYN 020 #define MOD8 7 #define ISCNTL(a) ((a & 0300)==0) #define NOTCNTL(a) (a & 0300) #define MIN(a,b) ((at_linep) #define TURNOFF pkturnoff(tp) #define UCOUNT u.u_count #define S tp #define P pk->p_ttyp #define SDEF struct tty *tp #define FS , tp #define SIGNAL signal(pk->p_ttyp->t_pgrp, SIGPIPE) #define TERROR pk->p_istate == R_ERROR #define SETERROR u.u_error = EIO #define OBUSY tp->t_state&BUSY #define ODEAD ((tp->t_state&CARR_ON)==0) char *getepack(); #define GETEPACK getepack(pk->p_bits) /* * @(#) prim.h 1.1 85/01/23 */ #define NOSLEEP 0400 #define FORCE 01000 #define NORM 02000 #define KEEP 04000 #define CLR 010000 short bwaiting,wcount; char *getepack(); , f, s) { extern Debug; if (Debug >= l) fprintf(stderr, f, s);} #define PKASSERT(e, f, v) if (!(e)) {\ fprintf(stderr, "AERROR - (%s) ", "e");\ fprintf(stderr, f, v);\ pkfail();}; #endif pk, ibuf, icount #define SDEF int icount; char *ibuf; struct pack *ipk #define UCOUNT icount #define IOMOVE(p, c, f) pkmove(p, ibuf, cPˆP¦÷¦÷#define FREEPACK(a,b) freepack(a, b) #define q1 tp->t_rawq #define q2 tp->t_canq #define q3 tp->t_outq #define LOCK s = spl6() #define UNLOCK splx(s) #define DSYSTEM struct tty *p_ttyp #define ISYSTEM tp = pk->p_ttyp #define SLEEP(a, b) sleep((caddr_t)a, b) #define SLEEPNO (tp->t_chan!=NULL) #define WAKEUP(a) wakeup((caddr_t)a) #define IOMOVE(p, c, f) iomove(p, c, f) #define PKGETPKT(p) #define DTOM(a) dtom(a) #include "../h/param.h" #include "../h/dir.h" #include "../h/user.h" #include "../h/pk.h"usr/include/sys/proc.h100644 0 2 6037 3425136000 10255  #include "../h/tty.h" #include "../h/buf.h" #include "../h/proc.h" #endif /* * user level */ #ifdef USER #define SLEEP(a, b) #define SIGNAL #define WAKEUP(a) #define DSYSTEM int p_ifn, p_ofn #define ISYSTEM #define GETEPACK malloc(pk->p_xsize) #define FREEPACK(a, b) free(a) #define OBUSY 0 #define PKGETPKT(p) pkgetpack(p); #define DTOM(a) 1; #define S ipk, ibuf, icount #define SDEF int icount; char *ibuf; struct pack *ipk #define UCOUNT icount #define IOMOVE(p, c, f) pkmove(p, ibuf, c, f) ; ibuf /* * @(#)proc.h 1.3 7/17/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * One structure allocated per active process. It contains all data needed * about the process while the process may be swapped out. * Other per process data (user.h) is swapped with the process. */ struct proc { char p_stat; char p_flag; char p_pri; /* priority, negative is high */ char p_time; /*+= c; UCOUNT -= c #define PADDR ipk #define TURNOFF #define LOCK #define UNLOCK #define SETERROR #define GENERROR(p, s) #define PACKSIZE 64 #define WINDOWS 3 #define PKDEBUG(l, f, s) { extern Debug; if (Debug >= l) fprintf(stderr, f, s);} #define PKASSERT(e, f, v) if (!(e)) {\ fprintf(stderr, "AERROR - (%s) ", "e");\ fprintf(stderr, f, v);\ pkfail();}; #endif pk, ibuf, icount #define SDEF int icount; char *ibuf; struct pack *ipk #define UCOUNT icount #define IOMOVE(p, c, f) pkmove(p, ibuf, c, f) ; ibuf  resident time for scheduling */ char p_cpu; /* cpu usage for scheduling */ char p_nice; /* nice for cpu usage */ long p_sig; /* signals pending to this process */ ushort p_uid; /* real user id */ short p_pgrp; /* name of process group leader */ short p_pid; /* unique process id */ short p_ppid; /* process id of parent */ union { unsigned short p_daddr; /* block number of u on swap */ mloc_t p_caddr; /* location of USIZE region in core */ } p_addr; msize_t p_size; /* size of swausr/include/sys/prim.h100644 0 2 261 3425136000 10232 2  ppable image (clicks) */ mloc_t p_xaddr; /* page addr of extra data */ msize_t p_xsize; /* size of extra data in pages */ caddr_t p_wchan; /* event process is awaiting */ struct text *p_textp; /* pointer to text structure */ struct proc *p_link; /* linked list of running processes */ int p_clktim; /* time to alarm clock signal */ /* machine dependent section */ char p_pnum; /* process number */ char p_cflags; /* contiguous memory flags */ short p_dusize; /* data+U siusr/include/sys/reg.h100644 0 2 2217 3425136000 10063 ze, to find last data page */ }; extern struct proc proc[]; /* the proc table itself */ /* stat codes */ #define SSLEEP 1 /* awaiting an event */ #define SWAIT 2 /* (abandoned state) */ #define SRUN 3 /* running */ #define SIDL 4 /* intermediate state in process creation */ #define SZOMB 5 /* intermediate state in process termination */ #define SSTOP 6 /* process being traced */ /* flag codes */ #define SLOAD 01 /* in core */ #define SSYS 02 /* scheduling process */ #define SLOCK 04 /* process c/* * @(#)reg.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Index of the users' stored * registers relative to AX. * Usage is u.u_aAX[XX]. * EVERYTHING HERE IS DEPENDENT ON trap: in mch.s and trap.c * AND THE HARDWARE */ #define URFLAG 12 /* these guys are in the user data space, */ #define URCS 10 /* and are read by fuword(u.u_aAX[RSP] + annot be swapped */ #define SSWAP 010 /* process is being swapped out */ #define STRC 020 /* process is being traced */ #define SWTED 040 /* another tracing flag */ #define STEXT 0100 /* text pointer valid */ #define SULOCK 0200 /* user lock process in core */ /* contiguity flags */ #define SCSTACK 01 #define SCDATA 02 #define SCWANT 04 /* * parallel proc structure * to replace part with times * to be passed to parent process * in ZOMBIE state. */ struct xproc { char xp_stat; char xp_flag; chURxx) */ #define URIP 8 #define URVEC 6 #define URBP 4 #define URES 2 #define URDX 0 #define RSP 8 #define USP 8 #define RSS 7 #define RDS 5 #define RDI 4 #define RSI 3 #define RCX 2 #define RBX 1 #define RAX 0 #define Rstate -1 /* user/system mode, trap # */ #define Rilev -2 /* interrupted procedure level */ #define CBIT 0x001 /* 8086 'C' bit in flags */ #define ZBIT 0x040 /* 8086 'Z' bit iar xp_pri; /* priority, negative is high */ char xp_time; /* resident time for scheduling */ char xp_cpu; /* cpu usage for scheduling */ char xp_nice; /* nice for cpu usage */ long xp_sig; /* signals pending to this process */ ushort xp_uid; /* real user id */ short xp_pgrp; /* name of process group leader */ short xp_pid; /* unique process id */ short xp_ppid; /* process id of parent */ short xp_xstat; /* Exit status for wait */ time_t xp_utime; /* user time, this proc */ time_t xp_stime; /n flags */ #define TBIT 0x100 /* 8086 trace bit in 'flags' */ #define IBIT 0x200 /* 8086 interrupt enable bit */ define RSS 7 #define RDS 5 #define RDI 4 #define RSI 3 #define RCX 2 #define RBX 1 #define RAX 0 #define Rstate -1 /* user/system mode, trap # */ #define Rilev -2 /* interrupted procedure level */ #define CBIT 0x001 /* 8086 'C' bit in flags */ #define ZBIT 0x040 /* 8086 'Z' bit i* system time, this proc */ }; ve is high */ char xp_time; /* resident time for scheduling */ char xp_cpu; /* cpu usage for scheduling */ char xp_nice; /* nice for cpu usage */ long xp_sig; /* signals pending to this process */ ushort xp_uid; /* real user id */ short xp_pgrp; /* name of process group leader */ short xp_pid; /* unique process id */ short xp_ppid; /* process id of parent */ short xp_xstat; /* Exit status for wait */ time_t xp_utime; /* user time, this proc */ time_t xp_stime; /2  usr/include/sys/relsym.h100644 0 2 7371 3425136000 10627 c000 #define RD_BYTE 0x0000 #define RD_WORD 0x1000 #define RD_LONG 0x2000 #define RD_SIZE 0x3000 #define RD_DISP 0x0800 /* * Relocation table entry for x.out, short form. * This form is normally attached to executable files. */ struct xreloc { long xr_cmd; /* reloc command */ }; /* * Definitions for xreloc.xr_cmd (long). * * c set if code segment * l set if long operand * oooooooooooooooooooooooooooooo offset */ #/* * @(#) relsym.h 1.1 85/01/23 * * - Declarations for symbol table * and relocation record structures. * * Copyright (C) Microsoft Corporation, 1982 */ /* * Symbol table for x.out. * Each symbol in the table has the below structure, followed * immediately by its name in the form of a null terminated string. * No effort is made to word align subsequent "sym" structures in * the symbol table. The contents of the s_seg field is defined * for XS_SXSEG symbols only. For XR_S86Adefine XR_CODE 0x80000000 /* code/data segment */ #define XR_LONG 0x40000000 /* long/short operand */ #define XR_OFFS 0x3fffffff /* 30 bit offset mask */ /* * All of the following are provided for compatibility only. */ struct asym { /* a.out, modified from struct nlist */ char sa_name[8]; /* symbol name */ unsigned short sa_type; /* type flag */ unsigned short sa_value; /* value */ }; /* Definitions for asym.sa_type and nlist.n_type. */ #define N_UNDF 0 /* undefined */ #define N_ABS 01 BS symbols, the segment * is stored in the high 16 bits of the s_value field, and the offset * in the low 16 bits. */ struct sym { /* symbol management */ unsigned short s_type; /* type */ unsigned short s_seg; /* file segment table index */ long s_value; /* address or value */ }; #define SYMLENGTH 50 /* max symbol name length */ /* * Definitions for sym.s_type: * * xxxxxxxxxx extra * e external * ttttt type */ #define S_UNDEF 0x0000 #defi/* absolute */ #define N_TEXT 02 /* text symbol */ #define N_DATA 03 /* data symbol */ #define N_BSS 04 /* bss symbol */ #define N_TYPE 037 #define N_REG 024 /* register name */ #define N_FN 037 /* file name symbol */ #define N_EXT 040 /* external bit, or'ed in */ struct bsym { /* b.out, non-portable version of x.out */ char sb_type; /* use definitions for sym.s_type */ long sb_value; }; /* * Definitions for reloc.r_desc, compatible with bitfield * allocation from the low end of a word (pdp11)ne S_ABS 0x0001 #define S_TEXT 0x0002 #define S_DATA 0x0003 #define S_BSS 0x0004 #define S_COMM 0x0005 /* for internal use only */ #define S_REG 0x0006 #define S_COMB 0x0007 /* for internal use only */ #define S_SEG 0x0008 /* segment name */ #define S_FN 0x001f #define S_TYPE 0x001f /* mask */ #define S_EXTERN 0x0020 #define FORMAT "%08lx" /* symbol value format */ #define FWIDTH 8 /* symbol value width */ /* * Relocation table entry for x.out, long form. * This form is normally attached t. */ #define RD_BTEXT 0x0000 #define RD_BDATA 0x0001 #define RD_BBSS 0x0002 #define RD_BEXT 0x0003 #define RD_BSEG 0x0003 #define RD_BBYTE 0x0000 #define RD_BWORD 0x0004 #define RD_BLONG 0x0008 #define RD_BSIZE 0x000c #define RD_BDISP 0x0010 it, or'ed in */ struct bsym { /* b.out, non-portable version of x.out */ char sb_type; /* use definitions for sym.s_type */ long sb_value; }; /* * Definitions for reloc.r_desc, compatible with bitfield * allocation from the low end of a word (pdp11)o ".o" files. */ struct reloc { unsigned short r_desc; /* descriptor */ unsigned short r_symbol; /* symbol id for external reloc */ long r_pos; /* position of reloc in segment */ }; /* * Definitions for reloc.r_desc (short). * * ss segment * ss size * d displacement * xxx extra * xxxxxxxx extra */ #define RD_TEXT 0x0000 #define RD_DATA 0x4000 #define RD_BSS 0x8000 #define RD_EXT 0xc000 #define RD_SEG 0x3  usr/include/sys/relsym86.h100644 0 2 20654 3425136000 11024 /* public definition */ #define MLOCSYM 0x92 /* local symbols */ #define MLINNUM 0x94 /* source line number */ #define MLNAMES 0x96 /* name list record */ #define MSEGDEF 0x98 /* segment definition */ #define MGRPDEF 0x9a /* group definition */ #define MFIXUPP 0x9c /* fix up previous data image */ #define MNONE1 0x9e /* none */ #define MLEDATA 0xa0 /* logical data image */ #define MLIDATA 0xa2 /* logical repeated (iterated) data image */ #define MLIBHED 0xa4 /* library header */ #define MLIBNAM 0xa6 /* libr/* * @(#) relsym86.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE SPECIFIC TO THE INTEL CPUS. * IT MAY REQUIRE MODIFICATION WHEN MOVING XENIX TO * DIFFERENT MACHINE ARCHITECTURES OR CONFIGURATIONS. */ /* * - Declarations for 8086/80286 symbol * table and relocation record structures. */ /* * Combined sary names record */ #define MLIBLOC 0xa8 /* library module locations */ #define MLIBDIC 0xaa /* library dictionary */ #define MLIBHDR 0xf0 /* library header */ #define MLIBDHD 0xf1 /* library dictionary header */ /* * The maximum length of an identifier. */ #define NAMELENGTH 40 /* * Defines for segment descriptor. */ /* type of alignment required */ #define SD_ABS 0x00 /* absolute */ #define SD_BYTE 0x20 /* byte */ #define SD_WORD 0x40 /* word */ #define SD_PARA 0x60 /* paragraph */ #defymbol and relocation for relocatable files, * (XR_R86REL | XR_S86REL). * * This format is a series of distinct records. Each record * is made up of: * 1) 1 byte record type * 2) 2 byte record length (low byte first) * 3) record contents * 4) 1 byte checksum * * The record length is the number of bytes in 3 & 4. * When ALL of the bytes in the record are summed, the * the low byte of the result should be zero. * The record contents depend on the record type. * Records containing symbol namine SD_PAGE 0x80 /* page */ #define SD_ALIGN 0xe0 /* segment alignment mask */ #define SD_ASHIFT 5 /* align. shift */ /* ways in which segments can be combined */ #define SD_PRIV 0x00 /* private, can't be combined */ #define SD_SEP 0x00 /* old name for the same field */ #define SD_HCOMM 0x04 /* common, place in high mem */ #define SD_HIMEM 0x04 /* old name for the same field */ #define SD_PUBLIC 0x08 /* public, sequential */ #define SD_SEQ 0x08 /* old name for the same field */ #des have a one byte name * length followed by the name itself. The name is not * terminated by a special character. */ /* * Defines for record type: */ #define MRHEADR 0x6e /* rel module header */ #define MREGINT 0x70 /* register initialization */ #define MREDATA 0x72 /* explicit (enumerated) data image */ #define MRIDATA 0x74 /* repeated (iterated) data image */ #define MOVLDEF 0x76 /* overlay definition */ #define MENDREC 0x78 /* block or overlay end record */ #define MBLKDEF 0x7a /* block definitiefine SD_BAD 0x0c /* undefined */ #define SD_C4 0x10 /* not used */ #define SD_STACK 0x14 /* stack segment */ #define SD_C5 0x14 /* old name for the same field */ #define SD_COMM 0x18 /* common segment */ #define SD_RCOMM 0x1c /* not used, reverse common segment */ #define SD_COMBO 0x1c /* combination mask */ #define SD_CSHIFT 2 /* comb. shift */ #define SD_PGRES 0x01 /* page resident */ #define SD_64K 0x02 /* segment size is exactly 64k */ /* definitions for C common MTYPDEF records on */ #define MBLKEND 0x7c /* block end */ #define MDEBSYM 0x7e /* debug symbols */ #define MTHEADR 0x80 /* module header, usually first in a rel file */ #define MLHEADR 0x82 /* link module header */ #define MPEDATA 0x84 /* absolute data image */ #define MPIDATA 0x86 /* absolute repeated (iterated) data image */ #define MCOMENT 0x88 /* comment record */ #define MMODEND 0x8a /* module end record */ #define MEXTDEF 0x8c /* external definition */ #define MTYPDEF 0x8e /* type definition */ #define MPUBDEF 0x90 3  */ #define TD_CNEAR 0x62 /* near .comm variable */ #define TD_CFAR 0x61 /* far .comm variable */ /* for DOS support */ #define DOSMAGIC 0x5a4d /* DOS executable magic number */ struct dosexec { unsigned short dx_magic; /* magic number */ unsigned short dx_pagrem; /* image length mod 512 */ unsigned short dx_npages; /* file size in 512 byte pages */ unsigned short dx_nreloc; /* # of reloc items */ unsigned short dx_hsize; /* header size in 16 byte paragraphs */ unsigned short dx_minpar; /* min  x.out header; it returns the * size of actual relocation records in an object file, * compensating for any padding. */ #define SRELMSK ((long) (sizeof(struct srel86) - 1)) /* 2^n-1 */ #define SRELPOS(xp) ((XRELPOS(xp) + SRELMSK) & ~SRELMSK) #define SRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & SRELMSK)) #define SRELSIZE(x) ((long) x & ~SRELMSK) /* * LDT descsriptor table information for executable files, XR_R286ABS. */ /* * descriptor table structure */ struct desctab { unsigned short d_lipar's above end of image */ unsigned short dx_maxpar; /* max par's above end of image */ unsigned short dx_stkoff; /* offset of stack (in segment form) */ unsigned short dx_initsp; /* initial sp */ unsigned short dx_chksum; /* file check sum */ unsigned short dx_initip; /* initial ip */ unsigned short dx_textoff; /* offset of code (in segment form) */ unsigned short dx_reloff; /* offset of first reloc item */ unsigned short dx_ovly; /* overlay number */ }; /* * Relocation for executable files, mit; /* offset of last byte in segment */ unsigned short d_loaddr; /* low word of physical address */ char d_hiaddr; /* high byte of physical address */ char d_acc; /* access control byte */ short d_sw; /* software defined word, unused */ }; #define DSA_PRESENT 0x80 /* present */ #define DSA_PRIV 0x60 /* priviledge level mask */ #define DSA_VALID 0x10 /* segment valid (else control descr) */ #define DSA_EXEC 0x08 /* executable */ #define DSA_TCONF 0x04 /* if text, conforming */ #define DSA_DXR_R86ABS. * * This relocation must be attached to middle and large * model executables to be run on an 8086. Relocation is * performed on all segment references when the file is * loaded into memory. * * This relocation must start on an even sizeof(struct srel86) * boundary. The size of this structure MUST BE an even * power of 2. In order to accomplish the padding, the * appropriate number of null bytes should be written at the * start of the relocation, and the relocation size in the * heEDOWN DSA_TCONF /* if data, expand down */ #define DSA_TREAD 0x02 /* if text, readable */ #define DSA_DWRITE DSA_TREAD /* if data, writeable */ #define DSA_ACCESSED 0x01 /* has been accessed */ #define DSA_TYPE 0x1f /* descr type field mask */ #define DSA_RING3 DSA_PRIV /* all bits on */ #define DSA_CODE (DSA_PRESENT|DSA_VALID|DSA_EXEC|DSA_TREAD) /* 9a, text acc */ #define DSA_DATA (DSA_PRESENT|DSA_VALID|DSA_DWRITE) /* 92, data acc */ /* * parts of a selector */ #define SEL_INDEX 0xfff8 /ader bumped up to reflect the padding. */ struct srel86 { char srtyp; /* type of segment relocation */ char srhib; /* high byte of reloc address */ unsigned short srlow; /* low word of reloc address */ }; /* * Defines for srel86.srtyp */ #define R86_CTC 0 /* code reference to code */ #define R86_CTD 1 /* code reference to data */ #define R86_DTC 2 /* data reference to code */ #define R86_DTD 3 /* data reference to data */ /* * Macros applicable to XR_R86ABS relocation padding: * * SRELP* index into table */ #define SEL_LDT 0x0004 /* set if ldt, else gdt */ #define SEL_PRIV 0x0003 /* requested priv level */ #define SEL_RING3 SEL_PRIV /* all bits on */ #define DRELMSK (sizeof(struct desctab) - 1) /* 2^n-1 */ #define DRELPOS(xp) ((XRELPOS(xp) + (long) DRELMSK) & ~((long) DRELMSK)) #define DRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & (long) DRELMSK)) #define DRELSIZE(x) ((long) x & ~((long) DRELMSK)) /* 92, data acc */ /* * parts of a selector */ #define SEL_INDEX 0xfff8 /OS() must be given a pointer to an x.out header; * it returns the seek position of the first relocation * structure in an object file, skipping any padding. * SRELPAD() is also given an x.out header pointer; it * returns the number of bytes of padding required * to properly align the relocation records. The * x_reloc field in the header is not used in the * computation; it need not be accurate. * SRELSIZE() should be given a long value, usually the * x_reloc field of an4  usr/include/sys/sd.h100644 0 2 304 3425136000 7667 usr/include/sys/stat.h100644 0 2 4111 3425136000 10254 /* * @(#)sd.h 1.2 7/6/84 Copyright Microsoft Corporation, 1983 */ /* Shared Data flags */ #define SD_RDONLY 0 #define SD_WRITE 01 #define SD_CREAT 02 #define SD_UNLOCK 04 #define SD_NOWAIT 010 of(struct desctab) - 1) /* 2^n-1 */ #define DRELPOS(xp) ((XRELPOS(xp) + (long) DRELMSK) & ~((long) DRELMSK)) #define DRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & (long) DRELMSK)) #define DRELSIZE(x) ((long) x & ~((long) DRELMSK)) /* 92, data acc */ /* * parts of a selector */ #define SEL_INDPˆP¦÷¦÷/* * @(#) stat.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /*** stat.h * * MODIFICATION HISTORY * M000 14 Apr 83 andyp * - 3.0 upgrade.usr/include/sys/sites.h100644 0 2 453 3425136000 10415  (uncommented). Dropped multiplexed file stuff. * Added semaphores. Added comments. st_uid, st_gid changed * from short to ushort. */ /*** stat -- structure returned by stat, fstat system calls. * */ struct stat { /* see stat(2) */ dev_t st_dev; /* id of device containing directory entry */ ino_t st_ino; /* inode number */ ushort st_mode; /* file mode, see mknod(2) */ short st_nlink; /* # of links */ ushort st_uid; /* owner uid */ ushort st_gid; /* owner gid */ dev_t st_rdev; /* id o/* * @(#)sites.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 */ /* * Each XENIX licensee is assigned specific info., related to the port */ #define SYSNAME "XENIX" #define NODE "" #define RELEASE "3.0" #define VERSION "?" #define ORIGIN 0 #define OEMNUMBER 0 #define SERIAL 0 ) DRELMSK)) #define DRELPAD(xp) ((int) ((~XRELPOS(xp) + 1) & (long) DRELMSK)) #define DRELSIZE(x) ((long) x & ~((long) DRELMSK)) /* 92, data acc */ /* * parts of a selector */ #define SEL_INDPˆP¦÷¦÷f device. Only defined for character * and block special files. */ off_t st_size; /* file size in bytes */ /* all times measured in seconds since 'the epoch' */ time_t st_atime; /* time of last access */ time_t st_mtime; /* time of last data modification */ time_t st_ctime; /* time of last file status 'change' */ }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special *usr/include/sys/sspare.h100644 0 2 1212 3425136000 15650 1usr/include/local/sspare.h4  / #define S_IFREG 0100000 /* regular */ #define S_IFIFO 0010000 /* fifo */ #define S_IFNAM 0050000 /* name space entry */ #define S_IFLNK 0120000 /* symbolic links */ #define S_INSEM 01 /* semaphore */ #define S_INSHD 02 /* shared memory */ #define S_ISUID 04000 /* set user id on execution */ #define S_ISGID 02000 /* set group id on execution */ #define S_ISVTX 01000 /* save swapped text even after use */ #define S_IREAD 00400 /* read permission, owner */ #define S_IWRITE 00200 /* write permissiont; PU_KERNEL 2 time_t wait[3]; #define W_IO 0 #define W_SWAP 1 #define W_PIO 2 long bread; long bwrite; long lread; long lwrite; long swapin; long swapout; long pswitch; long qswitch; long idle; long preempt; long syscall; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; }; extern struct sysinfo sysinfo; struct syswait { short iowait; short swap; short physio; }; extern struct syswait syswai, owner */ #define S_IEXEC 00100 /* execute/search permission, owner */ */ #define S_IFNAM 0050000 /* name space entry */ #define S_IFLNK 0120000 /* symbolic links */ #define S_INSEM 01 /* semaphore */ #define S_INSHD 02 /* shared memory */ #define S_ISUID 04000 /* set user id on execution */ #define S_ISGID 02000 /* set group id on execution */ #define S_ISVTX 01000 /* save swapped text even after use */ #define S_IREAD 00400 /* read permission, owner */ #define S_IWRITE 00200 /* write permissionusr/include/sys/systm.h100644 0 2 4511 3425136000 10464 usr/include/sys/sysinfo.h100644 0 2 2003 3425136000 10771 /* * @(#)systm.h 1.3 4/3/84 Copyright Microsoft Corporation, 1983 */ /* * Random set of variables used by more than one routine. */ struct inode *rootdir; /* pointer to inode of root directory */ struct inode *atdir; /* pointer to inode of @ directory AMG */ struct inode *ninode; /* dummy inode ptr for remote requests */ int numhost; /* number of network hosts on the system */ struct proc *runq; /* head of linked list of running processes */ struct proc *Hogproc; /* if non-NULL, schedule/* * @(#) sysinfo.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct sysinfo { time_t cpu[3]; #define CPU_IDLE 0 #define CPU_USER 1 #defin only this process */ short cputype; /* type of cpu */ time_t lbolt; /* time in HZ since last boot */ time_t time; /* time in sec from 1970 */ int Hz; /* configurable clock speed */ int Timezone; /* configurable timezone */ int Dstflag; /* configurable DST flag */ int mpid; /* generic for unique process id's */ char runin; /* scheduling flag */ char runout; /* scheduling flag */ char runrun; /* scheduling flag */ chae CPU_KERNEL 2 time_t wait[3]; #define W_IO 0 #define W_SWAP 1 #define W_PIO 2 long bread; long bwrite; long lread; long lwrite; long swapin; long swapout; long pswitch; long qswitch; long idle; long preempt; long syscall; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; }; extern struct sysinfo sysinfo; struct syswait { short iowait; short swap; short physio; }; extern struct syswait syswai5  r runtxt; /* scheduling flag */ char curpri; /* more scheduling */ int maxmem; /* actual max memory per process */ int Maxmem; /* configurable max memory per process */ int physmem; /* physical memory on this CPU */ daddr_t swplo; /* block number of swap space */ int nswap; /* size of swap space */ int updlock; /* lock for sync */ daddr_t rablock; /* block to be read ahead */ int Cmask; /* default creation mask */ char regloc[]; /* locsten flags */ }; extern struct text text[]; #define XTRC 01 /* Text may be written, exclusive use */ #define XWRIT 02 /* Text written into, must swap out */ #define XLOAD 04 /* Currently being read from file */ #define XLOCK 010 /* Being swapped in or out */ #define XWANT 020 /* Wanted for swapping */ #define XFPU 0100 /* text uses floating point */ inode of prototype */ char x_count; /* reference count */ char x_ccount; /* number of loaded references */ char x_flag; /* traced, writ of saved user registers (trap.c) */ short reglocc; /* size of regloc array */ dev_t rootdev; /* device of the root */ dev_t swapdev; /* swapping device */ dev_t pipedev; /* pipe device */ int blkacty; /* active block devices */ /* machine dependent part */ /* function defs */ dev_t getmdev(); daddr_t bmap(); struct inode *ialloc(); struct inode *iget(); struct inode *owner(); struct inode *maknode(); struct inode *namei(); struct buf *alloc(); struct buf *getblk(); struct buf *getabusr/include/sys/timeb.h100644 0 2 1326 3425136000 10406 lk(); struct buf *bread(); struct buf *breada(); struct filsys *getfs(); struct file *getf(); struct file *falloc(); int uchar(); /* * Structure of the system-entry table */ struct sysent { char sy_narg; /* total number of arguments */ char sy_nrarg; /* number of args in registers */ int (*sy_call)(); /* handler */ }; ap(); struct inode *ialloc(); struct inode *iget(); struct inode *owner(); struct inode *maknode(); struct inode *namei(); struct buf *alloc(); struct buf *getblk(); struct buf *getab/* * @(#) timeb.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by ftime system call */ struct timeb { time_t time;usr/include/sys/text.h100644 0 2 1564 3425136000 10276  /* time, seconds since the epoch */ unsigned short millitm;/* 1000 msec of additional accuracy */ short timezone; /* timezone, minutes west of GMT */ short dstflag; /* daylight savings when appropriate? */ }; /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by ftime system call */ struct timeb { time_t time;/* * @(#)text.h 1.1 1/31/84 Copyright Microsoft Corporation, 1983 */ /* * Text structure. * One allocated per pure procedure on swap device. * Manipulated by text.c */ struct text { short x_daddr; /* disk address of segment (relative to swplo) */ mloc_t x_caddr; /* address of text (clicks) */ short x_size; /* size (clicks) */ struct inode *x_iptr; /* inode of prototype */ char x_count; /* reference count */ char x_ccount; /* number of loaded references */ char x_flag; /* traced, writ5  usr/include/sys/times.h100644 0 2 1223 3425136000 10423 kill; short sg_flags; }; /* * List of special characters */ struct tc { char t_intrc; char t_quitc; char t_startc; char t_stopc; char t_eofc; char t_brkc; }; /* modes */ #define O_TANDEM 01 #define O_CBREAK 02 #define O_LCASE 04 #define O_ECHO 010 #define O_CRMOD 020 #define O_RAW 040 #define O_ODDP 0100 #define O_EVENP 0200 #define O_NLDELAY 001400 #define O_NL1 000400 #define O_NL2 001000 #define O_TBDELAY 005000 #define O_TAB1 001000 #define O_TAB2 004000 #define O_XTABS 006000 /***/* * @(#) times.h 1.2 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by times() */ struct tms { time_t tms_utime; /* use#define O_NOAL 004000***/ #define O_CRDELAY 030000 #define O_CR1 010000 #define O_CR2 020000 #define O_VTDELAY 040000 #define O_BSDELAY 0100000 ofc; char t_brkc; }; /* modes */ #define O_TANDEM 01 #define O_CBREAK 02 #define O_LCASE 04 #define O_ECHO 010 #define O_CRMOD 020 #define O_RAW 040 #define O_ODDP 0100 #define O_EVENP 0200 #define O_NLDELAY 001400 #define O_NL1 000400 #define O_NL2 001000 #define O_TBDELAY 005000 #define O_TAB1 001000 #define O_TAB2 004000 #define O_XTABS 006000 /***r time */ time_t tms_stime; /* system time */ time_t tms_cutime; /* user time, children */ time_t tms_cstime; /* system time, children */ }; Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure returned by times() */ struct tms { time_t tms_utime; /* useusr/include/sys/tty.h100644 0 2 6211 3425136000 10124 usr/include/sys/ttold.h100644 0 2 2222 3425136000 10430 /* * @(#)tty.h 1.5 11/29/84 Copyright Microsoft Corporation, 1983 */ #define c_cc c_ccx /* to avoid the conflict between the 2 c_cc's */ #include "termio.h" #undef c_cc /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ struct clist { int c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* * A tty structure is needed for each UNIX character/* * @(#) ttold.h 1.2 85/01/23 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * Structure for stty and gtty system calls. */ struct sgttyb { char sg_ispeed; char sg_ospeed; char sg_erase; char sg_6   device that * is used for normal terminal IO. */ struct tty { struct clist t_rawq; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct cblock *t_buf; /* buffer pointer */ int (*t_proc)(); /* routine for device functions */ ushort t_iflag; /* input modes */ ushort t_oflag; /* output modes */ ushort t_cflag; /* control modes */ ushort t_lflag; /* line discipline modes */ short t_state; /* internal state */ short t_pgrp; /* process grou1 #define T_SUSPEND 2 #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 00 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define ESC 04000 /* Last char escape */ #define RTO 010000 #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME p name */ short t_dev; /* minor device number */ char t_line; /* line discipline */ char t_delct; /* delimiter count */ char t_col; /* current column */ char t_row; /* current row */ uchar_t t_cc[NCC+2]; /* settable control chars */ }; /* * The structure of a clist block */ #ifdef ACS486 #define CLSIZE 120 #else #define CLSIZE 48 #endif struct cblock { struct cblock *c_next; char c_first; char c_last; char c_data[CLSIZE]; }; extern struct cblock cfree[]; extern struct cblock *getcb(); exteusr/include/sys/types.h100644 0 2 2462 3425136000 10454 rn struct cblock *getcf(); extern struct clist ttnulq; struct chead { struct cblock *c_next; int c_size; }; extern struct chead cfreelist; struct inter { int cnt; }; /* control characters */ /* pick up from termio.h */ /* default control chars */ /* pick up from termio.h */ #define TTIPRI 28 #define TTOPRI 29 /* limits */ extern int ttlowat[], tthiwat[]; #define TTYHOG 256 #define TTXOLO 60 #define TTXOHI 180 /* input modes */ /* pick up from termio.h */ /* output modes */ /* pick up from termi/* * @(#)types.h 1.2 3/6/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ typedef struct { int r[1]; } *physadr; typedef long daddr_t; typedef char *caddr_t; typedef unsigned short ushort; typedef unsigned short ino_t; typedef char cnt_t; typedef long time_t; typedef int label_t[6]; /* return, sp, si, di, bp */ typedef short dev_t; typedef long off_t; typedef long paddr_t; tyo.h */ /* control modes */ /* pick up from termio.h */ /* line discipline 0 modes */ /* pick up from termio.h */ /* default speed */ /* pick up from termio.h */ /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Internal state */ #define TIMEOUT 01 /* Delay timeout in progress */ #define WOPEN 02 /* Waiting for open to complete */ #define ISOPEN 04 /* Device is open */ #define TBLOCK 010 #define CARR_ON 020 /* Softwarepedef unsigned short mloc_t; /* memory region location */ typedef short msize_t; /* memory region size */ /* 8086 special types */ typedef unsigned short OFF_t; /* address offset */ typedef unsigned short SEG_t; /* address segment */ /* selectors and constructor for device code */ #define major(x) (((unsigned)(x)>>8)) #define minor(x) ((x)&0377) #define makedev(x,y) (dev_t)((x)<<8 | (y)) /* 'void' type compatibility */ #ifndef M_VOID typedef int void; #endif /* 'unsigned' type compat copy of carrier-present */ #define BUSY 040 /* Output in progress */ #define OASLP 0100 /* Wakeup when output done */ #define IASLP 0200 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define ESC 04000 /* Last char escape */ #define RTO 010000 #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME 6  ibility */ #ifdef M_OLDSIGN typedef char uchar_t; #define GETUCHAR(uc) (0xff & (uc)) /* extract value */ /* WARNING: you will lose the high bit */ typedef long ulong_t; #define GETULONG(ul) (0x7fff & (ul)) /* extract value */ #else typedef unsigned char uchar_t; typedef unsigned long ulong_t; #endif (((unsigned)(x)>>8)) #define minor(x) ((x)&0377) #define makedev(x,y) (dev_t)((x)<<8 | (y)) /* 'void' type compatibility */ #ifndef M_VOID typedef int void; #endif /* 'unsigned' type compat/* * @(#)user.h 1.7 11/29/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * The user structure. * One allocated per process. * Contains all per process data that doesn't need to be referenced * while the process is swapped. * The user block is USIZE*click bytes long; * contains the system stack per user; is cross referenced * with the proc structure for the same process. usr/include/sys/ulimit.h100644 0 2 1264 3425136000 10612 */ #ifndef X_MAGIC #include "a.out.h" #endif struct user { /* octal offset */ label_t u_rsav; /* 0 save info when exchanging stacks */ label_t u_qsav; /* 12 label variable for quits and interrupts */ label_t u_ssav; /* 24 label variable for swapping */ char u_segflg; /* 36 IO flag: 0:user D; 1:system; 2:user I */ char u_error; /* 37 return error code */ ushort u_uid; /* 40 effective user id */* * @(#) ulimit.h 1.1 85/01/23 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * The following are codes which can be * passed to the ulimit system call. *// ushort u_gid; /* 42 effective group id */ ushort u_ruid; /* 44 real user id */ ushort u_rgid; /* 46 real group id */ struct proc *u_procp; /* 50 pointer to proc structure */ int *u_ap; /* 52 pointer to arglist */ union { /* 54 syscall return values */ struct { int r_val1; /* 54 */ int r_val2; /* 56 */ }r_reg; off_t r_off; time_t r_time; } u_r; caddr_t u_base; /* 60 base address fo #define UL_GFILLIM 1 /* get file limit */ #define UL_SFILLIM 2 /* set file limit */ #define UL_GMEMLIM 3 /* get process size limit */ #define UL_GTXTOFF 64 /* get text offset */ d be treated as Confidential. */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ /* * The following are codes which can be * passed to the ulimit system call. */r IO */ unsigned u_count; /* 62 bytes remaining for IO */ off_t u_offset; /* 64 offset in file for IO */ short u_fmode; /* 66 file mode for IO */ short u_errcnt; /* 70 syscall error count */ struct inode *u_cdir; /* 72 pointer to inode of current directory */ struct inode *u_rdir; /* 76 root directory of current process */ caddr_t u_dirp; /*100 pathname pointer */ struct direct u_dent; /*102 current directory entry */ struusr/include/sys/user.h100644 0 2 16271 3425136000 10311 7  ct inode *u_pdir; /*122 inode of parent directory of dirp */ struct file *u_ofile[NOFILE];/*124 pointers to file structures of open files */ char u_pofile[NOFILE]; /*232 per-process flags of open files */ int u_arg[5]; /*276 arguments to current system call */ unsigned u_tsize; /*310 text size (clicks) */ unsigned u_dsize; /*312 data size (clicks) */ unsigned u_ssize; /*314 stack size (clicks) */ int u_signal[NSIG]; /*316 disposition of ster */ char u_fpsaved; /*700 FP regs saved for this proc */ char u_fpused; /*701 FP used for this process */ struct { /*702 8087 save status */ int fp_cntrl; /* control word */ int fp_stat; /* status word */ int fp_tag; /* tag word */ int fp_ip[2]; /* instruction pointer */ int fp_op[2]; /* operand pointer */ char fp_regs[100]; /* temporary registers */ int fp_spare; /* (2 xtra for emulator) */ } u_fps; short u_cedataignals */ time_t u_utime; /*366 this process user time */ time_t u_stime; /*372 this process system time */ time_t u_cutime; /*376 sum of childs' utimes */ time_t u_cstime; /*402 sum of childs' stimes */ int *u_ar0; /*406 address of users saved R0 */ struct { /*410 profile arguments */ short *pr_base; /* buffer base */ unsigned pr_size; /* buffer size */ unsigned pr_off; /* pc offset */ unsigned pr_scale;; /*1070 core address of last data page */ short u_cexdata; /*1072 core address of last extra data pg */ unsigned short u_lxrw; /*1074 for mmumap */ short u_stkwarn; /*1076 flag for delayed stack grow */ char u_sockref[LIMHOST]; /*1100 per socket reference count AMG */ short u_osocket[LIMHOST]; /* open sockets on other hosts AMG */ char u_sysname[DIRSIZ]; /* current system name AMG */ long u_netmap; /* network permission map */ int u_netflag; /* network fl /* pc scaling */ } u_prof; char u_intflg; /*420 catch intr from sys */ char u_sep; /*421 flag for I and D separation */ struct tty *u_ttyp; /*422 controlling tty pointer */ dev_t u_ttyd; /*424 controlling tty dev */ struct xexec u_exdata; /*426 header of executable file */ struct xext u_exext; /*466 extension to header */ unsigned u_hdrsiz; /*512 total size of header on file */ char u_comm[DIRSIZ]; /*514*/ time_t u_sags for namei/nameh */ struct buf *u_nbp; /* gross stuff */ int u_remtty; /* remote /dev/tty */ #ifdef ACS186 int u_ndinited; /* for 186 vdu net */ #else char u_prwindow; /* for altos2 window support */ #endif int u_stack[1]; /* */ /* kernel stack per user * extends from u + USIZE*64 * backward not to reach here */ }; extern struct user u; #define u_rval1 u_r.r_reg.r_val1 #define u_rval2 u_r.r_reg.r_val2 #define u_roff u_r.r_off #define u_rtime u_r.r_time /* u_error cotart; /*532*/ time_t u_ticks; /*536*/ long u_mem; /*542*/ long u_ior; /*546*/ long u_iow; /*552*/ long u_iosw; /*556*/ long u_ioch; /*562*/ char u_acflag; /*566*/ short u_cmask; /*570 mask for file creation */ daddr_t u_limit; /*572 maximum write address */ int u_t[32]; /*576 **super dirty** (see iupdat) */ int u_sdsaved; /* we have des */ #define EPERM 1 #define ENOENT 2 #define ESRCH 3 #define EINTR 4 #define EIO 5 #define ENXIO 6 #define E2BIG 7 #define ENOEXEC 8 #define EBADF 9 #define ECHILD 10 #define EAGAIN 11 #define ENOMEM 12 #define EACCES 13 #define EFAULT 14 #define ENOTBLK 15 #define EBUSY 16 #define EEXIST 17 #define EXDEV 18 #define ENODEV 19 #define ENOTDIR 20 #define EISDIR 21 #define EINVAL 22 #define ENFILE 23 #define EMFILE 24 #define ENOTTY 25 #define ETXTBSY 26 #define EFBIG 27 #define ENOSPC 28 #define ESPIPE 29 saved the shared data */ int u_sdcnt; /* we have attached to shared data */ struct sd { /* per proc shared data table */ struct inode *sd_inode; /* pointer to inode for segment */ char *sd_addr; /* address in this procs data space */ int sd_vnum; /* version # for local copy */ char sd_flags; /* describing state of this proc */ } u_sdtab[NSDSEGS]; /* machine dependent fields */ int u_fper; /*676 FP error regis7  #define EROFS 30 #define EMLINK 31 #define EPIPE 32 #define EDOM 33 #define ERANGE 34 #define EUCLEAN 35 #define EDEADLOCK 36 #define ENOTNAM 37 #define ENAVAIL 38 #define EISNAM 39 /* window software */ #ifndef ACS586 #define EMWIND 40 /* too many open windows */ #define ENFONT 41 /* window font table overflow */ #define EBFONT 42 /* bad window font file */ #define ESPACE 43 /* out of font/ascii-save space */ #define EBLABL 44 /* bad window label */ #define EWIOCTL 45 /* bad ioctl call of row consusr/include/sys/var.h100644 0 2 1653 3425136000 10101 ole*/ #endif /* ioflag values: Read/Write, User/Kernel, Ins/Data */ #define U_WUD 0 #define U_RUD 1 #define U_WKD 2 #define U_RKD 3 #define U_WUI 4 #define U_RUI 5 #define EXCLOSE 01 * window software */ #ifndef ACS586 #define EMWIND 40 /* too many open windows */ #define ENFONT 41 /* window font table overflow */ #define EBFONT 42 /* bad window font file */ #define ESPACE 43 /* out of font/ascii-save space */ #define EBLABL 44 /* bad window label */ #define EWIOCTL 45 /* bad ioctl call of row cons/* * @(#)var.h 1.2 3/8/84 Copyright Microsoft Corporation, 1983 */ struct var { int v_buf; /* NBUF */ int v_sabuf; /* NSABUF */ int v_call; /* NCALL */ int v_inode; /* NINODE */ struct inode *ve_inode; /* &inode[NINODE] */ int v_file; /* NFILE */ struct file *ve_file; /* &file[NFILE] */ int v_mount; /* NMOUNT */ struct mount *ve_mount; /* &mount[NMOUNT] */ int v_proc; /* NPROC */ stusr/include/sys/utsname.h100644 0 2 1344 3425136000 10762 ruct proc *ve_proc; /* &proc[NPROC] */ int v_text; /* NTEXT */ struct text *ve_text; /* &text[NTEXT] */ int v_clist; /* NCLIST */ int v_maxup; /* MAXUPRC */ int v_lock; /* NFLOCKS */ int v_hbuf; /* NHBUF */ int v_hmask; /* NHBUF-1 */ #ifndef ACS586 int v_winds; /* NWINDOWS */ #endif }; extern struct var v; uct mount *ve_mount; /* &mount[NMOUNT] */ int v_proc; /* NPROC */ st/* * @(#)utsname.h 1.2 7/18/84 * * Copyright (C) Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * @(#) utsname.h 1.2 85/01/23 */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct utsname { char sysname[9]; charusr/include/sys/xpr.h100644 0 2 714 3425136000 10077  nodename[9]; char release[9]; char version[9]; unsigned short sysorigin; /* original supplier of Xenix system */ unsigned short sysoem; /* OEM for this system */ long sysserial; /* serial number for this system */ }; me.h 1.2 85/01/23 */ /* * THIS FILE CONTAINS CODE WHICH IS DESIGNED TO BE * PORTABLE BETWEEN DIFFERENT MACHINE ARCHITECTURES * AND CONFIGURATIONS. IT SHOULD NOT REQUIRE ANY * MODIFICATIONS WHEN ADAPTING XENIX TO NEW HARDWARE. */ struct utsname { char sysname[9]; char8  /* ** @(#)xpr.h 1.1 6/11/84 ** Transparent printer control structure */ struct xpr { struct cblock *xesc_open; /* printer redirection escape seq */ struct cblock *xesc_close; /* end printer redirection escape seq */ struct cblock *xtty_echoq; /* queue for delayed echo to tty */ short x_busy; /* u.u_procp for writing proc */ char x_wanted; char x_esced; /* true if output directed to printer */ short x_svoflags; /* saved t_oflags for crt */ }; NMOUNT] */ int v_proc; /* NPˆP¦÷¦÷he available list * pointers to keep track of them in their i/o active queues. */ /* * Bufhd structures used at the head of the hashed buffer queues. * We only need three words for these, so this abbreviated * definition saves some space. */ struct bufhd { long b_flags; /* see defines below */ struct buf *b_forw, *b_back; /* fwd/bkwd pointer in chain */ }; struct buf { long b_flags; /* too much goes here to describe */ struct buf *b_forw, *b_back; /* hash chain (2 way street) */ struct buf *avusr/include/sys/a.out.h100644 0 2 27620 3425136000 14073 1usr/include/a.out.h_forw, *av_back; /* position on free list if not BUSY */ #define b_actf av_forw /* alternate names for driver queue */ #define b_actl av_back /* head - isn't history wonderful */ dev_t b_dev; /* major+minor device name */ u_int b_bcount; /* transfer count */ #define b_active b_bcount /* driver queue head: drive active */ short b_error; /* returned after I/O */ paddr_t b_paddr; /* physical address */ #define paddr(X) X->b_paddr u_int b_bufsize; /* size of allocated buffer */ union { usr/include/sys/BoosterPak/buf.h100644 0 2 14243 3425136000 12155  int *b_words; /* words for clearing */ struct fs *b_fs; /* superblocks */ struct csum *b_cs; /* superblock summary information */ struct cg *b_cg; /* cylinder group block */ struct dinode *b_dino; /* ilist */ daddr_t *b_daddr; /* indirect block */ } b_un; daddr_t b_blkno; /* block # on device */ unsigned b_resid; /* words not transferred after error */ union { /* Available for use within drivers */ caddr_t b_caddr; long b_long; unsigned int b_int[2];/* * @(#)buf.h 1.8 12/10/84 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * The header for buffers in the buffer pool and otherwise used * to describe a block i/o request is given here. The routines * which manipulate these things are given in bio.c. * * Each buffer in the pool is usually doubly linked into 2 lists: * hashed into a chain by so it can be located in the cache, * and (usually) on (one of several) queues. These lists are circular and * doubly  char b_char[4]; } b_drvun; char b_unused; /* Used by hd driver */ }; #define BQUEUES 5 /* number of free buffer queues */ #define BQ_LOCKED 0 /* super-blocks &c */ #define BQ_LRU 1 /* lru, useful buffers */ #define BQ_AGE 2 /* rubbish */ #define BQ_EMPTY 3 /* buffer headers with no memory */ #define BQ_SADDR 4 /* system addressable buffers */ #define RND (MAXBSIZE/DEV_BSIZE) #define BUFHASH(dev, dblkno) \ ((struct buf *)&bufhash[((u_int)(dev)+(((u_int)(dblkno))/RND)) % v.v_hbuf]) elinked for easy removal. * * There are currently three queues for buffers: * one for buffers which must be kept permanently (super blocks) * one for buffers containing ``useful'' information (the cache) * one for buffers containing ``non-useful'' information * (and empty buffers, pushed onto the front) * The latter two queues contain the buffers which are available for * reallocation, are kept in lru order. When not on one of these queues, * the buffers are ``checked out'' to drivers which use t8  xtern struct buf buf[]; /* the buffer pool itself */ int nbuf; /* number of buffer headers */ int bufpages; /* number of memory pages in the buffer pool */ struct buf *swbuf; /* swap I/O headers */ int nswbuf; extern struct bufhd bufhash[]; /* heads of hash lists */ struct buf bfreelist[BQUEUES]; /* heads of available lists */ struct buf bswlist; /* head of free swap header list */ struct buf *bclnlist; /* head of cleaned page list */ extern char sabuf[][BUFBSIZE]; paddr_t bufbase; long bigetl(); sav_back = (bp); \ (bp)->av_forw = (dp)->av_forw; \ (dp)->av_forw = (bp); \ (bp)->av_back = (dp); \ } #define binstailfree(bp, dp) { \ (dp)->av_back->av_forw = (bp); \ (bp)->av_back = (dp)->av_back; \ (dp)->av_back = (bp); \ (bp)->av_forw = (dp); \ } /* * Take a buffer off the free list it's on and * mark it as being use (B_BUSY) by a device. */ #define notavail(bp) { \ int x = spl6(); \ bremfree(bp); \ (bp)->b_flags |= B_BUSY; \ splx(x); \ } /* * Zero out a buffer's data portion. */ #defintruct buf *alloc(); struct buf *realloccg(); struct buf *baddr(); struct buf *getblk(); struct buf *geteblk(); struct buf *getnewbuf(); struct buf *bread(); struct buf *breada(); unsigned minphys(); /* * These flags are kept in b_flags. */ #define B_WRITE 0x000000 /* non-read pseudo-flag */ #define B_READ 0x000001 /* read when I/O occurs */ #define B_DONE 0x000002 /* transaction finished */ #define B_ERROR 0x000004 /* transaction aborted */ #define B_BUSY 0x000008 /* not on av_forw/back list */ #dee clrbuf(bp) { \ bzero(bp->b_paddr, bp->b_bcount); \ bp->b_resid = 0; \ } /* For compatibility with Xenix 3.0. */ #define iodone biodone #define iowait biowait (bp); \ (bp)->av_back = (dp)->av_back; \ (dp)->av_back = (bp); \ (bp)->av_forw = (dp); \ } /* * Take a buffer off the free list it's on and * mark it as being use (B_BUSY) by a device. */ #define notavail(bp) { \ int x = spl6(); \ bremfree(bp); \ (bp)->b_flags |= B_BUSY; \ splx(x); \ } /* * Zero out a buffer's data portion. */ #definfine B_PHYS 0x000010 /* physical IO */ #define B_FMT 0x000020 /* format command flag */ #define B_WANTED 0x000040 /* issue wakeup when BUSY goes off */ #define B_AGE 0x000080 /* delayed write for correct aging */ #define B_ASYNC 0x000100 /* don't wait for I/O completion */ #define B_DELWRI 0x000200 /* write at exit of avail list */ #define B_TAPE 0x000400 /* this is a magtape (no bdwrite) */ #define B_UAREA 0x000800 /* add u-area to a swap operation */ #define B_PAGET 0x001000 /* page in/out of page usr/include/sys/BoosterPak/filsys.h100644 0 2 1001 3425136000 12656 table space */ #define B_DIRTY 0x002000 /* dirty page to be pushed out async */ #define B_PGIN 0x004000 /* pagein op, so swap() can count it */ #define B_CACHE 0x008000 /* did bread find us in the cache ? */ #define B_INVAL 0x010000 /* does not contain valid info */ #define B_LOCKED 0x020000 /* locked in core (not reusable) */ #define B_HEAD 0x040000 /* a buffer header, not a buffer */ #define B_BAD 0x100000 /* bad block revectoring in progress */ #define B_CALL 0x200000 /* call b_iodone from iodone/* * @(#)filsys.h 1.7 1/9/85 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ #include "fs.h" #ifndef FILSYS #define FILSYS struct fs #endif /* * These defines are for Berkeley File System compatibility for references * to fields within the super-block. */ #define s_ronly fs_ronly #define s_magic fs_magic #define s_clean fs_clean #define s_fmod fs_fmod #define s_time fs_time #define s_fname fs_fsmnt #define s_tfree fs_cstotal.cs_nbfree */ /* * Insq/Remq for the buffer hash lists. */ #define bremhash(bp) { \ (bp)->b_back->b_forw = (bp)->b_forw; \ (bp)->b_forw->b_back = (bp)->b_back; \ } #define binshash(bp, dp) { \ (bp)->b_forw = (dp)->b_forw; \ (bp)->b_back = (dp); \ (dp)->b_forw->b_back = (bp); \ (dp)->b_forw = (bp); \ } /* * Insq/Remq for the buffer free lists. */ #define bremfree(bp) { \ (bp)->av_back->av_forw = (bp)->av_forw; \ (bp)->av_forw->av_back = (bp)->av_back; \ } #define binsheadfree(bp, dp) { \ (dp)->av_forw->9   * * @(#)filsys.h 1.7 1/9/85 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ #include "fs.h" #ifndef FILSYS #define FILSYS struct fs #endif /* * These defines are for Berkeley File System compatibility for references * to fields within the super-block. */ #define s_ronly fs_ronly #define s_magic fs_magic #define s_clean fs_clean #define s_fmod fs_fmod #define s_time fs_time #define s_fname fs_fsmnt #define s_tfree fs_cstotal.cs_nbfreevoid * undue wasted disk space, the last data block of a small file may be * allocated as only as many fragments of a large block as are * necessary. The file system format retains only a single pointer * to such a fragment, which is a piece of a single large block that * has been divided. The size of such a fragment is determinable from * information in the inode, using the ``blksize(fs, ip, lbn)'' macro. * * The file system records space availability at the fragment level; * to determine block usr/include/sys/BoosterPak/fs.h100644 0 2 35131 3425136000 12010 availability, aligned fragments are examined. * * The root inode is the root of the file system. * Inode 0 can't be used for normal purposes and * historically bad blocks were linked to inode 1, * thus the root inode is 2. (inode 1 is no longer used for * this purpose, however numerous dump tapes make this * assumption, so we are stuck with it) * The lost+found directory is given the next available * inode when it is created by ``mkfs''. */ #define ROOTINO ((ino_t)2) /* i number of all roots */ #/* * @(#)fs.h 1.3 12/10/84 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * Each disk drive contains some number of file systems. * A file system consists of a number of cylinder groups. * Each cylinder group has inodes and data. * * A file system is described by its super-block, which in turn * describes the cylinder groups. The super-block is critical * data and is replicated in each cylinder group to protect against * catastrophic loss. This is done at mkfs time andefine LOSTFOUNDINO (ROOTINO + 1) /* * Cylinder group related limits. * * For each cylinder we keep track of the availability of blocks at different * rotational positions, so that we can lay out the data to be picked * up with minimum rotational latency. NRPOS is the number of rotational * positions which we distinguish. With NRPOS 8 the resolution of our * summary information is 2ms for a typical 3600 rpm drive. */ #define NRPOS 4 /* number distinct rotational positions */ /* * MAXIPG boundsd the critical * super-block data does not change, so the copies need not be * referenced further unless disaster strikes. * * For file system fs, the offsets of the various blocks of interest * are given in the super block as: * [fs->fs_sblkno] Super-block * [fs->fs_cblkno] Cylinder group block * [fs->fs_iblkno] Inode blocks * [fs->fs_dblkno] Data blocks * The beginning of cylinder group cg in fs, is given by * the ``cgbase(fs, cg)'' macro. * * The first boot and super blocks are given in  the number of inodes per cylinder group, and * is needed only to keep the structure simpler by having the * only a single variable size element (the free bit map). * * N.B.: MAXIPG must be a multiple of INOPB(fs). */ #define MAXIPG 1024 /* max number inodes/cyl group */ /* * MINBSIZE is the smallest allowable block size. * In order to insure that it is possible to create files of size * 2^32 with only two levels of indirection, MINBSIZE is set to 4096. * MINBSIZE must be big enough to hold a cylabsolute disk addresses. */ #define BBSIZE 2048 #define SBSIZE 2048 #define BBLOCK ((daddr_t)(0)) #define SBLOCK ((daddr_t)(BBLOCK + BBSIZE / DEV_BSIZE)) /* * Addresses stored in inodes are capable of addressing fragments * of `blocks'. File system blocks of at most size MAXBSIZE can * be optionally broken into 2, 4, or 8 pieces, each of which is * addressible; these pieces may be DEV_BSIZE, or some multiple of * a DEV_BSIZE unit. * * Large files consist of exclusively large data blocks. To a9  inder group block, * thus changes to (struct cg) must keep its size within MINBSIZE. * MAXCPG is limited only to dimension an array in (struct cg); * it can be made larger as long as that structures size remains * within the bounds dictated by MINBSIZE. * Note that super blocks are always of size MAXBSIZE, * and that MAXBSIZE must be >= MINBSIZE. */ #define MINBSIZE 2048 #define MAXCPG 32 /* maximum fs_cpg */ /* * The path name on which the file system is mounted is maintained * in fs_fsmnt. MAXMff'' calc of frag offsets */ unsigned int fs_bshift; /* ``lblkno'' calc of logical blkno */ unsigned int fs_fshift; /* ``numfrags'' calc number of frags */ /* these are configuration parameters */ long fs_maxcontig; /* max number of contiguous blks */ long fs_maxbpg; /* max number of blks per cyl group */ /* these fields can be computed from the others */ unsigned int fs_fragshift; /* block to frag shift */ unsigned int fs_fsbtodb; /* fsbtodb and dbtofsb shift constant */ long fs_sbsize; /* actuNTLEN defines the amount of space allocated in * the super block for this name. * The limit on the amount of summary information per file system * is defined by MAXCSBUFS. It is currently parameterized for a * maximum of two million cylinders. */ #define MAXMNTLEN 512 #define MAXCSBUFS 32 /* * Per cylinder group information; summarized in blocks allocated * from first cylinder group data blocks. These blocks have to be * read in from fs_csaddr (size fs_cssize) in addition to the * super block. al size of super block */ long fs_csmask; /* csum block offset */ unsigned int fs_csshift; /* csum block number */ long fs_nindir; /* value of NINDIR */ long fs_inopb; /* value of INOPB */ long fs_nspf; /* value of NSPF */ long fs_sparecon[6]; /* reserved for future constants */ /* sizes determined by number of cylinder groups and their sizes */ daddr_t fs_csaddr; /* blk addr of cyl grp summary area */ long fs_cssize; /* size of cyl grp summary area */ long fs_cgsize; /* cylinder group size* * N.B. sizeof(struct csum) must be a power of two in order for * the ``fs_cs'' macro to work (see below). */ struct csum { long cs_ndir; /* number of directories */ long cs_nbfree; /* number of free blocks */ long cs_nifree; /* number of free inodes */ long cs_nffree; /* number of free frags */ }; /* * Super block for a file system. */ #define FS_MAGIC 0x011954 struct fs { struct fs *fs_link; /* linked list of file systems */ struct fs *fs_rlink; /* used for incore super blocks */ daddr */ /* these fields should be derived from the hardware */ long fs_ntrak; /* tracks per cylinder */ long fs_nsect; /* sectors per track */ long fs_spc; /* sectors per cylinder */ /* this comes from the disk driver partitioning */ long fs_ncyl; /* cylinders in file system */ /* these fields can be computed from the others */ long fs_cpg; /* cylinders per group */ long fs_ipg; /* inodes per group */ long fs_fpg; /* blocks per group * fs_frag */ /* this data must be re-computed after c_t fs_sblkno; /* addr of super-block in filesys */ daddr_t fs_cblkno; /* offset of cyl-block in filesys */ daddr_t fs_iblkno; /* offset of inode-blocks in filesys */ daddr_t fs_dblkno; /* offset of first data after cg */ long fs_cgoffset; /* cylinder group offset in cylinder */ long fs_cgmask; /* used to calc mod fs_ntrak */ time_t fs_time; /* last time written */ long fs_size; /* number of blocks in fs */ long fs_dsize; /* number of data blocks in fs */ long fs_ncg; /* number of cyrashes */ struct csum fs_cstotal; /* cylinder summary information */ /* these fields are cleared at mount time */ char fs_fmod; /* super block modified flag */ char fs_clean; /* file system is clean flag */ char fs_ronly; /* mounted read-only flag */ char fs_flags; /* currently unused flag */ char fs_fsmnt[MAXMNTLEN]; /* name mounted on */ /* these fields retain the current block allocation info */ long fs_cgrotor; /* last cg searched */ struct csum *fs_csp[MAXCSBUFS];linder groups */ long fs_bsize; /* size of basic blocks in fs */ long fs_fsize; /* size of frag blocks in fs */ long fs_frag; /* number of frags in a block in fs */ /* these are configuration parameters */ long fs_minfree; /* minimum percentage of free blocks */ long fs_rotdelay; /* num of ms for optimal next block */ long fs_rps; /* disk revolutions per second */ /* these fields can be computed from the others */ long fs_bmask; /* ``blkoff'' calc of blk offsets */ long fs_fmask; /* ``frago:  /* list of fs_cs info buffers */ long fs_cpc; /* cyl per cycle in postbl */ short fs_postbl[MAXCPG][NRPOS];/* head of blocks for each rotation */ long fs_magic; /* magic number */ char fs_rotbl[1]; /* list of blocks for each rotation */ /* actually longer */ }; #define S_CLEAN 0106 /* arbitrary magic value */ /* * Convert cylinder group to base address of its global summary info. * * N.B. This macro assumes that sizeof(struct csum) is a power of two. */ #define fs_cs(fs, indx) \ fs_b(fs, b) ((b) << (fs)->fs_fsbtodb) #define dbtofsb(fs, b) ((b) >> (fs)->fs_fsbtodb) /* * Cylinder group macros to locate things in cylinder groups. * They calc file system addresses of cylinder group data structures. */ #define cgbase(fs, c) ((daddr_t)((fs)->fs_fpg * (c))) #define cgstart(fs, c) \ (cgbase(fs, c) + (fs)->fs_cgoffset * ((c) & ~((fs)->fs_cgmask))) #define cgsblock(fs, c) (cgstart(fs, c) + (fs)->fs_sblkno) /* super blk */ #define cgtod(fs, c) (cgstart(fs, c) + (fs)->fs_cblkno) /* cg block csp[(indx) >> (fs)->fs_csshift][(indx) & ~(fs)->fs_csmask] /* * MAXBPC bounds the size of the rotational layout tables and * is limited by the fact that the super block is of size SBSIZE. * The size of these tables is INVERSELY proportional to the block * size of the file system. It is aggravated by sector sizes that * are not powers of two, as this increases the number of cylinders * included before the rotational pattern repeats (fs_cpc). * Its size is derived from the number of bytes remaining in*/ #define cgimin(fs, c) (cgstart(fs, c) + (fs)->fs_iblkno) /* inode blk */ #define cgdmin(fs, c) (cgstart(fs, c) + (fs)->fs_dblkno) /* 1st data */ /* * Macros for handling inode numbers: * inode number to file system block offset. * inode number to cylinder group number. * inode number to file system block address. * inode number to disk fragment address. */ #define itoo(fs, x) ((x) % INOPB(fs)) #define itog(fs, x) ((x) / (fs)->fs_ipg) #define itod(fs, x) \ ((daddr_t)(cgimin(fs, ito (struct fs) */ #define MAXBPC (SBSIZE - sizeof (struct fs)) /* * Cylinder group block for a file system. */ #define CG_MAGIC 0x090255 struct cg { struct cg *cg_link; /* linked list of cyl groups */ struct cg *cg_rlink; /* used for incore cyl groups */ time_t cg_time; /* time last written */ long cg_cgx; /* we are the cgx'th cylinder group */ short cg_ncyl; /* number of cyl's this cg */ short cg_niblk; /* number of inode blocks this cg */ long cg_ndblk; /* number of data blocks this cg(fs, x)) + \ (blkstofrags((fs), (((x) % (fs)->fs_ipg) / INOPB(fs)))))) #define itof(fs, x) \ ((daddr_t)(cgimin(fs, itog(fs, x)) + \ (((x) % (fs)->fs_ipg) / INOPF(fs)))) /* * Give cylinder group number for a file system block. * Give cylinder group block number for a file system block. */ #define dtog(fs, d) ((d) / (fs)->fs_fpg) #define dtogd(fs, d) ((d) % (fs)->fs_fpg) /* * Extract the bits for a block from a map. * Compute the cylinder and rotational position of a cyl block addr. */ #define blkmg */ struct csum cg_cs; /* cylinder summary information */ long cg_rotor; /* position of last used block */ long cg_frotor; /* position of last used frag */ long cg_irotor; /* position of last used inode */ long cg_frsum[MAXFRAG]; /* counts of available frags */ long cg_btot[MAXCPG]; /* block totals per cylinder */ short cg_b[MAXCPG][NRPOS]; /* positions of free blocks */ char cg_iused[MAXIPG/NBBY]; /* used inode map */ long cg_magic; /* magic number */ char cg_free[1]; /* free block map */ ap(fs, map, loc) \ (((map)[loc / NBBY] >> (loc % NBBY)) & (0xff >> (NBBY - (fs)->fs_frag))) #define cbtocylno(fs, bno) \ ((bno) * NSPF(fs) / (fs)->fs_spc) #define cbtorpos(fs, bno) \ ((bno) * NSPF(fs) % (fs)->fs_nsect * NRPOS / (fs)->fs_nsect) /* * The following macros optimize certain frequently calculated * quantities by using shifts and masks in place of divisions * modulos and multiplications. */ #define blkoff(fs, loc) /* calculates (loc % fs->fs_bsize) */ \ ((loc) & ~(fs)->fs_bmask) #defi/* actually longer */ }; /* * MAXBPG bounds the number of blocks of data per cylinder group, * and is limited by the fact that cylinder groups are at most one block. * Its size is derived from the size of blocks and the (struct cg) size, * by the number of remaining bits. */ #define MAXBPG(fs) \ (fragstoblks((fs), (NBBY * ((fs)->fs_bsize - (sizeof (struct cg)))))) /* * Turn file system block numbers into disk block addresses. * This maps file system blocks to device size blocks. */ #define fsbtod:  ne fragoff(fs, loc) /* calculates (loc % fs->fs_fsize) */ \ ((loc) & ~(fs)->fs_fmask) #define lblkno(fs, loc) /* calculates (loc / fs->fs_bsize) */ \ ((loc) >> (fs)->fs_bshift) #define numfrags(fs, loc) /* calculates (loc / fs->fs_fsize) */ \ ((loc) >> (fs)->fs_fshift) #define blkroundup(fs, size) /* calculates roundup(size, fs->fs_bsize) */ \ (((size) + (fs)->fs_bsize - 1) & (fs)->fs_bmask) #define fragroundup(fs, size) /* calculates roundup(size, fs->fs_fsize) */ \ (((size) + (fs)->fs_fsize - 1) & (usr/include/sys/BoosterPak/ino.h100644 0 2 1466 3425136000 12151 fs)->fs_fmask) #define fragstoblks(fs, frags) /* calculates (frags / fs->fs_frag) */ \ ((frags) >> (fs)->fs_fragshift) #define blkstofrags(fs, blks) /* calculates (blks * fs->fs_frag) */ \ ((blks) << (fs)->fs_fragshift) /* * Determine the number of available frags given a * percentage to hold in reserve */ #define freespace(fs, percentreserved) \ (blkstofrags((fs), (fs)->fs_cstotal.cs_nbfree) + \ (fs)->fs_cstotal.cs_nffree - ((fs)->fs_dsize * (percentreserved) / 100)) /* * Determining the size of /* * @(#)ino.h 1.4 12/10/84 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* Inode structure as it appears on a disk block. */ struct dinode { union { struct icommon di_icom; char di_size[128]; } di_un; }; /* * the 40 address bytes: * 39 used; 13 addresses * of 3 bytes each. */ /* These are defines used by the Berkeley File System. */ #define di_ic di_un.di_icom #define di_mode di_ic.ic_mode #define di_nlink di_ic.ic_nlink #da file block in the file system. */ #define blksize(fs, ip, lbn) \ (((lbn) >= NDADDR || (ip)->i_size >= ((lbn) + 1) << (fs)->fs_bshift) \ ? (fs)->fs_bsize \ : (fragroundup(fs, blkoff(fs, (ip)->i_size)))) #define dblksize(fs, dip, lbn) \ (((lbn) >= NDADDR || (dip)->di_size >= ((lbn) + 1) << (fs)->fs_bshift) \ ? (fs)->fs_bsize \ : (fragroundup(fs, blkoff(fs, (dip)->di_size)))) /* * Number of disk sectors per block; assumes DEV_BSIZE byte sector size. */ #define NSPB(fs) ((fs)->fs_nspefine di_uid di_ic.ic_uid #define di_gid di_ic.ic_gid #define di_db di_ic.ic_db #define di_ib di_ic.ic_ib #define di_atime di_ic.ic_atime #define di_mtime di_ic.ic_mtime #define di_ctime di_ic.ic_ctime #define di_rdev di_ic.ic_db[0] #define di_blocks di_ic.ic_blocks #define di_size di_ic.ic_size.val[0] * 39 used; 13 addresses * of 3 bytes each. */ /* These are defines used by the Berkeley File System. */ #define di_ic di_un.di_icom #define di_mode di_ic.ic_mode #define di_nlink di_ic.ic_nlink #df << (fs)->fs_fragshift) #define NSPF(fs) ((fs)->fs_nspf) /* * INOPB is the number of inodes in a secondary storage block. */ #define INOPB(fs) ((fs)->fs_inopb) #define INOPF(fs) ((fs)->fs_inopb >> (fs)->fs_fragshift) /* * NINDIR is the number of indirects in a file system block. */ #define NINDIR(fs) ((fs)->fs_nindir) /* Xenix 3.0 compatibility follows: */ /* fs_magic, magic value for file system version */ #define S_S3MAGIC 0x2b554 /* system 3 arbitrary magic value */ /* codes for file system verusr/include/sys/BoosterPak/inode.h100644 0 2 12613 3425136000 12476 sion (for utilities) */ #define S_V2 1 /* version 7 */ #define S_V3 2 /* system 3 */ nodes in a secondary storage block. */ #define INOPB(fs) ((fs)->fs_inopb) #define INOPF(fs) ((fs)->fs_inopb >> (fs)->fs_fragshift) /* * NINDIR is the number of indirects in a file system block. */ #define NINDIR(fs) ((fs)->fs_nindir) /* Xenix 3.0 compatibility follows: */ /* fs_magic, magic value for file system version */ #define S_S3MAGIC 0x2b554 /* system 3 arbitrary magic value */ /* codes for file system ver;  /* * %W% %G% Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * The I node is the focus of all * file activity in unix. There is a unique * inode allocated for each active file, * each current directory, each mounted-on * file, text file, and the root. An inode is 'named' * by its dev/inumber pair. (iget/iget.c) * Data, from mode on, is read in * from permanent inode on volume. */ #define NDADDR 12 /* direct addresses in inode */ #g ic_spare[5]; /* 108: reserved, currently unused */ } i_ic; char i_flag; cnt_t i_count; /* reference count */ dev_t i_dev; /* device where inode resides */ ino_t i_number; /* i number, 1-to-1 with device address */ daddr_t i_l; /* last logical block read (for read-ahead) */ struct locklist *i_locklist; /* locked region list */ }; /* The dinode structure which used to be in this file is now in ino.h. */ extern struct icommon; extern struct inode inode[]; /* The inode table itself */ /* fladefine NIADDR 3 /* indirect addresses in inode */ #define NINDEX 15 /* Xenix 3.0 compatibility. */ #define NADDR (NDADDR+NIADDR) #define NSADDR (6) /* All that's needed for pipes. */ /* file dependent part for named files */ struct iisem { /* semaphore */ int i_scount; /* current semaphore count */ int i_eflag; /* err flg */ struct file *i_headw; /* first waiter */ struct file *i_tailw; /* last waiter */ }; struct iisd { /* shared datgs */ #define ILOCK 01 /* inode is locked */ #define IUPD 02 /* file has been modified */ #define IACC 04 /* inode access time to be updated */ #define IMOUNT 010 /* inode is mounted on */ #define IWANT 020 /* some process waiting on lock */ #define ITEXT 040 /* inode is pure text prototype */ #define ICHG 0100 /* inode has been changed */ #define IREMOTE 0200 /* remote inode (for current dir) AMG */ /* special for net work */ #define NETITYPE 0x8000 /* network special bit for device # */ /* modea */ mloc_t i_buf; /* address of kernel copy */ int i_len; /* length of segment */ int i_vnum; /* version number */ int i_snum; /* serial # for getv, waitv */ int i_flags; /* LOCKED, etc. */ }; struct inode { struct inode *i_chain[2]; /* must be first */ struct fs *i_fs; /* file sys associated with this inode */ union { struct { struct inode *if_freef; /* free list forward */ struct inode **if_freeb; /* free lis */ #define IFMT 0170000 /* type of file */ #define IFDIR 0040000 /* directory */ #define IFCHR 0020000 /* character special */ #define IFBLK 0060000 /* block special */ #define IFREG 0100000 /* regular */ #define IFMPC 0030000 /* multiplexed char special */ #define IFMPB 0070000 /* multiplexed block special */ #define IFIFO 0010000 /* fifo special */ #define IFNAM 0050000 /* name special */ #define IFLNK 0120000 /* symbolic link */ #define ISUID 04000 /* set user id on execution */ #dest back */ } i_fr; } i_un0; struct icommon { u_int ic_mode; /* 0: mode and type of file */ short ic_nlink; /* 2: number of links to file */ short ic_uid; /* 4: owner's user id */ short ic_gid; /* 6: owner's group id */ struct { long val[2]; } ic_size; /* 8: number of bytes in file */ time_t ic_atime; /* 16: time last accessed */ long ic_atspare; time_t ic_mtime; /* 24: time last modified */ long ic_mtspare; time_t ic_ctime; /* 32: last time inode changed */ long ic_cfine ISGID 02000 /* set group id on execution */ #define ISVTX 01000 /* save swapped text even after use */ #define IREAD 0400 /* read, write, execute permissions */ #define IWRITE 0200 #define IEXEC 0100 #define i_fdep i_ic.ic_fdep #define i_addr i_fdep.i_blks.ic_db #define i_rdev i_fdep.i_blks.ic_db[0] #define i_lastr i_l #define NFADDR 1 #define PIPSIZ NFADDR*BUFBSIZE /* fields used for the implementation of pipes */ #define i_fsize i_fdep.i_blks.i_p.i_f[NSADDR-6] /* offset into a pipe */ #defitspare; union { /* file type dependent section */ struct { daddr_t ic_db[NDADDR]; /* 40: disk block addresses */ union { daddr_t ic_ib[NIADDR];/* 88: indirect blocks */ short i_f[NSADDR]; } i_p; } i_blks; struct { /* name type files */ long i_type; union { struct iisem i_sem; struct iisd i_sd; } i_ndata; } i_namef; } ic_fdep; long ic_flags; /* 100: status, currently unused */ long ic_blocks; /* 104: blocks actually held */ lon;  ne i_frptr i_fdep.i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_fdep.i_blks.i_p.i_f[NSADDR-4] #define i_frcnt i_fdep.i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_fdep.i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_fdep.i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 /* types for IFNAM type files */ #define IFSEM 1L /* semaphore type */ #define IFSHD 2L /* shared data */ /* More Berkeley File System stuff. */ #define i_mode i_ic.ic_mode #define i_nlink i_ic.ic_nlink #define d to be a char. */ paddr_t io_addr; /* physical address */ int io_s1; /* space for drivers to leave things */ int io_s2; /* space for drivers to leave things */ int io_s3[5]; /* pad it out to size of struct buf */ }; #define tabinit(dv,stat) {0,0,0,0,0,makedev(dv,0),0,0,0,0,0,stat,0,0} #define NDEVREG (sizeof(struct device)/sizeof(int)) struct buf *b_actl; /* tail of I/O queue */ dev_t b_dev; /* major+minor device name */ u_int b_active; /* Used to be a char. */ short b_errcnt; /* Usei_uid i_ic.ic_uid #define i_gid i_ic.ic_gid #define i_size i_ic.ic_size.val[0] #define i_db i_ic.ic_fdep.i_blks.ic_db #define i_ib i_ic.ic_fdep.i_blks.i_p.ic_ib #define i_atime i_ic.ic_atime #define i_mtime i_ic.ic_mtime #define i_ctime i_ic.ic_ctime #define i_blocks i_ic.ic_blocks #define i_forw i_chain[0] #define i_back i_chain[1] #define i_bsize i_fs->fs_bsize ino_t dirpref(); data */ /* More Berkeley File System stuff. */ #define i_mode i_ic.ic_mode #define i_nlink i_ic.ic_nlink #define usr/include/sys/BoosterPak/mount.h100644 0 2 1015 3425136000 12514 usr/include/sys/BoosterPak/iobuf.h100644 0 2 2537 3425136000 12470 /* * @(#)mount.h 1.3 12/10/84 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * Mount structure. * One allocated on every mount. */ struct mount { int m_flags; /* status */ dev_t m_dev; /* device mounted */ struct inode *m_inodp; /* pointer to mounted on inode */ struct buf *m_bufp; /* buffer for super block */ char m_cgsum[512]; /* cylinder group summary info */ }; extern struct mount mount[]; #define MFREE 0 #define MINUSE 1 #def/* * @(#)iobuf.h 1.5 12/10/84 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * Each block device has a iobuf, which contains private state stuff * and 2 list heads: the b_forw/b_back list, which is doubly linked * and has all the buffers currently associated with that major * device; and the d_actf/d_actl list, which is private to the * device but in fact is always used for the head and tail * of the I/O queue for the device. * Variouine MINTER 2 nt.h 1.3 12/10/84 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * Mount structure. * One allocated on every mount. */ struct mount { int m_flags; /* status */ dev_t m_dev; /* device mounted */ struct inode *m_inodp; /* pointer to mounted on inode */ struct buf *m_bufp; /* buffer for super block */ char m_cgsum[512]; /* cylinder group summary info */ }; extern struct mount mount[]; #define MFREE 0 #define MINUSE 1 #defs routines in bio.c look at b_forw/b_back * (notice they are the same as in the buf structure) * but the rest is private to each device driver. */ struct iobuf { long b_flags; /* see buf.h */ struct buf *b_forw; /* first buffer for this dev */ struct buf *b_back; /* last buffer for this dev */ struct buf *b_actf; /* head of I/O queue */ struct buf *b_actl; /* tail of I/O queue */ dev_t b_dev; /* major+minor device name */ u_int b_active; /* Used to be a char. */ short b_errcnt; /* Use<  usr/include/sys/BoosterPak/param.h100644 0 2 20446 3425136000 12503 G2(BSIZE) */ #define NULL 0 #define NODEV (dev_t)(-1) #define SUPERB ((daddr_t)1) /* block number of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define NICFREE 50 /* number of superblock free blocks */ #define NSBFILL 58 /* VERY MAGIC - aligns s_magic & s_type at end of SB blk */ /* * These defines differ between the standard file system and Berkeley 4.2. * NINDIR is the number of indirect slots in a file system block/* * @(#)param.h 1.14 12/10/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Booster Pak Version (4.2BSD file system implementation) */ /* * Adjustable parameters */ #include "systype.h" #define SSIZE 1024 /* initial stack size (bytes) */ #define SINCR 1024 /* increment of stack (bytes) */ #define NOFILE 50 /* max open files per process */ #define CANBSIZ 256 /* max si. * INOPB is the number of inodes in a secondary storage block. */ #define NBBY 8 /* number of bits in a byte */ /* NINDIR is defined in fs.h. */ /* * MMU parameters. */ #define MMPGSZ 4096 /* bytes/page in the MMU */ #define LMMPGSZ 12 /* log2(MMPGSZ) */ /* * Some macros for units conversion */ /* These are used by the Berkeley File System. */ #define NSEG 0 /* max seg/user (see user.h) */ /* page register to long address */ #define ptol(x) ( (long)((int)(x) & 0x0FFF) << 12 ) /* long addreze of typewriter line */ #define HZ 20 /* Ticks/second of the clock */ #define MSGBUFS 128 /* Characters saved from error messages */ #define NCARGS 5120 /* # characters in exec arglist */ #define MAXTTYS 16 /* Max # open ttys */ #define NIOSTAT 50 /* max number of bufs to keep stats for */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ /* CDLIMIT is ridiculously large because of CDC's sparse file applications */ /* ((1L<<21) - 1ss to segment number */ #define ltos(x) ((int)( ((x) >> 4) & 0xF000 )) /* mem size to disk blocks */ #define mstod(x) ((x)*8) /* See fs.h for the macro definitions of itod */ /* and itoo for the Berkeley File System. */ /* mem size to bytes */ #define mstob(x) ((x)<>LMMPGSZ) /* bytes to mem size (truncated)*/ #define btomst(x) (((unsigned)(x))>>LMMPGSZ) /* bytes to page number */ #define btopn(x) (((unsignL) is the largest u_limit value that won't overflow in sys2.c */ #define CDLIMIT ((1L<<21) - 1L) /* default max write address */ #define NSDSEGS 5 /* number of shared data segs/proc */ #define LIMHOST 30 /* limit of hosts on network AMG (32 max) */ #ifndef NSIG /* Also look in signal.h */ #define NSIG 32 /* Maximum number of signals */ #endif #define ACS586 1 /* 586 kernel */ #define SYS_TYPE (SYS_586 | SYSBOOST) /* Booster Pack */ /* * priorities * probably should not be * altered ed)(x))>>LMMPGSZ) /* address (long (32 bit)) to page number (int)*/ #define atopn(x) ((int)(((long)(x))>>LMMPGSZ)) /* address (long (32 bit)) to page count (int)*/ #define atop(x) ((int)(((long)(x)+(MMPGSZ-1))>>LMMPGSZ)) /* address (long (32 bit)) to offset (int) get bits LMMPGSZ-1 - 0 */ #define atoo(x) ((int)((x)&(MMPGSZ-1))) /* long address to short address (get low 16 bits of long address */ #define atos(x) ((int)( (x) & 0x0000FFFF)) /* long address to short address (get low 16 bits of long addretoo much */ #define PSWP 0 #define PINOD 10 #define PRIBIO 20 #define PZERO 25 #define NZERO 20 #define PPIPE 26 #define PWIND 27 #define PWAIT 30 #define PSLEP 40 #define PUSER 50 #define PIDLE 127 /* * fundamental constants of the implementation-- * cannot be changed easily */ #define NBPW sizeof(int) /* number of bytes in an integer */ #define BSIZE 512 /* size of secondary block (bytes) */ #define BSLOP 12 /* needed by WORKNET driver */ #define BMASK 0x1ff /* BSIZE-1 */ #define BSHIFT 9 /* LO<  ss */ #define atoh(x) ((int)( (x) >> 16)) /* mem size to long address */ #define mstol(x) ((long)((int)(x)&(MMPGSZ-1))<> DEV_BSHIFT) #define dbtob(db) /* calculates (db * DEV_BSIZE) */ \ ((long)(db) << DEV_BSHIFT) /* * Map a ``block device block'' to a file system block. * This should be device dependent, and will be after we * add an entry to cdevsw for that purp0 /* 0xC0 ==> SM on On-Board USART */ #define USERMODE(ps) ((ps)&PS_USER) #define CLKONLY(ps) (((ps)&PS_PRIMASK)==(SPL0MASK<<8)) #define BASEPRI(ps) (((ps)&PS_PRIMASK)!=(SPL0MASK<<8)) #define USIZE 1 /* size of use block is 1 page */ #define UBASE 0xf000 /* abs. addr of user block is top page */ #define DATASTART(ts,sep) (caddr_t)0 /* start of user data */ #define STACKSTART(ss) (0-mstob(ss)) /* start of user stack */ #define USRSTACK (caddr_t)0 /* base address of user stack */ #define URSBCose. For now though * just use DEV_BSIZE. */ #define bdbtofsb(bn) ((bn) / (BLKDEV_IOSIZE/DEV_BSIZE)) /* * MAXPATHLEN defines the longest permissable path length * after expanding symbolic links. It is used to allocate * a temporary buffer from the buffer pool in which to do the * name expansion, hence should be a power of two, and must * be less than or equal to MAXBSIZE. * MAXSYMLINKS defines the maximum number of symbolic links * that may be expanded in a path name. It should be set high * eno 14 /* User stk Reg Save area Byte Cnt */ #define SHWDSZ (sizeof(int)+6) /* space on user stack for shell word */ /* * 8086 simulated "state" definitions. */ #define PS_USER 0x01 /* "user" mode */ #define PS_SYS 0xFE /* for mch.a86, turns off user mode */ #define PS_PRIMASK 0xFF00 /* current spl priority (PIC mask) */ /* Conditional compilation */ #define PAGEMMU /* mmu is divided in pages */ #define SHORTINT /* sizeof(int)==sizeof(short) */ /*#define BYTESWAP*/ /* byte ordering is opposiugh to allow all legitimate uses, but halt infinite loops * reasonably quickly. */ #define MAXPATHLEN 1024 #define MAXSYMLINKS 8 /* * bit map related macros */ #define setbit(a,i) ((a)[(i)/NBBY] |= 1<<((i)%NBBY)) #define clrbit(a,i) ((a)[(i)/NBBY] &= ~(1<<((i)%NBBY))) #define isset(a,i) ((a)[(i)/NBBY] & (1<<((i)%NBBY))) #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) /* * Macros for fast min/max. */ #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) #define min(a,bte that of pdp11 */ /*#define OLDFORK*/ /* return to parent by bumping pc by 2 */ /*#define FIXEDSTACK*/ /* stack cannot grow */ #define BUFMAPOUT /* buffers are mapped out */ /* * File system parameters and macros. * * The file system is made out of blocks of at most MAXBSIZE units, * with smaller units (fragments) only in the last direct block. * MAXBSIZE primarily determines the size of buffers in the buffer * pool. It may be made larger without any effect on existing * file systems; however ) MIN(a,b) /* For Xenix compatibility. */ #define max(a,b) MAX(a,b) /* For Xenix compatibility. */ /* * Macros for counting and rounding. */ #define howmany(x, y) (((x)+((y)-1))/(y)) #define roundup(x, y) ((((x)+((y)-1))/(y))*(y)) #define LARGECODE /* kernel supports multisegment code */ (a)[(i)/NBBY] & (1<<((i)%NBBY))) #define isclr(a,i) (((a)[(i)/NBBY] & (1<<((i)%NBBY))) == 0) /* * Macros for fast min/max. */ #define MIN(a,b) (((a)<(b))?(a):(b)) #define MAX(a,b) (((a)>(b))?(a):(b)) #define min(a,bmaking it smaller make make some file * systems unmountable. * * Note that the blocked devices are assumed to have DEV_BSIZE * "sectors" and that fragments must be some multiple of this size. * Block devices are read in BLKDEV_IOSIZE units. This number must * be a power of two and in the range of * DEV_BSIZE <= BLKDEV_IOSIZE <= MAXBSIZE * This size has no effect upon the file system, but is usually set * to the block size of the root file system, so as to maximize the * speed of ``fsck''. */ #def=  usr/include/sys/BoosterPak/space.h100644 0 2 2575 3425136000 12461 /* * @(#)systm.h 1.6 12/10/84 Copyright Microsoft Corporation, 1983 */ /* * Booster Pak Version (4.2BSD file system implementation) */ #ifndef FILSYS #define FILSYS struct fs #endif /* * Random set of variables used by more than one routine. */ struct inode *rootdir; /* pointer to inode of root directory */ struct inode *atdir; /* pointer to inode of @ directory AMG */ struct inode *ninode; /* dummy inode ptr for remote requests */ int numhost; /* number of network hosts on the system */ struct/* * @(#)space.h 1.5 12/10/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Booster Pak Version (4.2BSD file system implementation) */ #include "buf.h" #include "tty.h" #include "proc.h" #include "text.h" #include "dir.h" #include "a.out.h" #include "user.h" #include "file.h" #include "inode.h" #include "map.h" #include "callo.h" #include "mount.h" #include "var. proc *runq; /* head of linked list of running processes */ struct proc *Hogproc; /* if non-NULL, schedule only this process */ short cputype; /* type of cpu */ time_t lbolt; /* time in HZ since last boot */ time_t time; /* time in sec from 1970 */ int Hz; /* configurable clock speed */ int Timezone; /* configurable timezone */ int Dstflag; /* configurable DST flag */ int mpid; /* generic for unique process id'sh" #include "sysinfo.h" #include "locking.h" int Timezone=TIMEZONE; int Dstflag=DSTFLAG; int Cmask=CMASK; char sabuf[NSABUF][BUFBSIZE]; struct bufhd bufhash[NHBUF]; /* buffer hash table */ struct buf buf[NBUF+NSABUF]; struct file file[NFILE]; struct inode inode[NINODE]; struct locklist locklist[NFLOCKS]; struct proc proc[NPROC]; struct text text[NTEXT]; struct map swapmap[SMAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mou */ char runin; /* scheduling flag */ char runout; /* scheduling flag */ char runrun; /* scheduling flag */ char runtxt; /* scheduling flag */ char curpri; /* more scheduling */ int maxmem; /* actual max memory per process */ int Maxmem; /* configurable max memory per process */ int physmem; /* physical memory on this CPU */ daddr_t swplo; /* block number of swap space */ int nswap; /* size of swap space */ int updlock; /* lock for sync */ daddr_t rablont[NMOUNT]; struct sysinfo sysinfo; struct syswait syswait; int Hz=HZ; int Maxmem=MAXMEM; struct var v= { NBUF, NSABUF, NCALL, NINODE, &inode[NINODE], NFILE, &file[NFILE], NMOUNT, &mount[NMOUNT], NPROC, &proc[NPROC], NTEXT, &text[NTEXT], NCLIST, MAXUPRC, NFLOCKS, NHBUF, NHBUF-1, }; /* here because they're initialized */ short mm_free = 0; short mm_nfree = 0; MAPSIZ]; struct callo callout[NCALL]; short mm_pages[NCOREL]; short mm_size = NCOREL; struct cblock cfree[NCLIST]; struct mount mouck; /* block to be read ahead */ int Cmask; /* default creation mask */ char regloc[]; /* locs of saved user registers (trap.c) */ short reglocc; /* size of regloc array */ dev_t rootdev; /* device of the root */ dev_t swapdev; /* swapping device */ dev_t pipedev; /* pipe device */ int blkacty; /* active block devices */ /* machine dependent part */ /* function defs */ dev_t getmdev(); daddr_t bmap(); struct inode *ialloc(); struct inode *iget(); struct inode *usr/include/sys/BoosterPak/systm.h100644 0 2 5040 3425136000 12533 =  owner(); struct inode *maknode(); struct inode *namei(); struct buf *alloc(); struct buf *getblk(); struct buf *getablk(); struct buf *bread(); struct buf *breada(); FILSYS *getfs(); /* Berkeley File System compatibility. */ struct file *getf(); struct file *falloc(); int uchar(); /* * Structure of the system-entry table */ struct sysent { char sy_narg; /* total number of arguments */ char sy_nrarg; /* number of args in registers */ int (*sy_call)(); /* handler */ }; int rasize; /* Read ahead blatibility */ #ifndef M_VOID typedef int void; #endif /* 'unsigned' type compatibility */ #ifdef M_OLDSIGN typedef char uchar_t; #define GETUCHAR(uc) (0xff & (uc)) /* extract value */ /* WARNING: you will lose the high bit */ typedef long ulong_t; #define GETULONG(ul) (0x7fff & (ul)) /* extract value */ #else typedef unsigned char uchar_t; typedef unsigned long ulong_t; #endif /* These are types used by the Berkeley File System. */ typedef char u_char; typedef ushort u_short; typedef unsigned int u_ock size. */ FILSYS *mountfs(); ; struct inode *namei(); struct buf *alloc(); struct buf *getblk(); struct buf *getablk(); struct buf *bread(); struct buf *breada(); FILSYS *getfs(); /* Berkeley File System compatibility. */ struct file *getf(); struct file *falloc(); int uchar(); /* * Structure of the system-entry table */ struct sysent { char sy_narg; /* total number of arguments */ char sy_nrarg; /* number of args in registers */ int (*sy_call)(); /* handler */ }; int rasize; /* Read ahead blint; typedef long u_long; typedef unsigned int segment_t; nsigned' type compatibility */ #ifdef M_OLDSIGN typedef char uchar_t; #define GETUCHAR(uc) (0xff & (uc)) /* extract value */ /* WARNING: you will lose the high bit */ typedef long ulong_t; #define GETULONG(ul) (0x7fff & (ul)) /* extract value */ #else typedef unsigned char uchar_t; typedef unsigned long ulong_t; #endif /* These are types used by the Berkeley File System. */ typedef char u_char; typedef ushort u_short; typedef unsigned int u_usr/include/sys/BoosterPak/types.h100644 0 2 3073 3425136000 12524 usr/include/sys/BoosterPak/uio.h100644 0 2 462 3425136000 12133 /* * @(#)types.h 1.4 12/10/84 Copyright Microsoft Corporation, 1983 * * This Module contains Proprietary Information of Microsoft * Corporation and AT&T, and should be treated as Confidential. */ /* * Booster Pak Version (4.2BSD file system implementation) */ typedef struct { int r[1]; } *physadr; typedef long daddr_t; typedef char *caddr_t; typedef unsigned short ushort; typedef unsigned short ino_t; typedef char cnt_t; typedef long time_t; typedef int label_t[6]; /* return, sp, si, di, bp *//* * @(#)uio.h 1.2 12/10/84 */ /* * Booster Pak Version (4.2BSD file system implementation) */ struct iovec { caddr_t iov_base; int iov_len; }; struct uio { struct iovec *uio_iov; u_int uio_iovcnt; off_t uio_offset; u_int uio_segflg; u_int uio_resid; }; enum uio_rw { UIO_READ, UIO_WRITE }; */ #else typedef unsigned char uchar_t; typedef unsigned long ulong_t; #endif /* These are types used by the Berkeley File System. */ typedef char u_char; typedef ushort u_short; typedef unsPˆPzõzõ typedef short dev_t; typedef long off_t; typedef long paddr_t; typedef unsigned short mloc_t; /* memory region location */ typedef short msize_t; /* memory region size */ /* 8086 special types */ typedef unsigned short OFF_t; /* address offset */ typedef unsigned short SEG_t; /* address segment */ /* selectors and constructor for device code */ #define major(x) (int)(((unsigned)(x)>>8)) #define minor(x) (int)((x)&0377) #define makedev(x,y) (dev_t)((x)<<8 | (y)) /* 'void' type comp>  usr/include/sys/BoosterPak/tty.h100644 0 2 6174 3425136000 12205 ntrol modes */ /* pick up from termio.h */ /* line discipline 0 modes */ /* pick up from termio.h */ /* default speed */ /* pick up from termio.h */ /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Internal state */ #define TIMEOUT 01 /* Delay timeout in progress */ #define WOPEN 02 /* Waiting for open to complete */ #define ISOPEN 04 /* Device is open */ #define TBLOCK 010 #define CARR_ON 020 /* Software copy of carr/* * %W% %G% Copyright Microsoft Corporation, 1983 */ #define c_cc c_ccx /* to avoid the conflict between the 2 c_cc's */ #include "termio.h" #undef c_cc /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ struct clist { int c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* * A tty structure is needed for each UNIX character device that *ier-present */ #define BUSY 040 /* Output in progress */ #define OASLP 0100 /* Wakeup when output done */ #define IASLP 0200 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define ESC 04000 /* Last char escape */ #define RTO 010000 #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_S is used for normal terminal IO. */ struct tty { struct clist t_rawq; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct cblock *t_buf; /* buffer pointer */ int (*t_proc)(); /* routine for device functions */ ushort t_iflag; /* input modes */ ushort t_oflag; /* output modes */ ushort t_cflag; /* control modes */ ushort t_lflag; /* line discipline modes */ short t_state; /* internal state */ short t_pgrp; /* process group name */ shorUSPEND 2 #define T_RESUME 3 #define T_BLOCK 4 #define T_UNBLOCK 5 #define T_RFLUSH 6 #define T_WFLUSH 7 #define T_BREAK 8 00 /* Wakeup when input done */ #define TTSTOP 0400 /* Output stopped by ctl-s */ #define EXTPROC 01000 /* External processing */ #define TACT 02000 #define ESC 04000 /* Last char escape */ #define RTO 010000 #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* l_output status */ #define CPRES 1 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #define T_St t_dev; /* minor device number */ char t_line; /* line discipline */ char t_delct; /* delimiter count */ char t_col; /* current column */ char t_row; /* current row */ uchar_t t_cc[NCC+2]; /* settable control chars */ }; /* * The structure of a clist block */ #ifdef BOOSTED #define CLSIZE 24 #else #define CLSIZE 48 #endif struct cblock { struct cblock *c_next; char c_first; char c_last; char c_data[CLSIZE]; }; extern struct cblock cfree[]; extern struct cblock *getcb(); extern struct cblusr/include/netsrv/log.h100644 0 2 1560 3425136000 10572 ock *getcf(); extern struct clist ttnulq; struct chead { struct cblock *c_next; int c_size; }; extern struct chead cfreelist; struct inter { int cnt; }; /* control characters */ /* pick up from termio.h */ /* default control chars */ /* pick up from termio.h */ #define TTIPRI 28 #define TTOPRI 29 /* limits */ extern int ttlowat[], tthiwat[]; #define TTYHOG 256 #define TTXOLO 60 #define TTXOHI 180 /* input modes */ /* pick up from termio.h */ /* output modes */ /* pick up from termio.h */ /* co>  /* * @(#) log.h 1.2 85/01/23 * * log.h - logging defines */ /* * logging devices */ #define FILELOG "/etc/net/errorlog" #define CONSLOG "/dev/console" /* * logging device identifiers */ #define LOGFILE 0 #define LOGCONS 1 /* * logging levels */ #define FATAL 0 /* log error/time/exit message and exit */ #define BAD 1 /* log error/time */ #define WARN 2 /* log warning/time */ #define TRACE 3 /* log message */ #define DEFLEV BAD /* default level */ /* * bits used for log level * and log type ( struct hostent { char ho_name[14]; struct host ho; /* host table entry */ int ho_xnet[LIMNET]; /* indices to network table */ int ho_xcount; /* counter for ho_xnet */ int ho_gate; /* gateway preference */ }; struct network { char net_name[14]; /* name of network */ long net_addr; /* address of network */ int net_type; /* type (i.e., driver) of network */ }; #define ETHADDR 0L /* three byte Ethernet address prefix */ /* * indices for arguments * from serverdaemon to fileserver * Peter,either direct or from file) */ #define LOGLEV 0x00FF #define LOGTYP 0xFF00 #define DIRECT 0x0100 /* * strings file */ #define STRFILE "/etc/net/Netstrings" /* * structure used by error logging routines */ struct errlog { char *e_name; char e_level; char e_place; int e_flags; FILE *e_fp; }; /* * flags values for e_flags field */ #define E_INITED 0x01 /* log warning/time */ #define TRACE 3 /* log message */ #define DEFLEV BAD /* default level */ /* * bits used for log level * and log type ( is this stuff obsolete with pipes? */ #define ARGHOST 1 #define ARGSOCK 2 #define ARGTRAN 3 #define ARGCLIE 4 #define ARGLOGF 5 #define ARGRUID 6 #define ARGRGID 7 /* run packet types (used by run/runserver/fileserver) */ #define EXECMAKE 0 /* create new runserver */ #define EXECINIT 3 /* start up exec of remote process */ #define EXECDATA 4 /* exec data, environment, args, etc */ #define EXECSTART 5 /* start execution of remote process */ #define EXECSIG 6 /* send signal to remote process */ /* pusr/include/netsrv/server.h100644 0 2 4104 3425136000 11314 ipe file descriptor used by all network servers */ #define PIPEFD 3 GSOCK 2 #define ARGTRAN 3 #define ARGCLIE 4 #define ARGLOGF 5 #define ARGRUID 6 #define ARGRGID 7 /* run packet types (used by run/runserver/fileserver) */ #define EXECMAKE 0 /* create new runserver */ #define EXECINIT 3 /* start up exec of remote process */ #define EXECDATA 4 /* exec data, environment, args, etc */ #define EXECSTART 5 /* start execution of remote process */ #define EXECSIG 6 /* send signal to remote process */ /* p/* * @(#) server.h 1.2 85/01/23 * * This file contains definitions used only by * server processes. None of the information in * this file is used by the kernel */ #define LIMADDR 255 /* number of different network machines allwed */ #define LIMNET 10 /* number of different networks allowed */ #define LIMSERVER 5 /* number of different server programs allowed */ #define LIMPASS 200 /* number of password file entries allowed */ #define MAXCMDLIN 50 /* maximum length of command line */ /* Pathnames */ #define DEV_NSNET "/dev/nsnet" #define SYSTEMID_FILE "/etc/systemid" #define HOSTNAMES_FILE "/etc/net/hosts" #define NETNAMES_FILE "/etc/net/nets" #define SERVERPROGS_FILE "/etc/net/servers" #define DAEMONPID_FILE "/etc/net/.daemonpid" #define PASSWD_FILE "/etc/passwd" #define ATDIR "@" /* * structures for assimilation * of SEVERPROGS_FILE and HOSTNAMES_FILE */ struct server { short sp_client; char sp_progname[30]; /* Need enough room for full pathname */ int sp_pipe; }; ?  ååååååå?  ååååååååå@  ååååååååå@  åååååååååA  åååååååååA  åååååååååB  åååååååååB  åååååååååC  åååååååååC  åååååååååD  åååååååååD  åååååååååE  åååååååååE  åååååååååF  åååååååååF  åååååååååG  åååååååååG  åååååååååH  åååååååååH  åååååååååI  åååååååååI  åååååååååJ  åååååååååJ  åååååååååK  åååååååååK  åååååååååL  åååååååååL  åååååååååM  åååååååååM  åååååååååN  åååååååååN  åååååååååO  åååååååååO  ååååååååå