ected page user accessing kernel space */ #define NOT_DGNT 0x4000 /* DKBG- 0 = disk DMA cycle */ #define NOT_XGT0 0x2000 /* EXP0BG- 0 = EXP0 DMA cycle */ #define NOT_XGT1 0x1000 /* EXP1BG- 0 = EXP1 DMA cycle */ #define NOT_XGT2 0x800 /* EXP2BG- 0 = EXP2 DMA cycle */ #define NOT_XGT3 0x400 /* EXP3BG- 0 = EXP3 DMA cycle */ #define UPPER_DATA_STROBE 0x200 /* UDS- 0 = Upper Data Strobe from 68010 */ #define LOWER_DATA_STROBE 0x100 /* LDS- 0 = Lower Data Strobe from 68010 */ #define PA23 0x80 /* PA23 Processor Address 23 */ #define PA22 0x40 /* PA22 Processor Address 22 */ #define LA21 0x20 /* A21 Logical Address 21 */ #define LA20 0x10 /* A20 Logical Address 20 */ #define LA19 0x8 /* A19 Logical Address 19 */ #define LA18 0x4 /* A18 Logical Address 18 */ #define LA17 0x2 /* A17 Logical Address 17 */ #define LA16 0x1 /* A16 Logical Address 16 */ #define A23_A16_MASK 0xff /* mask of A23 to A16 */ #define A21_A16_MASK 0x3f /* mask of A21 to A16 */ /* Bus Status Register 1 - BSR1 (440,000) (r) */ /* Read only. Uses all of 16 bit word */ /* Latched at the same time as the GSR and BSR0, also cleared by CSR */ #define BSR1_ADDR ((unsigned short *)0x440000) #define A15_A00_MASK 0xffff /* mask of A15 to A0 */ /* Off-board addressing registers */ #define MY_SLOT ((slot_t *)0) /* lie about it */ /* Hardware Register Definitions */ #define KSTACK 0x70900 /* kernel stack address */ #define PG_USER 0x70 /* virtual page no of user table */ /* mcr_save must be written to whenever the real MCR is written to. */ extern ushort mcr_save; /* defines to manipulate the LED's */ /* where x is any sum of LED0, LED1, LED2, LED3 */ #define led_init() led_off(LED0|LED2|LED1|LED3) #define led_on(x) *MCR_ADDR = (mcr_save &= ~(ushort)(x)) #define led_off(x) *MCR_ADDR = (mcr_save |= (ushort)(x)) #define led_toggle(x) *MCR_ADDR = (mcr_save ^= (ushort)(x)) /* address in vector table of a pointer to the CDT. */ #define pCDT 0x3F8 /* software leaves pointer in penultimate int vector */ /* CDT signature long word */ #define SIG1 0x45504A52 /* Format - to be used by crash in analyzing dump * * 0000 - 003F: machine registers * 0040 - 0041: GSR * 0042 set to zero * 0043 - 0045: BSR * 0046 - 0845 memory map registers * 0846 - 08C5 CDT */ /* Displacements from the start of a crash dump plus SAVEAREA. */ #define SAVEAREA 0x0000 #define SVREGS 0x0000 #define SVGSR 0x0040 #define SVBSR 0x0042 #define SVMAP 0x0046 #define SVCDT 0x0846 /* Format of the CDT (128 bytes) * signature 4 bytes * lbolt 4 bytes * time of day 4 bytes * reason 1 byte * (0 = panic, 1 = reset, 2 = poweron) * boot media 1 byte * (2 = fd, 1 = syq, 0 = hd) * panic string 114 bytes #define CdtSig 0x00 #define CdtLbolt 0x04 #define CdtTOD 0x08 #define CdtReason 0x0C #define CdtMedia 0x0D #define CdtPanic 0x0E */ #define SZPANIC 114 #define SZCDT 128 struct CDT { unsigned int CdtSig; time_t lbolt; time_t time; char CdtReason; char CdtMedia; char CdtPanic[SZPANIC]; }; /* Reasons */ #define PANIC 0 #define RESET 1 #define POWERON 2 /* Address the loader is loaded at */ #define LOADADDR 0x70000 #define BOOTCDT LOADADDR-SZCDT #endif hardware_h 0707070000020277631004440000020000020000031647360000017757000003300000020147usr/include/sys/hardware.m#sccs "@(#)uts/kern/sys:hardware.m 1.1" # Convergent Technologies - System V - Jul 1983 #ifndef hardware_m #define hardware_m #S4 HARDWARE DEFINITION - processor # 68010 ASSEMBLY INCLUDE FILE # (see also iohw.m for peripherals) # # FILE NAME: hardware.m # #Memory mapping hardware #from sys/param.h set VUSER_START,0x80000 # start address of user process set VUSER_END,0x300000 # end address of user process set SHLIB_START,VUSER_END set SHLIB_END,0x380000 set KVMEM_START,SHLIB_END set KVMEM_END,0x400000 set MAXUMEM,0x300 set SYSPAGE,0x80 set KVMEM_PAGES,128 set SHLIB_PAGES,128 set PG_BASE,0x400000 #address of page table set USER_MAP,PG_BASE + 256 # address of user part of page table set MAP_TOP,PG_BASE+2048-512 # address past end of user memory map set SL_MAP,MAP_TOP # address of shlib part of page table set KV_MAP,MAP_TOP+256 # address of kvmem part of page table set UPTE,0x4000E0 # address of UPAGE pte #Page table entry. #WE bit 15 =1 user can write page, =0 user can read page #USE bits 14-13 value 0=not present, 1=present, not accessed # value 2=accessed not written, 3=written to #PAGEADDR bits 8-0 PHYSADDR=(PAGEADDR*4096) + byte within page #STATES: #page not in memory: WE set as needed and rest=0 #page in memory: WE, PAGEADDR set as needed and USE non zero set PROT_MASK,0x8000 #mask for write bit set USE_MASK,0x6000 #mask for usage bits set PG_MASK,0x3ff #page address mask set PG_WRITE,0x8000 #user write enable set NO_PAGE,0x0 #to initialize pte's set PG_IN,0x7fff #AND mask set PG_PRESENT,0x2000 #pte&USE_MASK page just in set PG_NOT_DIRTY,0x4000 #pte&USE_MASK=accessed set PAGE_DIRTY,0x6000 #pte&USE_MASK=written to set P_ACCESS_CHECK,0x6000 #AND mask set NO_ACCESS,0 set TOTAL_PTES,1024 set TOTAL_PAGES,1024 set PAGES_IN_PROC,1024-KVMEM_PAGES-SHLIB_PAGES set BYTES_PER_PAGE,0x1000 set PAGESHIFT,12 #gets page number from addr #4 Mbyte logical address space set MAX_MEM,0x400000 #4 Mbyte physical address space set MAX_PHYS_MEM,0x400000 set PAGES_PER_SEG,16 #needed to correspond to megaframe rounding #some defines that lie about some things set SEGS_PER_PROC,64 #miniframe doesn't have segments set SEGSHIFT,4 #seg to page set PG_KR,0 #the kernel can read anything set PG_KW,0 #the kernel can write to anything #Page table entry masks set PG_PROT,0x00008000 set PG_STAT,0x00006000 set PG_ACC,0x00004000 set PG_V,0x00002000 set PG_M,0x00006000 set PG_FOD,0x00001000 set PG_VREADM,0x00000400 set PG_PFNUM,0x000003ff set USIZE,1 #number of pages in usrtbl (upage) set USRSIZE,4096 #size of usrtbl (upage) in bytes set SEGSIZE,0x10000 #size of a segment #processor (mostly) registers #from sys/hardware.h #WARNING: All these definitions are set up on the assumption #that they are operating on 16 bit quantities read/written from/to #the even address specified as the register address. #It is further assumed that all reads/writes of hardware registers #will be performed as 16 bit transfers to the even byte address. #It is believed that other schemes may work, but this is the way #these definitions are set up. #68010 status bits set S_TRACE,0x8000 set S_SUPV,0x2000 set S_INTMASK,0x700 set HIGH,S_SUPV + S_INTMASK #high priority supervisor mode (spl 7) set LOW,S_SUPV #low priority, supervisor mode (spl 0) #General Control Register - GCR #Write only. Uses address bits 16-18 of I/O address E4X000 set SYSERR_GCR_ADDR,0xE40000 #EE+ set SYSERR_ENABLE,0x8000 #EE 1=enable NMI/BERR set SYSERR_DISABLE,0x0000 #EE 0=enable NMI/BERR set PE_INT_GCR_ADDR,0xE41000 #PIE+ set PE_INT_ENABLE,0x8000 #PIE 1=enable PE's set PE_INT_DISABLE,0x0000 #PIE 1=disable PE's set PE_FRC_GCR_ADDR,0xE42000 #BP+ set PE_FRC_ENABLE,0x8000 #BP 1=force bad parity set PE_FRC_DISABLE,0x0000 #BP 1=force bad parity set ROM_GCR_ADDR,0xE43000 #ROMLMAP- set ROM_DISABLE,0x8000 #ROMLMAP 1=ROM disabled at low addr set ROM_ENABLE,0x0000 #ROMLMAP 0=ROM mapped at low addr set L1MD_GCR_ADDR,0xE44000 #L1MD- set L2MD_GCR_ADDR,0xE45000 #L2MD- set MD_DISCONNECT,0x8000 #L1MD modem disconnected from line set MD_CONNECT,0x0000 #L1MD modem connected to line set DNCT1_GCR_ADDR,0xE46000 #D/NCD1- set DNLN2_CONNECT,0x8000 #D/NCD1 1 = dial/network connected # to line 2 set DNLN1_CONNECT,0x0000 #D/NCD1 0 = dial/network connected # to line 1 # Miscellaneous Control Register - MCR (4A0,000) (w) # Write only. Uses most significant byte of 16 bit word set MCR_ADDR,0x4a0000 set CLRSINT,0x8000 #CLRSINT- toggle from 1 to 0 and back to # 1 to dismiss level 6, 60 hertz # interrupt set DMA_READ,0x4000 #DMAR/W- 0 = disk DMA write # 1 = disk DMA read set LPSTB,0x2000 #LPSTB+ toggle from 0 to 1 and back # to 0 to strobe data to line printer set MCKSEL,0x1000 #MCKSEL- 0 = modem RX & TX selected # 1 = programmable Baud Rate # generator is selected set LED3,0x800 #LED3- 0 = on, 1 = off set LED2,0x400 #LED2- 0 = on, 1 = off set LED1,0x200 #LED1- 0 = on, 1 = off set LED0,0x100 #LED0- 0 = on, 1 = off #General Status Register - GSR (410,000) (r) #Read only. Uses most significant byte of 16 bit word set GSR_ADDR,0x410000 set R_W_CYCLE,0x4000 #R/W- 1=read cycle set NPC_CYCLE,0x2000 #NPC+ 1=DMA 0=processor set PAGE_FAULT,0x1000 #PF- 0=page fault set PIE_STATE,0x400 #PIE+ 1=PE's are enabled set USR_IO_FAULT,0x100 #UIE- 0=user accessed I/O #Clear Status Register - CSR #Read/Write. Uses most significant byte of 16 bit word #Any access to this register clears the GSR and BSR0, BSR1 set CSR_ADDR,0x4C0000 #Bus Status Register 0 - BSR0 (430,000) (r) #Read only. Uses 16 bit word #Latched at the same time as the GSR and BSR1, also cleared by CSR set BSR0_ADDR,0x430000 set MMU_ERR,0x8000 # 0=mmu error: # processor or DMA page fault # user writing to write protected page # user accessing kernel space set NOT_DGNT,0x4000 #DKBG- 0 = disk DMA cycle set NOT_XGT0,0x2000 #EXP0BG- 0 = EXP0 DMA cycle set NOT_XGT1,0x1000 #EXP1BG- 0 = EXP1 DMA cycle set NOT_XGT2,0x800 #EXP2BG- 0 = EXP2 DMA cycle set NOT_XGT3,0x400 #EXP3BG- 0 = EXP3 DMA cycle set UPPER_DATA_STROBE,0x200 #UDS- 0 = Upper Data Strobe from 68010 set LOWER_DATA_STROBE,0x100 #LDS- 0 = Lower Data Strobe from 68010 set PA23,0x80 #PA23 Processor Address 23 set PA22,0x40 #PA22 Processor Address 22 set LA21,0x20 #A21 Logical Address 21 set LA20,0x10 #A20 Logical Address 20 set LA19,0x8 #A19 Logical Address 19 set LA18,0x4 #A18 Logical Address 18 set LA17,0x2 #A17 Logical Address 17 set LA16,0x1 #A16 Logical Address 16 set A23_A16_MASK,0xff #mask of A23 to A16 set A21_A16_MASK,0x3f #mask of A21 to A16 #Bus Status Register 1 - BSR1 #Read only. Uses all of 16 bit word #Latched at the same time as the GSR and BSR0, also cleared by CSR set BSR1_ADDR,0x440000 set A15_A00_MASK,0xffff #mask of A15 to A0 # Hardware Register Definitions set KSTACK,0x70900 #kernel stack address set PG_USER,0x70 #virtual page no of user table # mcr_save must be written to whenever the real MCR is written to. # global mcr_save # address in vector table of a pointer to the CDT. set pCDT,0x3F8 #software leaves pointer in penultimate int vector # CDT signature long word set SIG1,0x45504A52 # Format - to be used by crash in analyzing dump # # 0000 - 003F: machine registers # 0040 - 0041: GSR # 0042 set to zero # 0043 - 0045: BSR # 0046 - 0845 memory map registers # 0846 - 08C5 CDT # Displacements from the start of a crash dump plus SAVEAREA. set SAVEAREA,0x0000 set SVREGS,0x0000 set SVGSR,0x0040 set SVBSR,0x0042 set SVMAP,0x0046 set SVCDT,0x0846 # Format of the CDT (128 bytes) # signature 4 bytes # lbolt 4 bytes # time of day 4 bytes # reason 1 byte # (0 = panic, 1 = reset, 2 = poweron) # boot media 1 byte # (2 = fd, 1 = syq, 0 = hd) # panic string 114 bytes set CdtSig,0x00 set CdtLbolt,0x04 set CdtTOD,0x08 set CdtReason,0x0C set CdtMedia,0x0D set CdtPanic,0x0E set SZPANIC,114 set SZCDT,128 # Disk types. set HD,0 #Winchester set SY,1 #syquest set FD,2 #Floppy # Reasons set PANIC,0 set RESET,1 set POWERON,2 # copy of VHBMAGIC from gdisk.h set VHBMAGIC,0x55515651 # Address the loader is loaded at set LOADADDR,0x70000 set BOOTCDT,LOADADDR-SZCDT #endif hardware_m 0707070000020277641004440000020000020000031647600000017757000003000000030607usr/include/sys/i8274.h#sccs "@(#)uts/kern/sys:i8274.h 1.1" /* Convergent Technologies - System V - Jul 1983 */ #ifndef i8274_h #define i8274_h /* * Definitions for the I8274. */ /* * defines for WR0 */ #define REG_SELECT 0x07 /* A mask for the field that selects which register */ #define B35MASK 0x38 /* mask for bits 3-5 */ /* values for bits 3-5 - Command bits */ #define NULL_CTL 0x00 /* null code */ #define SEND_ABORT 0x08 /* send abort (sdlc) */ #define RST_EX_INT 0x10 /* reset ext/status interrupts */ #define RST_CHNL 0x18 /* channel reset */ #define ENAB_INT 0x20 /* enable interrupt on next Rx char */ #define RST_TX_PEND 0x28 /* reset Tx int/DMA pending */ #define ERR_RESET 0x30 /* error reset */ #define END_OF_INT 0x38 /* end of interrupt */ #define CRC_RST_CODE 0xc0 /* mask for CRC reset code */ /* values for bits 6-7 - CRC reset code */ #define NULL_CRC 0x00 /* null code */ #define RST_RX_CRC 0x40 /* reset RX CRC checker */ #define RST_TX_CRC 0x80 /* reset TX CRC generator */ #define RST_TX_URUN 0xc0 /* reset TX underrun/EOM latch */ /* * defines for WR1 */ #define WR1 0x01 /* Write register 1 */ #define EXT_INTENAB 0x01 /* external/status interrupt enable */ #define TX_INTENAB 0x02 /* TX interrupt/DMA enable */ #define VEC_TYPE 0x04 /* status affects vector 1=variable 0=fixed */ #define RX_INT_MD 0x18 /* mask for RX interrupt mode */ /* values for bits 3-4 - RX interrupt mode */ #define RX_INTDISAB 0x00 /* 0= RX interrupts/DMA disable */ #define RX_INT_FIRST 0x08 /* 1= RX interrupt on 1'st char only or special condition */ #define RX_INT_ALLPE 0x10 /* 2= interrupt on all RX chars or special condition (inc PE) */ #define RX_INTALL 0x18 /* 3= interrupt on all RX chars or special condition (not PE) */ #define WAIT_RX_TX 0x20 /* 1=wait on RX, 0=wait on TX */ #define MBZ 0x40 /* must be zero */ #define WAIT_ENAB 0x80 /* 1=wait enabled 0=wait disabled */ /* * defines for WR2 (channel A) */ #define WR2 0x02 /* Write register 2 */ #define SYS_CONFIG 0x03 /* system configuration */ /* values for bits 0-1 - system configuration */ #define INTA_INTB 0x00 /* channels A+B both interrupt */ #define DMAA_INTB 0x01 /* channel A uses DMA, channel B interrupts */ #define DMAA_DMAB 0x02 /* channels A+B both use DMA */ #define ILL_CODE 0x03 /* illegal code */ #define CH_PRIORITY 0x04 /* relative priorities: 0=RXA, TXA, RXB, TXB, EXTA, EXTB (low) 1=RXA, RXB, TXA, TXB, EXTA, EXTB (low) */ #define INT_CODE 0x18 /* interrupt code */ /* values for bits 3-4 - system configuration */ #define VEC_85_1 0x00 /* vectored 8085 mode 1 */ #define VEC_85_2 0x08 /* vectored 8085 mode 2 */ #define VEC_86_88 0x10 /* vectored 8086/8088 */ #define VEC_ILL 0x18 /* illegal mode */ #define VECTORED 0x20 /* 1=vectored 0=non vectored */ #define MBZ2 0x40 /* must be zero */ #define PIN_10 0x80 /* 0=RTS 1=SYNDET */ /* * defines for WR2 (channel B) */ #define INT_TYPE 0x07 /* interrupt type: (set by 8274) 0=channel B TX 0=channel B EXT/status 0=channel B RX 0=channel B special RX 0=channel A TX 0=channel A EXT/status 0=channel A RX 0=channel A special RX */ #define VEC_BASE 0xf8 /* vector base # for this chip */ /* * defines for WR3 */ #define WR3 0x03 /* Write reister 3 */ #define RX_ENAB 0x01 /* RX enable */ #define SYNC_CH_INH 0x02 /* SYNC char load inhibit */ #define ADDR_SRCH_MD 0x04 /* address search mode (SDLC) */ #define RX_CRC_ENAB 0x08 /* RX CRC enable */ #define ENT_HUNT_MD 0x10 /* enter hunt mode */ #define AUTO_ENAB 0x20 /* auto enable */ #define RX_SIZE 0xc0 /* RX character size mask */ /* values for bits 6-7 - RX character size */ #define RX5 0x00 /* 0= 5 bits per char */ #define RX7 0x40 /* 1= 7 bits per char */ #define RX6 0x80 /* 2= 6 bits per char */ #define RX8 0xc0 /* 3= 8 bits per char */ /* * defines for WR4 */ #define WR4 0x04 /* Write reister 4 */ #define PARITY 0x01 /* 1=enable parity 0=disable parity */ #define PARITYEVEN 0x02 /* 1=even parity 0=odd parity */ #define STOP_BITS_MSK 0x0c /* mask for the stop bits */ /* values for bits 2-3 - stop bits/sync mode */ #define ENAB_SYNC 0x00 /* 0= selects synchronous modes */ #define STOP1 0x04 /* 1= 1 stop bit (asynch) */ #define STOP15 0x08 /* 2= 1.5 stop bits (asynch) */ #define STOP2 0x0c /* 3= 2 stop bits (asynch) */ #define SYNC_MD_SEL 0x30 /* sync mode select mask */ /* values for bits 4-5 - SYNC mode select */ #define SYNC8 0x00 /* 0= 8 bit sync character */ #define SYNC16 0x10 /* 1= 16 bit sync character */ #define SDLC_HDLC 0x20 /* 2= SDLC mode (flag sync) */ #define EXT_SYNC_MD 0x30 /* 3= external sync mode */ #define CLOCK_MD_MSK 0xc0 /* mask for the clock mode */ /* values for bits 6-7 - clock modes */ #define X1 0x00 /* 0= x1 clock */ #define X16 0x40 /* 1= x16 clock */ #define X32 0x80 /* 2= x32 clock */ #define X64 0xc0 /* 3= x64 clock */ /* * defines for WR5 */ #define WR5 0x05 /* Write reister 5 */ #define TX_CRC_ENAB 0x01 /* 1= enable TX CRC */ #define RTS 0x02 /* RTS pin */ #define SDLC_CRC_16 0x04 /* 1=CRC 16 0=CCITT CRC */ #define TX_ENABLE 0x08 /* 1=enable transmitter */ #define SEND_BREAK 0x10 /* 1= break line 0=normal */ #define TX_CHR_LN 0x60 /* TX character length mask */ /* values for bits 5-6 - TX character length */ #define TX5 0x00 /* 0= 5 bits per char */ #define TX7 0x20 /* 1= 7 bits per char */ #define TX6 0x40 /* 2= 6 bits per char */ #define TX8 0x60 /* 3= 8 bits per char */ #define DTR 0x80 /* DTR pin */ /* * defines for WR6 */ #define WR6 0x06 /* Write reister 6 */ #define SYNC_ADDR 0xff /* sync/address */ /* * defines for WR7 */ #define WR7 0x07 /* Write reister 7 */ #define SYNC_FLAG 0xff /* sync/flag */ /************************************************************************* * * The following write registers apply only to the 8530 SCC * used on the RS232 expansion board for the S/4. * defines for WR9 (accessed via either channel) * * Master interrupt control and channel reset. * Channel reset is done here instead of WR0 per 8274. */ #define WR9 0x09 /* write register */ #define M_INT_ENB 0x08 /* master interrupt enable */ #define DIS_LOW_PRI 0x04 /* disable daisy chain int */ #define NO_VECTOR 0x02 /* no vector presented on int */ #define STAT_VECTOR 0x01 /* status affects vector */ #define CHIP_RST 0xc0 /* hardware reset of SCC */ #define CHAN_A_RST 0x80 /* reset channel A */ #define CHAN_B_RST 0x40 /* reset channel B */ #define STAT_HIGH 0x10 /* v4,v5,v6 reflects stat*/ /* * defines for WR10 * * Select various advanced transmission modes. */ #define LOOP_MODE 0x02 /* set to SDLC loop mode */ #define URUN_ABORT 0x04 /* send abort seq on underrun, if not set, send flags */ #define IDLE_MARK 0x08 /* send mark on idle else flags */ #define SET_NRZ 0x00 /* normal mode */ #define SET_NRZI 0x20 /* NRZI mode */ #define SET_FM1 0x80 /* transmission 1 */ #define SET_FM0 0x60 /* transmission 0 */ /* * defines for WR11 * * transmit and receive clock mode selection. */ #define WR11 0x0b #define XTAL_SEL 0x00 /* output crystal on TRxC */ #define TX_CLK_SEL 0x01 /* output tx clock on TRxC */ #define BR_GEN_SEL 0x02 /* output baud gen on TRxC */ #define DPLL_SEL 0x03 /* output DPLL on TRxC */ #define TRXC_OUT 0x04 /* select TRxC pin for output */ #define RTXC_CLK 0x00 /* clock input on RTxC pin */ #define TRXC_CLK 0x28 /* clock input on RTxC pin */ #define BR_GEN_CLK 0x50 /* clock input from baud gen */ #define DPLL_CLK 0x78 /* clock input from DPLL */ #define XTAL_RTXC 0x80 /* crystal input on RTxC pin */ /* * defines for WR12 - Lower byte of baud rate generator * time constant. * defines for WR13 - Upper byte of baud rate generator * time constant. */ #define WR12 0x0c #define WR13 0x0d /* * defines for WR14 * * Various advanced options are selected or enabled here. */ #define WR14 0x0e #define ENB_BAUD_GEN 0x01 /* enable baud generator */ #define SRC_BAUD_GEN 0x02 /* select source as baud gen */ #define LOOP_BACK 0x10 /* select local loop back */ #define ENTER_SRCH 0x20 /* enter search mode */ #define RST_MCLK 0x40 /* reset missing clock */ #define SET_BRG_SRC 0x80 /* set source = BR generator */ #define SET_RTX_SRC 0xA0 /* set source = RTxC */ #define SET_FM_MODE 0xC0 /* set FM mode */ #define NRZI_MODE_SET 0xE0 /* set NRZI mode */ /* * defines for WR15 * * External/Status interrupt control register */ #define WR15 0x0f #define ZERO_CNT_INTENB 0x02 /* zero reached in timer int enable */ #define CD_INTENB 0x08 /* carrier detect int enable */ #define SYNC_INTENB 0x10 /* sync/hunt int enable */ #define CTS_INTENB 0x20 /* clear to send int enable */ #define TXURUN_INTENB 0x40 /* underrun int enable */ #define ABORT_INTENB 0x80 /* break/abort int enable */ /* * defines for RR0 */ #define RX_IN 0x01 /* RX character available */ #define INT_PEND 0x02 /* interrupt pending (chnl A only) */ #define TX_EMPTY 0x04 /* TX buffer empty */ #define CARRIER 0x08 /* carrier detect (CD) */ #define SYNC_HUNT 0x10 /* sync/hunt */ #define CTS 0x20 /* CTS */ #define TX_URUN 0x40 /* TX underrun/EOM */ #define BREAK 0x80 /* break/abort */ /* RX_IN and FLAGON are used in devconflg */ #define FLAGON BREAK /* * defines for RR1 */ #define ALL_SENT 0x01 /* all sent */ #define RESIDUE_CODES 0x0e /* mask for residue codes */ /* values for bits 1-3 - residue codes */ #define RC28 0x00 /* 0= 2(prev) 8(2'nd prev) */ #define RC06 0x02 /* 1= 0(prev) 6(2'nd prev) */ #define RC04 0x04 /* 2= 0(prev) 4(2'nd prev) */ #define RC08 0x06 /* 3= 0(prev) 8(2'nd prev) */ #define RC03 0x08 /* 4= 0(prev) 3(2'nd prev) */ #define RC07 0x0a /* 5= 0(prev) 7(2'nd prev) */ #define RC05 0x0c /* 6= 0(prev) 5(2'nd prev) */ #define RC18 0x0e /* 7= 1(prev) 8(2'nd prev) */ #define PAR_ERR 0x10 /* parity error */ #define RX_ORUN 0x20 /* RX overrun error */ #define CRC_FRAME 0x40 /* CRC/framing error */ #define END_OF_FRAME 0x80 /* end of frame */ /* * defines for RR2 */ #define INT_VEC 0xff /* pending interrupt vector */ /* * defines for RR3 (added for 8530 SCC only) */ #define B_EXSTAT_IP 0x01 /* chan B ex/stat int pending */ #define B_TX_IP 0x02 /* chan B tx int pending */ #define B_RX_IP 0x04 /* chan B rx int pending */ #define A_EXSTAT_IP 0x08 /* chan A ex/stat int pending */ #define A_TX_IP 0x10 /* chan A tx int pending */ #define A_RX_IP 0x20 /* chan A rx int pending */ /* * structure containing device addresses and registers * The first part of this structure is accessed by assembly code * in ml/i8274.s. The following entries must not be changed without * changing tx8274. txcnt, txptr, cmdad, datad, cmdadA. */ struct device { int txcnt; /* count of characters in transmit buffer */ char *txptr; /* pointer to transmit character */ ushort *cmdad, *datad; /* address for command and data */ ushort *cmdadA; /* address of A port for this chip */ char wr2,wr3,wr4,wr1; /* chip registers */ char wr5; /* chip registers */ char bprt; /* =0 if B port else A port */ ushort *clkcnt; /* address for 8253 count, this port */ ushort clkpsel; /* timer port selection code for this port */ }; /* data associated with the low level RS-232 input routine in ml/i8274.s */ struct serbuf { char minr; /* minor device number for this character */ char data; /* received data character */ }; extern unsigned short serbuf[]; extern unsigned short *inptr; /* address of next char to put in buffer */ extern unsigned short *outptr; /* address of next char to take from buffer */ extern int serbufcnt; /* count of characters in buffer */ extern int serbufful; /* max characters that can be put in buffer */ extern int serhiwater; /*hi water mark, when serbufcnt exceeds -xoff */ extern int serlowater; /*low water mark, when serbufcnt falls below -xon */ extern unsigned char serinprogress; /* =1 means C serrint is running */ extern unsigned char serxoff; /* XOFF sent by us */ extern unsigned char serinxoff; /* XOFF blocking TX */ extern unsigned char serrqstxoff; /* XOFF requested */ extern unsigned char sercd; /* CD state for all lines */ extern unsigned char sercts; /* CTS state for all lines */ extern unsigned short *bserbuf; /* start of the serial buffer */ extern unsigned short *eserbuf; /* first address past end of serbuf */ extern unsigned char ser_ports[]; /* preserves extended control bits */ #define ALL_SER ser_cnt+1 #define EX_SELA 0x01 #endif i8274_h 0707070000020277651004440000020000020000031650060000017757000002700000002646usr/include/sys/init.h#sccs "@(#)uts/kern/sys:init.h 1.3" /* Convergent Technologies - System V - May 1983 */ extern int clkstart(),cinit(),binit(),iinit(),inoinit(); extern int finit(); #ifndef BASSLOCKING extern int flckinit(); #endif extern gdinit(); extern wvinit(); extern initkbd(); extern int bswinit(),exinit(),setupclock(); extern slotinit(); #ifdef PLP_0 extern lpinit(); #endif #ifndef NOSTREAMS #ifdef STAR_0 extern qinit(); #ifdef URP_MOD extern urp_init (), urp_release (); #endif #ifdef CC_MOD extern cc_init (), cc_release (); #endif #ifdef LB_MOD extern lb_init (), lb_release (); #endif #ifdef STARLAN extern sl_iinit (); #endif #endif STAR_0 #endif NOSTREAMS /* Array containing the addresses of the various initializing */ /* routines executed by "main" at boot time. */ int (*init_tbl[])() = { slotinit, inoinit, cinit, binit, setupclock, clkstart, /* initialises the clock if poweron, otherwise iinit calls setclk on reboot with the clock already running */ gdinit, finit, iinit, #ifndef BASSLOCKING flckinit, #endif bswinit, #ifdef PLP_0 lpinit, #endif wvinit, /* this must come before wdinit */ initkbd, /* this must come before wdinit */ /*wdinit, The Window Driver is Loaded Separately */ #ifndef NOSTREAMS #ifdef STAR_0 qinit, #ifdef URP_MOD urp_init, #endif #ifdef CC_MOD cc_init, #endif #ifdef LB_MOD lb_init, #endif #ifdef STARLAN sl_iinit, #endif #endif STAR_0 #endif NOSTREAMS 0 }; 0707070000020277661004440000020000020000031650160000017757000002600000001271usr/include/sys/ino.h#sccs "@(#)uts/kern/sys:ino.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef ino_h #define ino_h /* 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 modified */ time_t di_ctime; /* time created */ }; /* * the 40 address bytes: * 39 used; 13 addresses * of 3 bytes each. */ #endif ino_h 0707070000020277671004440000020000020000031650170000017757000003000000006553usr/include/sys/inode.h#sccs "@(#)uts/kern/sys:inode.h 1.3" /* Convergent Technologies - System V - May 1983 */ #ifndef inode_h #define inode_h /* * 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)) struct inode { struct inode *i_forw; /* hash chain forw */ struct inode *i_back; /* hash chain back */ 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 */ #ifndef NOSTREAMS struct stdata *i_sptr; /* associated stream */ #endif struct { union { daddr_t i_a[NADDR]; /* if normal file/directory */ short i_f[NSADDR]; /* if fifo's */ } i_p; daddr_t i_l; /* last logical block read (for read-ahead) */ } i_blks; short i_vfdcnt; /* number of fd's vreading this inode */ #ifndef BASSLOCKING long *i_filocks; /* svr3 record locking */ #else struct locklist *i_locklist; /* locked region list */ #endif }; #ifdef BASSLOCKING /* file locking hooks -- Sept 1980, John Bass */ 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 proc *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 */ #endif extern struct inode *inode; /* The inode table itself */ /* flags */ #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 ISYN 0200 /* do synchronous write for iupdate */ /* modes */ #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 ISUID 04000 /* set user id on execution */ #define 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 #ifndef BASSLOCKING #define IMNDLCK 0001 #endif #define i_addr i_blks.i_p.i_a #define i_lastr i_blks.i_l #define i_rdev i_blks.i_p.i_a[0] #define i_faddr i_blks.i_p.i_a #define NFADDR 10 #define PIPSIZ (NFADDR * BSIZE) #define i_frptr i_blks.i_p.i_f[NSADDR-5] #define i_fwptr i_blks.i_p.i_f[NSADDR-4] #define i_frcnt i_blks.i_p.i_f[NSADDR-3] #define i_fwcnt i_blks.i_p.i_f[NSADDR-2] #define i_fflag i_blks.i_p.i_f[NSADDR-1] #define IFIR 01 #define IFIW 02 #endif 0707070000020277701004440000020000020000031650230000017757000003000000004205usr/include/sys/iobuf.h#sccs "@(#)uts/kern/sys:iobuf.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef iobuf_h #define iobuf_h #include #include /* * 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 same 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) */ int io_nreg; /* number of regs to log on errors */ physadr io_addr; /* csr address */ time_t io_start; int io_s1; /* space for drivers to leave things */ int io_s2; /* space for drivers to leave things */ }; #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 */ /* * IO statistics are kept for each physical unit of each * block device (within the driver). Primary purpose is * to establish a guesstimate of error rates during * error logging. */ struct iostat { long io_ops; /* number of read/writes */ long io_misc; /* number of "other" operations */ ushort io_unlog; /* number of unlogged errors */ }; /* * structure for system accounting */ struct iotime { struct iostat ios; long io_bcnt; /* total blocks transferred */ time_t io_act; /* total controller active time */ time_t io_resp; /* total block response time */ }; #define io_cnt ios.io_ops #endif 0707070000020277711004440000020000020000031650260000017757000003000000000132usr/include/sys/ioctl.h#sccs "@(#)uts/kern/sys:ioctl.h 1.1" /* Convergent Technologies - System V - May 1983 */ 0707070000020277721004440000020000020000031650270000017757000002700000010371usr/include/sys/iohw.h#sccs "@(#)uts/kern/sys:iohw.h 1.1" /* Convergent Technologies - System V - Jun 1983 */ #ifndef iohw_h #define iohw_h #include #include /* Video Bitmap Definitions */ #define VIDMEM ((ushort *)0x420000) /* mem addr */ #define VIDWIDTH 720 /* pixels */ #define VIDHEIGHT 348 #define VIDBYTES (VIDWIDTH/8) /* bytes */ /* value to use in touching processor registers for some control functions */ #define ACTIVATE (ushort)0 /* --------------------------------------------------------- | RS-232 Ports A + B Registers - 8274 | | Port A is used for RS-232, port B is used for | | the SCM modem. | | Uses the least significant byte of 16 bit word | --------------------------------------------------------- */ #define A_DATA_ADDR ((ushort *)0xE50000) /* R/W */ #define B_DATA_ADDR ((ushort *)0xE50002) /* R/W */ #define A_CMND_ADDR ((ushort *)0xE50004) /* R/W */ #define B_CMND_ADDR ((ushort *)0xE50006) /* R/W */ /* --------------------------------------------------------- | Keyboard serial driver, using the Motorola 6850 | | Uses the least significant byte of 16 bit word | --------------------------------------------------------- */ #define C_DATA_ADDR ((ushort *)0xE70002) /* R/W */ #define C_CMND_ADDR ((ushort *)0xE70000) /* R/W */ /* --------------------------------------------------------- | Baud generator for channel A, the lower 3 | | nibble of the address is the counter value. | | No baud generator for modem channel, constant | | 19.2k at clock input, use divide by 16 and | | divide by 64 logic of 8274 to obtain 1200 and | | 300 baud. | --------------------------------------------------------- */ #define A_BAUD_ADDR ((ushort *)0x4B0000) /* WO */ /* --------------------------------------------------------- | Phone Status Register | | Handset offhook (b3 = 0) | | Line 1 ringing (b2 = 0) | | Line 2 ringing (b1 = 0) | | Message waiting (b0 is complemented every pulse | --------------------------------------------------------- */ #define PHONE_STATUS ((ushort *) 0x450000) /* RO */ /* --------------------------------------------------------- | Parallel Line Printer Registers | | Uses the least significant byte of 16 bit word | --------------------------------------------------------- */ #define LP_STATUS_ADDR ((ushort *)0x470000) /* R */ #define LP_DATA_ADDR ((ushort *)0x4F0000) /* WO */ /* bits in the status register on reading */ #define LP_BUSY 0x80 /* LPB+ 1 = lp busy */ #define LP_SELECTED 0x40 /* LPS+ 1 = lp selected */ #define LP_OUT_PAPER 0x20 /* NP+ 1 = lp out of paper */ #define LP_ERR 0x10 /* LPERR- 0 = lp error */ #define FDINTRQ 0x08 /* FDINTRQ+ 1 = floppy interrupt */ #define HDINTRQ 0x04 /* HDINTRQ+ 1 = hard disk interrupt */ #define PARITY_ERR 0x02 /* PERR- 0 = parity error */ #define DTDET 0x01 /* DTDET- 0 = dial tone detected */ /* --------------------------------------------------------- | DISK Bus interface registers | | Uses the least significant byte of 16 bit word | --------------------------------------------------------- */ #define HD_BASE ((ushort *)0xE00000) #define FD_BASE ((ushort *)0xE10000) #define DMA_CNT ((ushort *)0x460000) /* RW */ #define DMA_LOADDR ((unsigned char *)0x4D0000) /* W */ #define DMA_HIADDR ((unsigned char *)0x4D4000) /* W */ #define DISK_CNTRL ((ushort *)0x4E0000) /* RW */ /* Bits in disk control register */ #define NOT_FDRST 0x80 /* 0 = reset, 1 = not reset */ #define FDR0 0x40 /* 1 = floppy selected */ #define FDMTR 0x20 /* 1 = floppy motor on */ #define NOT_HDRST 0x10 /* 0 = hdc reset, 1 = hdc not reset */ #define HDR0 0x08 /* 1 = hard disk 0 selected */ #define HDSEL 0x07 /* Head select mask */ /* Note: Bit 7 of the general control register is used as hard disk 1 select in machines with this hardware modification. This is an otherwise unused, bit-addressable bit at address 4c7000 */ /* Also note: All bits of the disk control register will be 0 after reset */ /* Bits in dma count register */ #define DMA_ENABLE 0x8000 /* 0 = dma disable, 1 = dma enabled */ #define DMA_CNT_MASK 0x3fff /* Bits 13...0 holds dma count */ #define DMA_ERROR 0x8000 /* dma error bit mask, 0 = error */ /* Masks for dma addresses */ #define DMA_LO_MASK 0x01fe #define DMA_HI_MASK 0x3ffe #endif iohw.h 0707070000020277731004440000020000020000031650370000017757000002700000005226usr/include/sys/iohw.m#sccs "@(#)uts/kern/sys:iohw.m 1.1" # Convergent Technologies - System V - Jul 1983 #ifndef iohw_m #define iohw_m # S4 HARDWARE DEFINITION - peripherals # 68010 ASSEMBLY INCLUDE FILE # (see also hardware.h for processor) # # FILE NAME: iohw.m # # value to use in writing to io control registers to trigger actions. set ACTIVATE,0 #RS-232 Ports A + B Registers - 8274-A #Port A is used for RS-232, port B is not used # except for detecting events. #Uses the least significant byte of 16 bit word set A_DATA_ADDR,0xE50000 #R/W set B_DATA_ADDR,0xE50002 #R/W set A_CMND_ADDR,0xE50004 #WO set B_CMND_ADDR,0xE50006 #WO #RS-232 Ports C + D Registers - 8274-B #Uses the least significant byte of 16 bit word set C_CMND_ADDR,0xE70000 #WO set C_DATA_ADDR,0xE70002 #R/W #Parallel Line Printer Registers #Uses the least significant byte of 16 bit word set LP_STATUS_ADDR,0x470000 #R set LP_DATA_ADDR,0x4F0000 #W #bits in the status register on reading set LP_BUSY,0x80 #LPB+ 1 = lp busy set LP_SELECTED,0x40 #LPS+ 1 = lp selected set LP_OUT_PAPER,0x20 #NP+ 1 = lp out of paper set LP_ERR,0x10 #LPERR- 0 = lp error set FDINTRQ,0x08 #FDINTRQ+ 1 = floppy interrupt set HDINTRQ,0x04 #HDINTRQ+ 1 = hard disk interrupt set PARITY_ERR,0x02 #PERR- 0 = parity error set DTDET,0x01 #DTDET- 0 = dial tone detected #DISK Bus interface registers #Uses the least significant byte of 16 bit word set HD_BASE,0xE00000 set FD_BASE,0xE10000 set DMA_CNT,0x460000 #R/W set DMA_LOADDR_ADDR,0x4D0000 #W set DMA_HIADDR_ADDR,0x4D0100 #W set DISK_CNTRL_ADDR,0x4E0000 #R/W set MCR_ADDR,0x4A0000 #W #Bits in Disk Control Register set NOT_FDRST,0x80 #0 = reset, 1 = not reset set FDR0,0x40 #1 = floppy selected set FDMTR,0x20 #1 = floppy motor on set NOT_HDRST,0x10 #0 = hdc reset, 1 = hdc not reset set HDR0,0x08 #1 = hard disk 0 selected set HDSEL,0x07 #Head select mask #Note: Bit 7 of the general control register is used as hard disk 1 #select in machines with this hardware modification. This is an otherwise #unused, bit-addressable bit at address 4c7000 #Also note: All bits of the disk control register will be 0 after reset #Bits in the miscellaneous control registers pertaining to dma #set DMA_READ,0x4000 |0 = dma write, 1 = dma read #Bits in dma count register set DMA_ENABLE,0x8000 #0 = dma disable, 1 = dma enabled set DMA_CNT_MASK,0x3fff #Bits 13...0 holds dma count set DMA_ERROR,0x8000 #dma error bit mask, 0 = error #Bits in line printer status register pertaining to disk driver #set FDINTRQ,0x08 #1 = fdc interrupt #set HDINTRQ,0x04 #1 = hdc interrupt #Masks for dma addresses set DMA_LO_MASK,0x01fe set DMA_HI_MASK,0x3ffe #endif iohw_m 0707070000020277741004440000020000020000031650430000017757000002600000001661usr/include/sys/ipc.h#sccs "@(#)uts/kern/sys:ipc.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef ipc_h #define ipc_h #include /* Common IPC Access Structure */ struct ipc_perm { ushort uid; /* owner's user id */ ushort gid; /* owner's group id */ ushort cuid; /* creator's user id */ ushort cgid; /* creator's group id */ ushort mode; /* access modes */ ushort seq; /* slot usage sequence number */ key_t key; /* key */ }; /* Common IPC Definitions. */ /* Mode bits. */ #define IPC_ALLOC 0100000 /* entry currently allocated */ #define IPC_CREAT 0001000 /* create entry if key doesn't exist */ #define IPC_EXCL 0002000 /* fail if key exists */ #define IPC_NOWAIT 0004000 /* error if request must wait */ /* Keys. */ #define IPC_PRIVATE (key_t)0 /* private key */ /* Control Commands. */ #define IPC_RMID 0 /* remove identifier */ #define IPC_SET 1 /* set options */ #define IPC_STAT 2 /* get options */ #endif ipc_h 0707070000020277751004440000020000020000031650440000017757000002600000024167usr/include/sys/kbd.h#sccs "@(#)uts/kern/sys:kbd.h 1.2" #include "sys/param.h" /* Miscellaneous Parameters */ #define REPTDLAY (HZ/2) /* initial repeat delay */ #define REPTRATE (HZ/15) /* repeat rate */ /* Special Keyboard Scan Codes */ #define KALLUP 0x40 /* all keys up */ #define KLAST 0x80 /* last entry in list */ #define KBOGUS 0x3F /* invalid code */ #define KSHIFT1 0x48 /* left-hand shift */ #define KSHIFT2 0x49 /* right-hand shift */ #define KCTRL1 0x4C /* left-hand control */ #define KCTRL2 0x4D /* right-hand control */ #define KCAPLCK 0x45 /* caps lock */ #define KNUMLCK 0x7E /* num lock */ #define KPRINT 0x43 /* num 7, print */ #define KRFRSH 0x44 /* num 8, refresh */ #define KPAGE 0x46 /* num 9, page */ #define KBEG 0x47 /* num 4, beg */ #define KHOME 0x4A /* num 5, home */ #define KEND 0x4B /* num 6, end */ #define KPREV 0x05 /* num 1, prev */ #define KUP 0x01 /* num 2, up */ #define KNEXT 0x0C /* num 3, next */ #define KLEFT 0x0E /* num -, left */ #define KDOWN 0x0B /* num 0, down */ #define KRIGHT 0x0F /* num ., right */ /* Keyboard Output Codes */ #define KBDRST 0x92 /* reset */ #define CAPLED 0xB0 /* caplck (b0=0 b1=1) */ #define NUMLED 0xA0 /* numlck (a0=0 a1=1) */ /* Keyboard Table Defs */ #define REPT 0x1 /* key repeats */ #define CAPLCK 0x2 /* caps lock'able */ #define NUMLCK 0x4 /* num lock'able */ #define ILLK -1 /* illegal key */ struct keydef { short kt_codes[3]; /* norm,shift,ctrl */ char kt_flags; /* flags */ }; #ifdef GEN_KT struct keydef keymap[] = { 0xffff,0xffff,0xffff, 0, /* 0x00 (key= 0, att= 0) `unused' */ 0x0241,0x0254,0x0254, 5, /* 0x01 (key=93, att=98) `ROLL/UP' */ 0x0361,0x0341,0x0341, 0, /* 0x02 (key= 1, att= 1) `ClearLine' */ 0x0362,0x0342,0x0342, 0, /* 0x03 (key= 2, att= 2) `Rstrt/Ref' */ 0x036b,0x034b,0x034b, 0, /* 0x04 (key=11, att=15) `Exit' */ 0x0467,0x0447,0x0447, 5, /* 0x05 (key=92, att=97) `PREV' */ 0xfd08,0xfd08,0xfd08, 0, /* 0x06 (key=12, att=16) `Msg' */ 0x0377,0x0357,0x0357, 0, /* 0x07 (key=38, att=42) `CANCL' */ 0x0008,0x0008,0x0008, 1, /* 0x08 (key=34, att=38) `BACKSPACE' */ 0x0009,0x025a,0x025a, 1, /* 0x09 (key=41, att=45) `TAB' */ 0x000a,0x000a,0x000a, 0, /* 0x0a (key=91, att=96) `ENTER' */ 0x0242,0x0253,0x0253, 5, /* 0x0b (key=102, att=109) `ROLL/DN' */ 0x0468,0x0448,0x0448, 5, /* 0x0c (key=94, att=99) `NEXT' */ 0x000d,0x000d,0x000d, 1, /* 0x0d (key=73, att=77) `RETURN' */ 0x0244,0x044b,0x044b, 5, /* 0x0e (key=101, att=108) `<-' */ 0x0243,0x044c,0x044c, 5, /* 0x0f (key=103, att=110) `->' */ 0x036e,0x034e,0x034e, 0, /* 0x10 (key=14, att=18) `Creat' */ 0x036f,0x034f,0x034f, 0, /* 0x11 (key=15, att=19) `Save' */ 0x0463,0x0443,0x0443, 0, /* 0x12 (key=59, att=63) `MOVE' */ 0x0372,0x0352,0x0352, 0, /* 0x13 (key=18, att=22) `Ops' */ 0x0464,0x0444,0x0444, 0, /* 0x14 (key=60, att=64) `COPY' */ 0x0363,0xfe00,0xffff, 0, /* 0x15 (key= 3, att= 3) `F1' */ 0x0364,0xfe01,0xffff, 0, /* 0x16 (key= 4, att= 4) `F2' */ 0x0365,0xfe02,0xffff, 0, /* 0x17 (key= 5, att= 5) `F3' */ 0x0366,0xfe03,0xffff, 0, /* 0x18 (key= 6, att= 8) `F4' */ 0x0367,0xfe04,0xffff, 0, /* 0x19 (key= 7, att= 9) `F5' */ 0x0368,0xfe05,0xffff, 0, /* 0x1a (key= 8, att=12) `F6' */ 0x001b,0x007f,0xffff, 1, /* 0x1b (key=21, att=25) `Esc/DEL' */ 0x0369,0xfe06,0xffff, 0, /* 0x1c (key= 9, att=13) `F7' */ 0x036a,0xfe07,0xffff, 0, /* 0x1d (key=10, att=14) `F8' */ 0xff0a,0xff09,0xff09, 0, /* 0x1e (key=16, att=20) `Suspd' */ 0xff0c,0xff0b,0xff0b, 0, /* 0x1f (key=17, att=21) `Rsume' */ 0x0020,0x0020,0x0020, 1, /* 0x20 (key=98, att=104) `SPACE' */ 0x0373,0x0353,0x0353, 0, /* 0x21 (key=19, att=23) `Undo' */ 0x0374,0x0354,0x0354, 0, /* 0x22 (key=20, att=24) `Redo' */ 0x0378,0x0358,0x0358, 0, /* 0x23 (key=39, att=43) `FIND' */ 0x0379,0x0359,0x0359, 0, /* 0x24 (key=40, att=44) `RPLAC' */ 0x00ff,0x00ff,0x00ff, 0, /* 0x25 (key=35, att=39) `RESET/BREAK' */ 0x0466,0x0446,0x0446, 1, /* 0x26 (key=78, att=83) `DLETECHAR' */ 0x0027,0x0022,0xffff, 1, /* 0x27 (key=72, att=76) `'' */ 0x0469,0x0449,0x0449, 0, /* 0x28 (key=95, att=100) `SLECT/MARK' */ 0x046a,0x044a,0x044a, 0, /* 0x29 (key=96, att=101) `INPUT/MODE' */ 0x036d,0x034d,0x034d, 0, /* 0x2a (key=13, att=17) `Help' */ 0xffff,0xffff,0xffff, 0, /* 0x2b (key= 0, att= 0) `unused' */ 0x002c,0x003c,0xffff, 1, /* 0x2c (key=87, att=92) `,' */ 0x002d,0x005f,0x056b, 1, /* 0x2d (key=32, att=36) `-' */ 0x002e,0x003e,0xffff, 1, /* 0x2e (key=88, att=93) `.' */ 0x002f,0x003f,0xffff, 1, /* 0x2f (key=89, att=94) `/' */ 0x0030,0x0029,0x056a, 1, /* 0x30 (key=31, att=35) `0' */ 0x0031,0x0021,0x0561, 1, /* 0x31 (key=22, att=26) `1' */ 0x0032,0x0040,0x0562, 1, /* 0x32 (key=23, att=27) `2' */ 0x0033,0x0023,0x0563, 1, /* 0x33 (key=24, att=28) `3' */ 0x0034,0x0024,0x0564, 1, /* 0x34 (key=25, att=29) `4' */ 0x0035,0x0025,0x0565, 1, /* 0x35 (key=26, att=30) `5' */ 0x0036,0x005e,0x0566, 1, /* 0x36 (key=27, att=31) `6' */ 0x0037,0x0026,0x0567, 1, /* 0x37 (key=28, att=32) `7' */ 0x0038,0x002a,0x0568, 1, /* 0x38 (key=29, att=33) `8' */ 0x0039,0x0028,0x0569, 1, /* 0x39 (key=30, att=34) `9' */ 0xffff,0xffff,0xffff, 0, /* 0x3a (key= 0, att= 0) `unused' */ 0x003b,0x003a,0xffff, 1, /* 0x3b (key=71, att=75) `;' */ 0xffff,0xffff,0xffff, 0, /* 0x3c (key= 0, att= 0) `unused' */ 0x003d,0x002b,0x056c, 1, /* 0x3d (key=33, att=37) `=' */ 0xffff,0xffff,0xffff, 0, /* 0x3e (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x3f (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x40 (key= 0, att= 0) `unused' */ 0x0375,0x0355,0x0355, 0, /* 0x41 (key=36, att=40) `CMD' */ 0x0376,0x0356,0x0356, 0, /* 0x42 (key=37, att=41) `CLOSE/OPEN' */ 0x037a,0xff0d,0xff0d, 4, /* 0x43 (key=56, att=60) `PRINT' */ 0x0461,0x024a,0x024a, 4, /* 0x44 (key=57, att=61) `CLEAR/RFHSH' */ 0xffff,0xffff,0xffff, 0, /* 0x45 (key=61, att=65) `CAPLOCK' */ 0x0255,0x0256,0x0256, 4, /* 0x46 (key=58, att=62) `PAGE' */ 0x0139,0x0442,0x0442, 4, /* 0x47 (key=74, att=79) `BEG' */ 0xffff,0xffff,0xffff, 0, /* 0x48 (key=79, att=84) `L-SHIFT' */ 0xffff,0xffff,0xffff, 0, /* 0x49 (key=90, att=95) `R-SHIFT' */ 0x0248,0x044d,0x044d, 4, /* 0x4a (key=75, att=80) `HOME' */ 0x0130,0x044e,0x044e, 4, /* 0x4b (key=76, att=81) `END' */ 0xffff,0xffff,0xffff, 0, /* 0x4c (key=97, att=103) `CTRL' */ 0xffff,0xffff,0xffff, 0, /* 0x4d (key=99, att=105) `CTRL' */ 0xffff,0xffff,0xffff, 0, /* 0x4e (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x4f (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x50 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x51 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x52 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x53 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x54 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x55 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x56 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x57 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x58 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x59 (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x5a (key= 0, att= 0) `unused' */ 0x005b,0x007b,0x001b, 1, /* 0x5b (key=52, att=56) `[' */ 0x005c,0x007c,0x001c, 1, /* 0x5c (key=54, att=58) `\\' */ 0x005d,0x007d,0x001d, 1, /* 0x5d (key=53, att=57) `]' */ 0xffff,0xffff,0xffff, 0, /* 0x5e (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x5f (key= 0, att= 0) `unused' */ 0x0060,0x007e,0x0000, 1, /* 0x60 (key=55, att=59) ``' */ 0x0061,0x0041,0x0001, 3, /* 0x61 (key=62, att=66) `A' */ 0x0062,0x0042,0x0002, 3, /* 0x62 (key=84, att=89) `B' */ 0x0063,0x0043,0x0003, 3, /* 0x63 (key=82, att=87) `C' */ 0x0064,0x0044,0x0004, 3, /* 0x64 (key=64, att=68) `D' */ 0x0065,0x0045,0x0005, 3, /* 0x65 (key=44, att=48) `E' */ 0x0066,0x0046,0x0006, 3, /* 0x66 (key=65, att=69) `F' */ 0x0067,0x0047,0x0007, 3, /* 0x67 (key=66, att=70) `G' */ 0x0068,0x0048,0x0008, 3, /* 0x68 (key=67, att=71) `H' */ 0x0069,0x0049,0x0009, 3, /* 0x69 (key=49, att=53) `I' */ 0x006a,0x004a,0x000a, 3, /* 0x6a (key=68, att=72) `J' */ 0x006b,0x004b,0x000b, 3, /* 0x6b (key=69, att=73) `K' */ 0x006c,0x004c,0x000c, 3, /* 0x6c (key=70, att=74) `L' */ 0x006d,0x004d,0x000d, 3, /* 0x6d (key=86, att=91) `M' */ 0x006e,0x004e,0x000e, 3, /* 0x6e (key=85, att=90) `N' */ 0x006f,0x004f,0x000f, 3, /* 0x6f (key=50, att=54) `O' */ 0x0070,0x0050,0x0010, 3, /* 0x70 (key=51, att=55) `P' */ 0x0071,0x0051,0x0011, 3, /* 0x71 (key=42, att=46) `Q' */ 0x0072,0x0052,0x0012, 3, /* 0x72 (key=45, att=49) `R' */ 0x0073,0x0053,0x0013, 3, /* 0x73 (key=63, att=67) `S' */ 0x0074,0x0054,0x0014, 3, /* 0x74 (key=46, att=50) `T' */ 0x0075,0x0055,0x0015, 3, /* 0x75 (key=48, att=52) `U' */ 0x0076,0x0056,0x0016, 3, /* 0x76 (key=83, att=88) `V' */ 0x0077,0x0057,0x0017, 3, /* 0x77 (key=43, att=47) `W' */ 0x0078,0x0058,0x0018, 3, /* 0x78 (key=81, att=86) `X' */ 0x0079,0x0059,0x0019, 3, /* 0x79 (key=47, att=51) `Y' */ 0x007a,0x005a,0x001a, 3, /* 0x7a (key=80, att=85) `Z' */ 0xffff,0xffff,0xffff, 0, /* 0x7b (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x7c (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x7d (key= 0, att= 0) `unused' */ 0xffff,0xffff,0xffff, 0, /* 0x7e (key=100, att=107) `NUMLOCK' */ 0x0465,0x0445,0x0445, 0, /* 0x7f (key=77, att=82) `DLETE' */ }; char *kprefix[] = { "\033", "\033[", "\033O", "\033N", "\033P" }; #endif GEN_KT /* These are special key code values needed by mouse border handling. */ #define KCSUP 0x254 #define KCSDOWN 0x253 #define KCPAGEDN 0x255 #define KCPAGEUP 0x256 #define KCBEG 0x139 #define KCEND 0x130 #define KCCANCEL 0x357 #define KCSSUSPD 0xff09 #define KCSRSUME 0xff0b #define KCSLEFT 0x44b #define KCHELP 0x36d #define KCSRIGHT 0x44c /* These are special key code values needed by mouse activated SLKs */ #define KCF1 0x363 #define KCF2 0x364 #define KCF3 0x365 #define KCF4 0x366 #define KCF5 0x367 #define KCF6 0x368 #define KCF7 0x369 #define KCF8 0x36a /* icon numbers - returned by WBFIND(), used in mouse.c */ #define IC_MOVE 1 #define IC_HELP 2 #define IC_RESIZE 3 #define IC_CANCEL 4 #define IC_UPSCROLL 5 #define IC_DNSCROLL 6 #define IC_LSCROLL 7 #define IC_RSCROLL 8 0707070000020277761004440000020000020000031650600000017757000003100000000471usr/include/sys/lapbtr.h#sccs "@(#)uts/kern/sys:lapbtr.h 1.1" /* Convergent Technologies - System V - May 1983 */ #define TRACE(X,Y,Z) {U = X|Y; trace(U,Z);} #define TSEQ 0 #define TSTART_T1 040 #define TSTOP_T1 0100 #define TXMT 0140 #define TRCV 0200 #define TNOBUF 0240 #define TOSTATE 0300 #define TNSTATE 0340 #define TDSCFRM 020 0707070000020277771004440000020000020000031650620000017757000002700000000321usr/include/sys/lock.h#sccs "@(#)uts/kern/sys:lock.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* * flags for locking procs and texts */ #define UNLOCK 0 #define PROCLOCK 1 #define TXTLOCK 2 #define DATLOCK 4 0707070000020300001004440000020000020000031650630000017757000003000000000520usr/include/sys/lprio.h#sccs "@(#)uts/kern/sys:lprio.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* * Line Printer Type Devices I/O Control */ struct lprio { short ind; short col; short line; }; /* ioctl commands */ #define LPR ('l'<<8) #define LPRGET (LPR|01) #define LPRSET (LPR|02) #define LPRGETV (LPR|05) #define LPRSETV (LPR|06) 0707070000020300011004440000020000020000031650650000017757000002600000004367usr/include/sys/map.h#sccs "@(#)uts/kern/sys:map.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef map_h #define map_h /* * Resource Allocation Maps. * * Associated routines manage sub-allocation of an address space using * an array of segment descriptors. The first element of this array * is a map structure, describing the arrays extent and the name * of the controlled object. Each additional structure represents * a free segment of the address space. * * A call to rminit initializes a resource map and may also be used * to free some address space for the map. Subsequent calls to rmalloc * and rmfree allocate and free space in the resource map. If the resource * map becomes too fragmented to be described in the available space, * then some of the resource is discarded. This may lead to critical * shortages, but is better than not checking (as the previous versions * of these routines did) or giving up and calling panic(). The routines * could use linked lists and call a memory allocator when they run * out of space, but that would not solve the out of space problem when * called at interrupt time. * * N.B.: The address 0 in the resource address space is not available * as it is used internally by the resource map routines. * * System 5 introduced the ability to request a wakeup on a map when * an mfree was performed. This has been merged with the UCB map routines * by using the most significant bit of the map name to signal that a * wakeup is required when an mfree is performed on this map. */ struct map { struct mapent *m_limit; /* address of last slot in map */ uint m_want:1, /* non zero means do wakeup on map */ m_name:31; /* address of name of resource */ /* we use m_name when the map overflows, in warning messages */ }; struct mapent { int m_size; /* size of this segment of the map */ int m_addr; /* resource-space addr of start of segment */ }; #ifdef KERNEL extern struct map swapmap[]; extern int nswapmap; #ifdef mega extern struct map kmap[]; #define KMAPSIZE 32 #endif #endif #ifdef vax #define mapstart(X) &X[1] #define mapwant(X) X[0].m_addr #define mapsize(X) X[0].m_size #define mapdata(X) {(X)-2, 0} , {0, 0} #define mapinit(X, Y) X[0].m_size = (Y)-2 #else #define mapwant(X) X[0].m_want #endif #endif 0707070000020300021004440000020000020000031650710000017757000003000000016475usr/include/sys/modem.h#sccs "@(#)uts/kern/sys:modem.h 1.1" /* ------------------------------------------------------------------------- | This include file contains constant to control the 882A Switched | | Capacitor Modem (SCM). | ------------------------------------------------------------------------- --------------------------------------------------------- | Addresses of SCM Control registers, register 7 | | does not exist. | | W/R at the end defines a Read or Write register. | --------------------------------------------------------- */ #define SCM_0W_Control ((unsigned short *) 0xE60000) #define SCM_1W_Control ((unsigned short *) 0xE61000) #define SCM_2R_Control ((unsigned short *) 0xE62000) #define SCM_3R_Control ((unsigned short *) 0xE63000) #define SCM_4W_Control ((unsigned short *) 0xE64000) #define SCM_5W_Control ((unsigned short *) 0xE65000) #define SCM_6W_Control ((unsigned short *) 0xE66000) #define SCM_8W_Control ((unsigned short *) 0xE68000) #define SCM_9W_Control ((unsigned short *) 0xE69000) #define SCM_10R_Control ((unsigned short *) 0xE6A000) /* --------------------------------------------------------- | Bit definition for write control register 0. | | Modem line control from terminal and telephone | | interfaces. | --------------------------------------------------------- */ #define SCM_RingEnable_Wr0 0x80 #define SCM_TalkMode_Wr0 0x40 #define SCM_OffHook_Wr0 0x20 #define SCM_DataMode_Wr0 0x10 #define SCM_AsyncMode_Wr0 0x08 #define DTRMD 0x04 #define SCM_TurnOnDTR_Wr0 0x04 #define SCM_LowPower_Wr0 0x02 /* Reset for normal operation */ #define LOWPOWER 0x02 #define SCM_PowerReset_Wr0 0x01 /* Set and reset for normal operation */ #define SCM_ResetDone_Wr0 0x00 /* --------------------------------------------------------- | Bit definition for write control register 1. | | Customer control and modem test controls. | --------------------------------------------------------- */ #define InternalClock_SCM_Wr1 0x00 #define ExternalClock_SCM_Wr1 0x40 #define VoiceMode_SCM_Wr1 0x20 #define VOICEJACK 0x20 #define BAUD300 0x00 #define BAUD1200 0x10 #define Baud300_SCM_Wr1 0x00 #define Baud1200_SCM_Wr1 0x10 #define Baud2400_SCM_Wr1 0x10 /* also need R8b3 to be set */ /* Loopback test selection */ #define RemoteDigtal_SCM_Wr1 0x08 #define LocalAnalog_SCM_Wr1 0x04 #define LocalDigital_SCM_Wr1 0x02 #define SelfTest_SCM_Wr1 0x01 /* --------------------------------------------------------- | Bit definition for read control register 2 | | Modem status to terminal interface. | --------------------------------------------------------- */ #define FailedSelfTest_SCM_Rr2 0x80 #define SCMinTestMode_SCM_Rr2 0x40 #define SCMinDataMode_SCM_Rr2 0x20 /* an incoming call was answered */ #define DSRisOn_SCM_Rr2 0x10 #define BaudrateMask_SCM_Rr2 0x0C #define at300Baud_SCM_Rr2 0x00 #define at1200Baud_SCM_Rr2 0x04 #define at2400Baud_SCM_Rr2 0x0C #define DataValid_SCM_Rr2 0x02 /* set after modem handshake */ #define CTSisOn_SCM_Rr2 0x01 /* --------------------------------------------------------- | Bit definition for read control register 3 | | Modem status to lamps and relays. | --------------------------------------------------------- */ #define DigitalTestActive_SCM_Rr3 0x80 /* local or remote */ #define SlfTestActive_SCM_Rr3 0x40 #define SendDataState_SCM_Rr3 0x20 /* input to modulator */ #define ReceiveDataState_SCM_Rr3 0x10 /* output from demodulator */ #define EnergyOnLine_SCM_Rr3 0x08 #define ModemInUse_SCM_Rr3 0x04 #define SwitchFromPhoneToModem_SCM_Rr3 0x02 #define RingRelayIsSet_SCM_Rr3 0x01 /* --------------------------------------------------------- | Bit definition for write control register 4 | | Options: Asynchronous/synchronous converter | | and handshaking. | --------------------------------------------------------- */ #define SetSynchMode_SCM_Wr4 0x80 /* 1200 and 2400 baud only */ #define SetAsyncMode_SCM_Wr4 0x00 #define SetOptionAsync_SCM_Wr4 0x40 #define Set6DataBits_SCM_Wr4 0x20 #define Set7DataBits_SCM_Wr4 0x10 #define Set8DataBits_SCM_Wr4 0x00 #define Set9DataBits_SCM_Wr4 0x30 #define NormalBandMode_SCM_Wr4 0x00 #define ReverseBandMode_SCM_Wr4 0x04 #define TxLowBandMode_SCM_Wr4 0x08 /* Force originate only */ #define TxHighBandMode_SCM_Wr4 0x0C /* Force answer only */ #define PrivateHandshake_SCM_Wr4 0x02 #define CCITTAnswerTone_SCM_Wr4 0x01 #define B212AnswerTone_SCM_Wr4 0x00 /* --------------------------------------------------------- | Bit definition for write control register 5 | | Options: CCITT and disconnect. | --------------------------------------------------------- */ #define Wr5_NormalOperations_SCM_Wr 0x00 #define CCITTDSR_SCM_Wr5 0x80 #define B212DSR_SCM_Wr5 0x00 #define CCITT2100HzTone_SCM_Wr5 0x40 #define B212No2100HzTone_SCM_Wr5 0x00 #define Set1800GuardBand_SCM_Wr5 0x20 #define B212NoGuardBand_SCM_Wr5 0x00 #define NoAutoDataMode_SCM_Wr5 0x10 #define DTRAutoDataMode_SCM_Wr5 0x00 /* Modem disconnect options */ #define SendNoSpaceDisconnect_SCM_Wr5 0x08 #define SendSpaceDisconnect_SCM_Wr5 0x00 /* send space for 4 seconds */ #define IgnoreSpaces_SCM_Wr5 0x04 #define SpaceRcvdDisconnect_SCM_Wr5 0x00 #define IgnoreLossOfLCD_SCM_Wr5 0x02 #define LossOfLCDDisconnect_SCM_Wr5 0x00 #define IgnoreRemoteDigRequest_SCM_Wr5 0x01 #define AcceptRemoteDigRequest_SCM_Wr5 0x00 /* --------------------------------------------------------- | Bit definition for write control register 6 | | Data and timing output clamps and chip test. | --------------------------------------------------------- */ #define Wr6_NormalOperations_SCM_Wr6 0x00 #define SetTxDataToMark_SCM_Wr6 0x80 #define SetTxTimingToMark_SCM_Wr6 0x40 #define SetRxDataToMark_SCM_Wr6 0x20 #define SetRxTimingToMark_SCM_Wr6 0x10 /* --------------------------------------------------------- | Bit definition for write control register 8 | | Tranceiver control register. | --------------------------------------------------------- */ #define Wr8_NormalOperations_SCM_Wr8 0x20 #define TxScramblerBypass_SCM_Wr8 0x80 #define RxDescramblerBypass_SCM_Wr8 0x40 #define Set2400Baud_SCM_Wr8 0x08 /* R1b4 should also be set */ #define ForceTxMarks_SCM_Wr8 0x04 #define Force2100Hz_SCM_Wr8 0x02 #define Force1800Hz_SCM_Wr8 0x01 /* --------------------------------------------------------- | Bit definition for write control register 9 | | Transceiver control register II. | --------------------------------------------------------- */ #define Wr9_NormalOperations_SCM_Wr9 0x00 #define SendDoubleDotting_SCM_Wr9 0x01 /* --------------------------------------------------------- | Bit definition for read control register 10 | | Transceiver status register. | --------------------------------------------------------- */ /* SCM handshake indicators */ #define SendingSpaces_SCM_Rr10 0x80 #define DigLoopbackTest_SCM_Rr10 0x40 /* is set in the modem requesting the test */ #define FSKScramMarkReceived_SCM_Rr10 0x20 /* stays set in data mode */ #define AnsToneReceived_SCM_Rr10 0x10 /* stays set in data mode */ /* Received data indicators, these bits reflect the current state of the receiver, values are not latched. */ #define FSKUnscramMarkRcving_SCM_Rr10 0x08 #define PSKUnscramMarkRcving_SCM_Rr10 0x04 #define PSKScramMarkRcving_SCM_Rr10 0x02 #define DoubleDottingRcving_SCM_Rr10 0x01 0707070000020300031004440000020000020000031651100000017757000003000000001064usr/include/sys/mount.h#sccs "@(#)uts/kern/sys:mount.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef mount_h #define mount_h #include #include /* * 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 */ struct inode *m_mount; /* pointer to mount root inode */ }; #define MFREE 0 #define MINUSE 1 #define MINTER 2 extern struct mount mount[]; #endif 0707070000020300041004440000020000020000031651110000017757000003000000001777usr/include/sys/mouse.h#sccs "@(#)uts/kern/sys:mouse.h 1.2" #ifndef _MOUSE #define _MOUSE /* Keyboard/Mouse Codes */ #define MSENABLE 0xD0 /* enable mouse */ #define MSDISABLE 0xD1 /* disable mouse */ #define BEGMOUSE 0xCE /* mouse data follows */ #define BEGEMOUSE 0xCF /* mouse data lost */ #define BEGKBD 0xDF /* kbd data follows */ /* Bits in the mouse byte #1 */ #define MBUTR 0x01 /* right button down */ #define MBUTM 0x02 /* middle button down */ #define MBUTL 0x04 /* left button down */ #define MSY 0x08 /* sign of Y */ #define MSX 0x10 /* sign of X */ #define MBUTALL (MBUTL|MBUTM|MBUTR) /* all the buttons */ /* Default scaling formulae */ #define MDPI 200 /* mouse dots/inch */ #define MVI 4 /* mouse vertical trav */ #define MHI 4 /* horizontal trav */ #define MXSCALE ((MHI*MDPI)/VIDWIDTH) /* x scaling */ #define MYSCALE ((MVI*MDPI)/VIDHEIGHT) /* y scaling */ /* Communication between interrupt and wproc level */ struct msinfo { long physmx; long physmy; char mb; }; #endif _MOUSE 0707070000020300051004440000020000020000031651120000017757000002600000004042usr/include/sys/msg.h#sccs "@(#)uts/kern/sys:msg.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* ** IPC Message Facility. */ /* ** Implementation Constants. */ #define PMSG (PZERO + 2) /* message facility sleep priority */ /* ** Permission Definitions. */ #define MSG_R 0400 /* read permission */ #define MSG_W 0200 /* write permission */ /* ** ipc_perm Mode Definitions. */ #define MSG_RWAIT 01000 /* a reader is waiting for a message */ #define MSG_WWAIT 02000 /* a writer is waiting to send */ /* ** Message Operation Flags. */ #define MSG_NOERROR 010000 /* no error if big message */ /* ** Structure Definitions. */ /* ** There is one msg queue id data structure for each q in the system. */ struct msqid_ds { struct ipc_perm msg_perm; /* operation permission struct */ struct msg *msg_first; /* ptr to first message on q */ struct msg *msg_last; /* ptr to last message on q */ ushort msg_cbytes; /* current # bytes on q */ ushort msg_qnum; /* # of messages on q */ ushort msg_qbytes; /* max # of bytes on q */ ushort msg_lspid; /* pid of last msgsnd */ ushort msg_lrpid; /* pid of last msgrcv */ time_t msg_stime; /* last msgsnd time */ time_t msg_rtime; /* last msgrcv time */ time_t msg_ctime; /* last change time */ }; /* ** There is one msg structure for each message that may be in the system. */ struct msg { struct msg *msg_next; /* ptr to next message on q */ long msg_type; /* message type */ short msg_ts; /* message text size */ short msg_spot; /* message text map address */ }; /* ** User message buffer template for msgsnd and msgrecv system calls. */ struct msgbuf { long mtype; /* message type */ char mtext[1]; /* message text */ }; /* ** Message information structure. */ struct msginfo { int msgmap, /* # of entries in msg map */ msgmax, /* max message size */ msgmnb, /* max # bytes on queue */ msgmni, /* # of message queue identifiers */ msgssz, /* msg segment size (should be word size multiple) */ msgtql; /* # of system message headers */ ushort msgseg; /* # of msg segments (MUST BE < 32768) */ }; 0707070000020300061004440000020000020000031651160000017757000003000000020312usr/include/sys/param.h#sccs "@(#)uts/kern/sys:param.h 1.2" /* Convergent Technologies - System V - May 1983 */ #ifndef param_h #define param_h /* * fundamental variables * don't change too often */ #define NOFILE 80 /* max open files per process (tunable) */ /* -- stored in 'nofile' */ #define NOFILMAX 80 /* max 'NOFILE' kernel can SURVIVE */ /* -- stored in 'nofilmax' */ #define NOFILMIN 20 /* min 'NOFILE' kernel can STOMACH */ #define MAXPID 30000 /* max process id */ #define MAXUID 60000 /* max user id */ #define MAXLINK 1000 /* max links */ #include /* Memory mapping hardware */ /* see sys/pte.h */ #define VUSER_START 0x80000 /* start address of user process */ #define VUSER_END 0x300000 /* end address of user process */ #define SHLIB_START VUSER_END /* start address of shared lib */ #define SHLIB_END 0x380000 /* end address of shared lib */ #define KVMEM_VBASE SHLIB_END /* start addr of kernel vm */ #define KVMEM_VLIMIT 0x400000 /* end addr of kernel vm */ #define MAXMEM (btoct(0x400000)) /* max core in 4096-byte clicks */ #define MAXUMEM (btoct(VUSER_END)) /* max user program size in 4096 byte clicks */ #define MAXBLK 64 /* max blocks possible for phys IO */ /* limited by the number of Kernel map slots dedicated to dma */ #define SSIZE 2048 /* initial stack size (in bytes) */ #define SINCR 4 /* increment of stack (*4096 bytes) */ #define UPAGES 1 #define USIZE (UPAGES + 1) /* size of user block (*4096) */ #define USRSTACK (VUSER_END) /* Start of user stack */ #define KVMEM_PAGES btoct(KVMEM_VLIMIT-KVMEM_VBASE) #define KVMEM_VPAGE0 btoct(KVMEM_VBASE) #define SHLIB_PAGES btoct(SHLIB_END-SHLIB_START) #define SHLIB_VPAGE0 btoct(SHLIB_START) #define CANBSIZ 256 /* max size of typewriter line */ #define HZ 60 /* Ticks/second of the clock */ #define NCARGS 5120 /* # characters in exec arglist */ #define NBPSCTR 512 /* # bytes per physical disk sector */ #define SCTRSHFT 9 /* log2(NBPSCTR) */ /* * priorities * should not be altered too much */ #define PMASK 0177 #define PCATCH 0400 #define PSWP 0 /* swapper needs a swap candidate */ #define PINOD 10 /* process accessing locked inode */ #define PRIBIO 20 /* process sleeping on block I/O system buffer */ #define PZERO 25 /* sleep <= PZERO not broken by signals */ #define NZERO 20 /* default process nice */ #define PPIPE 26 /* sleeping on empty pipe read, full pipe write */ #define TTIPRI 27 /* waiting for tty input (was 28) */ #define PEXWT 28 /* user wait on exchange: exWait() or exCall() */ #define TTOPRI 29 /* waiting for space in tty output clist */ #define PWIND 30 /* waiting for window exposure, etc. */ #define PWAIT 40 /* waiting death of child: wait() sys call */ #define PSLEP 49 /* waiting signal: pause() sys call */ #define PUSER 60 /* base priority for user process with dflt nice */ #define PIDLE 127 /* no runnable processes in system */ /* * fundamental constants of the implementation-- * cannot be changed easily */ #define NBPW sizeof(int) /* number of bytes in an integer */ #ifdef KERNEL #define FsTYPE 2 #else /* some commands are more compatible if use dual file system */ #ifndef FsTYPE #define FsTYPE 3 #endif #endif KERNEL #if FsTYPE==1 /* Original 512 byte file system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) b #define FsPTOL(dev, b) b #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #endif #if FsTYPE==2 /* New 1024 byte file system */ #define BSIZE 1024 /* size of file system block (bytes) */ #define SBUFSIZE BSIZE /* system buffer size */ #define BSHIFT 10 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 01777 /* BSIZE-1 */ #define INOPB 16 /* inodes per block */ #define INOSHIFT 4 /* LOG2(INOPB) if exact */ #define NMASK 0377 /* NINDIR-1 */ #define NSHIFT 8 /* LOG2(NINDIR) */ #define Fs2BLK 0x2000 #define FsBSIZE(dev) BSIZE #define FsBSHIFT(dev) BSHIFT #define FsNINDIR(dev) NINDIR #define FsBMASK(dev) BMASK #define FsINOPB(dev) INOPB #define FsLTOP(dev, b) (b<<1) #define FsPTOL(dev, b) (b>>1) #define FsNMASK(dev) NMASK #define FsNSHIFT(dev) NSHIFT #define FsITOD(dev, x) itod(x) #define FsITOO(dev, x) itoo(x) #define FsINOS(dev, x) ((x&~017)+1) #define FsBOFF(dev, x) ((x)&01777) #define FsBNO(dev, x) ((x)>>10) #endif #if FsTYPE==3 /* Dual system */ #define BSIZE 512 /* size of file system block (bytes) */ #define SBUFSIZE (BSIZE*2) /* system buffer size */ #define BSHIFT 9 /* LOG2(BSIZE) */ #define NINDIR (BSIZE/sizeof(daddr_t)) #define BMASK 0777 /* BSIZE-1 */ #define INOPB 8 /* inodes per block */ #define INOSHIFT 3 /* LOG2(INOPB) if exact */ #define NMASK 0177 /* NINDIR-1 */ #define NSHIFT 7 /* LOG2(NINDIR) */ #define Fs2BLK 0x2000 #define FsLRG(dev) (dev&Fs2BLK) #define FsBSIZE(dev) (FsLRG(dev) ? (BSIZE*2) : BSIZE) #define FsBSHIFT(dev) (FsLRG(dev) ? 10 : 9) #define FsNINDIR(dev) (FsLRG(dev) ? 256 : 128) #define FsBMASK(dev) (FsLRG(dev) ? 01777 : 0777) #define FsBOFF(dev, x) (FsLRG(dev) ? ((x)&01777) : ((x)&0777)) #define FsBNO(dev, x) (FsLRG(dev) ? ((x)>>10) : ((x)>>9)) #define FsINOPB(dev) (FsLRG(dev) ? 16 : 8) #define FsLTOP(dev, b) (FsLRG(dev) ? b<<1 : b) #define FsPTOL(dev, b) (FsLRG(dev) ? b>>1 : b) #define FsNMASK(dev) (FsLRG(dev) ? 0377 : 0177) #define FsNSHIFT(dev) (FsLRG(dev) ? 8 : 7) #define FsITOD(dev, x) (daddr_t)(FsLRG(dev) ? \ ((unsigned)x+(2*16-1))>>4 : ((unsigned)x+(2*8-1))>>3) #define FsITOO(dev, x) (daddr_t)(FsLRG(dev) ? \ ((unsigned)x+(2*16-1))&017 : ((unsigned)x+(2*8-1))&07) #define FsINOS(dev, x) (FsLRG(dev) ? \ ((x&~017)+1) : ((x&~07)+1)) #endif #define NICFREE 50 /* number of superblock free blocks */ #define NCPS 16 /* Number of clicks per segment */ #define CPSSHIFT 4 /* LOG2(NCPS) if exact */ #define NBPC 4096 /* Number of bytes per click */ #define BPCSHIFT 12 /* LOG2(NBPC) if exact */ #define NULL 0 #define CMASK 0 /* default mask for file creation */ #define CDLIMIT 0x7fffffff /* default max write address (=INFINITY) */ #define NODEV (dev_t)(-1) #define ROOTINO ((ino_t)2) /* i number of all roots */ #define SUPERB ((daddr_t)1) /* physical block number of the super block */ #define SUPERBOFF 512 /* byte offset of the super block */ #define DIRSIZ 14 /* max characters per directory */ #define NICINOD 100 /* number of superblock inodes */ #define DS 1 /* used by expand to expand ds size */ #define SS 2 /* used by expand to expand ss size */ #define PTE_BANK0 128 /* size of mpte's in the first page of u */ #define MAXKERNEL 128 /* maximum size of kernel (4k click) */ #define SYSPAGE 128 /* page table entries reserved for kernel */ #define SYSSEG 8 /* segment table entries reserved for kernel */ #define VPG_BASE 0x70000 /* starting virtual address of user pages */ #define U_OFFSET 0x0900 /* offset of u struct into user pages */ #define PTE_OFFSET 0xE00 /* offset of pte in usr tbl */ #define VPTE_BASE 0x70E00 /* starting virtual address of pte in u */ /* * variables for BSD 4.1 */ #define MSWAPX 15 /* pseudo mount table index for swapdev */ #define NBBY 8 /* number of bits in a byte */ #define NBPG NBPC #define PGOFSET (NBPG-1) /* byte offset into page */ #define PGSHIFT BPCSHIFT /* LOG2(NBPG) */ #define KLSIZE 1 #define CLOFSET (KLSIZE*NBPG-1) /* for clusters, like PGOFSET */ /* give the base virtual address (first of KLSIZE) */ #define clbase(i) (i) /* round a number of clicks up to a whole cluster */ #define clrnd(i) (i) /* end of BSD 4.1 stuff */ /* * Some macros for units conversion */ #include /* Machine-dependent bits and macros */ #define SUPVMODE 0x2000 /* usermode bits */ #define USERMODE(ps) ((ps & SUPVMODE) == 0) #define BASEPRI(ps) ((ps & 0x700) != 0) #define lobyte(X) (((unsigned char *)&X)[1]) #define hibyte(X) (((unsigned char *)&X)[0]) #define loword(X) (((ushort *)&X)[1]) #define hiword(X) (((ushort *)&X)[0]) #endif param_h 0707070000020300071004440000020000020000031651320000017757000002500000015057usr/include/sys/ph.h#sccs "@(#)uts/kern/sys:ph.h 1.3" /* created 4/25/84 C. Liu */ #include "sys/proc.h" #include "sys/tty.h" #define YES 1 #define NO 0 #define POLL 1 #define NOPOLL 0 #define UNUSED 0x7f /* to mark resources unused */ #define MS_TICK (1000/HZ) /* msec per tick */ #define T_50MS 0x04 /* 4 ticks */ #define T_70MS 0x05 /* 5 ticks */ #define T_100MS 0x08 /* 10 ticks */ /* ------------------------------------------------------------------------- | phone line control structure | ------------------------------------------------------------------------- */ /* p_flags values */ #define PF_OPEN 0x01 /* line in use */ #define PF_PENDONHOOK 0x02 /* set when hanging up from kbd, waiting for onhook */ /*#define PF_VOICE 0x02 /* line used for voice */ /*#define PF_DATA 0x04 /* line used with modem */ /* p_statemch */ #define PL_IDLE 0x00 /* line idle */ #define PL_OFFHOOK 0x01 /* handset picked up */ #define PL_WAITDIALTONE 0x02 /* waiting for dialtone */ #define PL_DIALTONE 0x03 /* dialtone */ #define PL_DIALLING 0x04 /* tone or pulsing */ #define PL_HOOKFLASH 0x05 /* generate hook flash */ #define PL_WAITRINGBACK 0x06 /* dialling complete */ #define PL_RINGBACK 0x07 /* ringback detected */ #define PL_BADTONESTATE 0x08 /* busy or congestion */ #define PL_CONNECTED 0x09 /* call complete */ #define PL_ONHOLD 0x0A /* call on hold */ #define PL_RNGON 0x0B /* ring detect high */ #define PL_RNGOFF 0x0C /* ring detect off */ #define PL_INITRNG 0x0D /* first ring transition*/ /* p_resource */ #define PR_DIALER 0x01 /* line owns dialer */ #define PR_MODEM 0x02 /* line owns modem */ /* p_hookstatus */ #define PH_OPENED 0x00 /* onhook */ #define PH_CLOSED 0xff /* offhook */ /* p_linestatus */ /* values used are defined in phone.h */ #define TONEMASK 0x00f8 /* mask for tone */ struct phdef { unsigned char p_flags; /* state and param info */ unsigned char p_line; /* line 0 or 1 */ unsigned char p_statemch; /* line contrl state machine */ unsigned char p_resource; /* resource owned by the line */ unsigned char p_digit; /* current digit being dialed */ unsigned char p_hookstatus; /* status of hook relay */ unsigned char p_ringdetected; /* YES if ring detected and */ /* reported. */ unsigned char p_ringcnt; /* used to count ring cycles */ unsigned char p_waitdialtone; /* wait for dialtone in sec */ unsigned char p_oldringstat; /* t-1 state of ring detect */ ushort p_lineselect; /* select handset to the line */ ushort p_dnconnect; /* dial network connect value */ ushort p_feedback; /* used for controlling ringer */ ushort p_linestatus; /* status of line and tone */ ushort p_waitflash; /* flash duration in msec */ ushort *p_modemconnect;/* address to connect modem */ ushort *p_hookrelay; /* pointer to hook relay */ ushort *p_aleadrelay; /* pointer to a-lead relay */ ushort *p_holdrelay; /* pointer to hold relay */ struct proc *p_procp; /* pointer to owner process */ struct tty *p_tp; /* tty pointer */ int p_lineparam; /* user specified line control */ char p_opencnt; /* pulse counter used for */ char p_closecnt; /* pulse dialling. */ }; /* ------------------------------------------------------------------------- | call progress detection control structure | ------------------------------------------------------------------------- */ struct progdef { char p_fenergy; /* if 0 => waiting for first energy level to go high. if 1 => energy level already detected. */ char p_onlevelcnt; /* number of times high was detected */ char p_offlevelcnt; /* number of times low was detected */ char p_spare; ushort p_gottone; /* actual tone detected */ ushort p_onofftickcnt; /* number of ticks since counting on/off level count */ ushort p_tickcnt; /* not to exceed p_timeout */ ushort p_timeout; /* 60 hz ticks, return error */ struct phdef *p_ph; /* pointer to the line struct */ }; /* ------------------------------------------------------------------------- | Message Waiting detection control structure | ------------------------------------------------------------------------- */ struct msgwdef { unsigned char mw_state; /* current state */ unsigned char mw_prevstate; /* previous stable state */ unsigned char mw_oncnt; /* count of on state */ unsigned char mw_offcnt; /* count of off state */ unsigned char mw_tickcnt; /* not to exceed mw_timeout */ unsigned char mw_timeout; /* scan duration, tick = 48 ms */ /* currently set to 6 seconds */ }; #define MW_IDLE 0 /* nothing's happening */ #define MW_MSGON 1 /* msg wait confirmed */ #define MW_SCAN 2 /* detecting signal */ #define MW_GLITCH 3 /* detecting line ring */ /* ------------------------------------------------------------------------- | modem control parameters | ------------------------------------------------------------------------- */ #define MDOPEN 0x01 /* modem in use */ #define MDINCMNG 0x02 /* modem will answer incoming calls */ #define MDOUTGO 0x04 /* modem is used for outgoing */ #define MDHIGHSPEED 0x08 /* use 1200 baud */ #define MD_IDLE 0 /* initial state */ #define MD_ATTACH 1 /* connect the modem */ #define MD_RESET 2 /* reset the modem */ #define MD_WAITREADY 3 /* after offhook, wait modem ready */ #define MD_WAITHANDCOMP 4 /* wait handshake complete */ #define MD_HANGUPWAIT 5 /* wait for hangup */ #define MD_LOSTSIGNAL 6 /* line signal lost, possible hangup */ #define MD_CONNWAIT 7 /* wait for answer tone on outgoing */ #define MD_CONNCOMP 8 /* wait handshake complete on outgoing */ struct mddef { char m_flags; /* state and param info */ char m_line; /* current user of the modem */ char m_state; /* modem state machine */ char m_timeout; /* timeout count */ struct tty *m_tp; /* pointer to tty struct */ struct phdef *m_ph; /* pointer to line descriptor */ }; /* ------------------------------------------------------------------------- | dial network control structure | ------------------------------------------------------------------------- */ #define DN_OPEN 0x01 /* dialer in use */ #define DN_FEEDBK 0x02 /* speaker used for monitoring */ #define DN_SOFT 0x04 /* soft speaker volume */ #define DN_NORMAL 0x08 /* normal speaker volume */ #define DN_LOUD 0x0c /* loud speaker volume */ #define DN_CASS 0x10 /* allow cassette voice path */ struct dndef { char d_flags; /* state and param info */ char d_line; /* current user of dialer */ ushort d_lastcmd; /* copy of the last control word*/ ushort d_feedback; /* dial network control */ }; 0707070000020300101004440000020000020000031651440000017757000003000000007570usr/include/sys/phone.h#sccs "@(#)uts/kern/sys:phone.h 1.4" /* USER LEVEL PHONE IOCTL STRUCTURE */ /* ioctl commands */ #define PIOC ('P'<<8) #define PIOCGETP (PIOC|1) /* get phone line params */ #define PIOCSETP (PIOC|2) /* set phone line params */ #define PIOCOFFHOOK (PIOC|3) /* start call, go offhook */ #define PIOCDIAL (PIOC|4) /* dialling of digits */ #define PIOCFLASH (PIOC|5) /* flash the line */ #define PIOCDISC (PIOC|6) /* disconnect the line */ #define PIOCHOLD (PIOC|7) /* put the line on hold */ #define PIOCUNHOLD (PIOC|8) /* reconnect the line */ #define PIOCLINESEL (PIOC|9) /* select line for offhook */ #define PIOCRECONN (PIOC|10) /* reconn line for more dialling */ #define PIOCOVSPD (PIOC|11) /* 2.3% character overspeed */ #define PIOC1800 (PIOC|12) /* 1800 Hz gurad tone CCITT */ #define PIOC2100 (PIOC|13) /* 2100 Hz European ans tone CCITT*/ #define PIOCAFTONE (PIOC|14) /* DSR to turn on after silent CCITT*/ #define PIOCANSTONE (PIOC|15) /* PSK unscrambed mark at1200 CCITT */ #define PIOCHKSTATUS (PIOC|16) /* check on/off hook during bootup */ /* device files */ #define PHDEV "/dev/ph" /* phone line devices */ struct updata /* user parameter */ { char c_lineparam; /* set line states */ char c_waitdialtone; /* timeout value */ unsigned short c_linestatus; /* line status, read only.*/ unsigned short c_feedback; /* controls dialer */ unsigned short c_waitflash; /* duration of flash */ }; /* c_lineparam, sets the line usage and dial methods */ #define VOICE 0x01 /* Read Only,indicate voice only*/ #define DATA 0x02 /* RO,mutually exclusive with voice*/ #define DTMF 0x04 /* use DTMF only */ #define PULSE 0x08 /* use pulse only, if both bits */ /* are set, DTMF will be tried */ /* first, then pulse. */ #define INCMNG 0x10 /* set to accept incoming call */ /* if not set in voice mode, */ /* ringing will be ignored. */ #define MSGWAIT 0x20 /* if set, detect message wait */ /* line 1 only. */ #define USEALEAD 0x40 /* if set, use A-lead relay */ /* c_waitdialtone, if dialtone is not detected within this time, */ /* dial function will return with an error. In unit of seconds. */ /* c_linestatus, this is read only and is ignored on PIOCSET. */ /* This provides status on call progress, message wait, line */ /* ringing. */ #define MESSAGE 0x0001 /* message waiting detected */ #define SETOFFHOOK 0x0002 /* handset in cradle or not */ #define INCOMERING 0x0004 /* incoming ringin detected */ #define CALLINCOME 0x0100 /* set until ioctl for inc call */ #define AUTOSELECT 0x8000 /* set if line is connected */ /* to set without offhook */ #define MODEMCONNECTED 0x4000 /* set when modem handshake */ /* completed */ #define NOTONE 0x0008 /* silence on the line */ #define DIALTONE 0x0010 /* dialtone detected */ #define BUSYTONE 0x0020 /* busytone detected */ #define CONGTONE 0x0040 /* congestion tone detected */ #define RGBKTONE 0x0080 /* ringback tone detected */ /* c_feedback, sets the options for monitoring call on the */ /* speaker. */ #define SPEAKERON 0x0001 /* use for outgoing calls, if */ /* speaker on is set, line is */ /* monitored on the speaker. */ #define SOFTSPK 0x0002 /* speaker volume control */ #define NORMSPK 0x0004 #define LOUDSPK 0x0006 #define RINGON 0x0010 /* use for incoming calls, if */ /* ringon is set, incoming call */ /* will generate ringing on the */ /* speaker; for voice only. */ #define SOFTRNG 0xf000 /* ring volume */ #define NORMRNG 0x7000 #define LOUDRNG 0xb000 #define LOWRNG 0x0000 /* different pitches for */ #define MEDRNG 0x0100 /* incoming rings */ #define HIMEDRNG 0x0200 #define HIRNG 0x0300 /* c_hookflash, specifies the down time of the hook switch */ /* during a hookflash operation. In units of milliseconds. */ struct uddata /* user dialling data */ { char dd_digit; /* digit to be dialed */ }; 0707070000020300111004440000020000020000031651520000017757000002700000013121usr/include/sys/proc.h#sccs "@(#)uts/kern/sys:proc.h 1.2" /* Convergent Technologies - System V - May 1983 */ #ifndef proc_h #define proc_h #include #include #ifdef VTIMES #include #endif #include #include /* fork types - parameter to newproc */ #define KFORK 0 /* original kernel call of newproc */ #define OFORK 1 /* original sys1 call of newproc */ /* #define VFORK 2 /* vfork call of newproc */ /* * 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 { struct proc *p_link; /* linked list of running processes */ int p_flag; char p_stat; char p_pri; /* priority, negative is high */ char p_time; /* resident time for scheduling */ char p_cpu; /* cpu usage for scheduling */ char p_nice; /* nice for cpu usage */ char p_szpt; /* 0 - 1 page user tbl, 1 - 2 page user tbl */ char p_usrpri; /* user-priority based on p_cpu and p_nice */ char p_slptime; /* time since last block */ ushort p_uid; /* real user id */ ushort p_suid; /* set (effective) user id */ short p_pgrp; /* name of process group leader */ short p_pid; /* unique process id */ short p_ppid; /* process id of parent */ ushort p_addr[2]; /* physical page no of u-area */ struct proc *p_pptr; /* pointer to process structure of parent */ swblk_t p_swaddr; /* disk address of u area when swapped */ size_t p_tsize; /* size of text (clicks)(used by exec/swapin) */ size_t p_ssize; /* size of stack(clicks)(used by exec/swapin) */ size_t p_dsize; /* size of data space (clicks) */ size_t p_lsize; /* size of shared lib data (clicks) */ size_t p_tpage; /* no of pages(rounded to segment) of text */ size_t p_dpage; /* no of pages(rounded to segment) of data */ size_t p_spage; /* no of pages(rounded to segment) of stack */ size_t p_rssize; /* current resident set size in clicks */ size_t p_maxrss; /* copy of u.u_limit[MAXRSS] */ size_t p_swrss; /* resident set size before last swap */ long p_sig; /* signals pending to this process */ union { caddr_t p_cad; /* event process is awaiting */ int p_int; } p_unw; #define p_wchan p_unw.p_cad #define p_arg p_unw.p_int struct text *p_textp; /* pointer to text structure */ struct proc *p_xlink; /* linked list of procs sharing same text */ int p_clktim; /* time to alarm clock signal */ struct shmpt_ds *p_smbeg; /* beginning pte entry for shared memory */ int p_smend; /* ending pte entry for shared memory */ short p_ndx; /* proc index for memall (because of vfork) */ ushort p_xino; /* disk inode no for the text file - extension from cmap structure. */ short p_poip; /* count of page outs in progress */ }; #ifdef KERNEL extern struct proc *proc; /* the proc table itself */ #endif /* 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 */ #define SXBRK 7 /* process being xswapped */ #define SXSTK 8 /* process being xswapped */ #define SXTXT 9 /* process being xswapped */ /* flag codes */ #define SLOAD 0x000001 /* in core */ #define SSYS 0x000002 /* swapper or pager process */ #define SLOCK 0x000004 /* process being swapped out */ #define SSWAP 0x000008 /* save area flag */ #define STRC 0x000010 /* process is being traced */ #define SWTED 0x000020 /* another tracing flag */ #ifdef SWAP #define STEXT 0100 /* text pointer valid */ #define SSPART 0200 /* process is partially swapped out */ #else #define SULOCK 0x000040 /* prevent a user process to be swapped out */ #define SPAGE 0x000080 /* process in page wait state */ #define SKEEP 0x000100 /* another flag to prevent swap out */ /* #define SDLYU 0x000200 /* delayed unlock of pages */ #define SWEXIT 0x000400 /* working on exiting */ #define SPHYSIO 0x000800 /* doing physical i/o (bio.c) */ #ifdef VFORK #define SVFORK 0x001000 /* process resulted from vfork() */ #define SVFDONE 0x002000 /* another vfork flag */ #define SNOVM 0x004000 /* no vm, parent in a vfork() */ #endif VFORK #define SPAGI 0x008000 /* init data space on demand, from inode */ #define SSEQL 0x010000 /* user warned of sequential vm behavior */ #define SUANOM 0x020000 /* user warned of random vm behavior */ #define STIMO 0x040000 /* timing out during sleep */ #define SDETACH 0x080000 /* detached inherited by init */ #define SOWEUPC 0x200000 /* owe process an addupc() call at next ast */ #endif #define SPOLL 0x1000000 /* SPOLL flag for Starlan */ /* * parallel proc structure * to replace part with times * to be passed to parent process * in ZOMBIE state. */ #ifndef NPROC struct xproc { struct proc *xp_link; /* linked list of running processes */ int xp_flag; char xp_stat; char 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 */ char xp_szpt; char xp_usrpri; char xp_slptime; ushort xp_uid; /* real user id */ ushort xp_suid; /* set (effective) user id */ short xp_pgrp; /* name of process group leader */ short xp_pid; /* unique process id */ short xp_ppid; /* process id of parent */ ushort xp_addr[2]; struct proc *xp_pptr; /* pointer to process structure of parent */ short xp_xstat; /* Exit status for wait */ time_t xp_utime; /* user time, this proc */ time_t xp_stime; /* system time, this proc */ #ifdef VTIMES struct vtimes xp_vm; #endif VTIMES }; #endif #endif 0707070000020300131004440000020000020000031651620000017757000002600000013414usr/include/sys/pte.h#sccs "@(#)uts/kern/sys:pte.h 1.2" /* Convergent Technologies - System V - Jun 1983 */ #ifndef pte_h #define pte_h #include /* * Incore page table entry * * There are two major kinds of pte's: those which have ever existed (and are * thus either now in core or on the swap device), and those which have * never existed, but which will be filled on demand at first reference. * There is a structure describing each. There is also an ancillary * structure used in page clustering. */ /* The format of a pte in the map */ struct pte { ushort pt_wp:1, /* write permission */ pt_acc:2, /* access status */ :3, /* non h/w flags */ pt_pfnum:10; /* core page frame number */ }; /* The format of a pte in memory (our RAM) */ struct mpte { ushort pg_ipte; /* index of hardware pte */ ushort pt_wp:1, /* write permission */ pg_acc:2, /* access control */ pg_fod:1, /* is fill on demand (=0) */ pg_swapm:1, /* have to write back to swap */ pg_pageo:1, /* page is being paged out */ pg_pfnum:10; /* core page frame number or 0 */ }; struct fpte { ushort pg_blkno; /* file system block number */ ushort pt_wp:1, /* write permission */ pg_acc:2, /* access control */ pg_fod:1, /* is fill on demand (=0) */ pg_swapm:1, /* have to write back to swap */ pg_pageo:1, /* page is being paged out */ pg_last:1, /* last data page */ pg_lastsec:2, /* disk sectors in the last data page*/ pg_fileno:7; /* file no for the page */ }; #define PG_PROT ((ushort)0x00008000) #define PG_STAT ((ushort)0x00006000) #define PG_STA_SHFT 13 /* shift to get usage field */ #define PG_ACC ((ushort)0x00004000) #define PG_V ((ushort)0x00002000) #define PG_M ((ushort)0x00006000) #define PG_FOD ((ushort)0x00001000) #define PG_PFNUM ((ushort)0x000003ff) #define PG_FZERO (nofile) #define PG_FTEXT (nofile+1) #define PG_LTEXT (PG_FTEXT+1) #define PG_FMAX (PG_LTEXT) /* * Pte related macros */ #define dirty(pte) ((pte)->pg_fod == 0 && (pte)->pg_pfnum && (pte)->pg_swapm) #ifdef mega #define pgaccess(pte) (*(unsigned short *)(PG_BASE+(pte)->pg_ipte) & PG_STAT == PG_ACC) #define setpgvalid(pte) (*(unsigned short *)(PG_BASE+(pte)->pg_ipte) = (pte)->pg_pfnum | PG_V) #endif #define setpginvalid(hpte) ((hpte)->pt_acc = 0) #define pagevalid(hpte) ((hpte)->pt_acc != 0) #define reference(hpte) (*(unsigned short *)(hpte) & (unsigned short) PG_ACC) #define resetref(hpte) (*(unsigned short *)(hpte) = (*(unsigned short *)(hpte) & (~PG_STAT)) | PG_V) #define modified(hpte) ((*(unsigned short *)(hpte) & PG_STAT) == PG_M) /* * The following variables are defined in end.s and start.s */ extern unsigned long cmaptmp; extern unsigned long ecmaptmp; extern unsigned long eend; extern unsigned long freemem; extern unsigned long ncmaptmp; extern struct pte *ptefork; extern struct pte *ptemutl; extern struct pte *pteswp1; extern struct pte *pteswp2; extern struct pte *ptetmp1; extern struct pte *ptetmp2; extern struct pte *ptevfutl; extern struct pte *mmpte; extern ushort epg; extern ushort epgdata; extern ushort epgtext; extern ushort esg; extern ushort esgdata; extern ushort esgtext; extern ushort upg; extern ushort usg; extern ushort usrcore; struct vaddress { unsigned v_region:2, /* Region of memory(ram,map+regs,rom,i/o) */ v_vpn:10, /* Virtual page number */ v_byte:12; /* Byte within the page */ }; /* Definition of a physical address. */ struct paddress { unsigned p_mbz:11, /* Must be zero */ p_pfn:9, /* Page frame number */ p_byte:12; /* Byte within the page */ }; /* Memory mapping hardware */ #define PG_BASE ((unsigned short *)0x400000) /* address of page table */ #define USER_MAP (unsigned short *)(0x400100) /* address of user part of page table */ #define MAP_TOP (unsigned short *)(0x400800 - 2*KVMEM_VPAGES) /* address past end of memory map */ #define DMA_MAP (unsigned short *)(0x4000c0) /* Disk dma uses segment 6 for i/o */ #define DMA_XFR_ADR 0x60000 /* virtual address corresponding to DMA_MAP */ #define DMA_UPTR (unsigned short *)(0x4000dc) /* Disk dma pte's to access U page */ #define UPTE ((unsigned short *)0x4000E0) /* address of UPAGE pte */ /* Page table entry. * WE bit 15 =1 user can write page, =0 user can read page * USE bits 14-13 value 0=not present, 1=present, not accessed * value 2=accessed not written, 3=written to * PAGEADDR bits 8-0 PHYSADDR=(PAGEADDR*4096) + byte within page * STATES: * page not in memory: WE set as needed and rest=0 * page in memory: WE, PAGEADDR set as needed and USE non zero */ #define PROT_MASK ((ushort)0x8000) /* mask for write bit */ #define USE_MASK ((ushort)0x6000) /* mask for usage bits */ #define PG_MASK 0x1ff /* page address mask */ #define PG_WRITE ((ushort)0x8000) /* user write enable */ #define NO_PAGE 0x0 /* to initialize pte's */ #define PG_IN 0x7fff /* AND mask */ #define PG_PRESENT 0x2000 /* pte&USE_MASK page just in */ #define PG_NOT_DIRTY 0x4000 /* pte&USE_MASK = accessed */ #define PAGE_DIRTY 0x6000 /* pte&USE_MASK = written to */ #define P_ACCESS_CHECK 0x6000 /* AND mask */ #define NO_ACCESS 0 #define TOTAL_PTES 1024 #define TOTAL_PAGES 1024 #define PAGES_IN_PROC 1024-KVMEM_PAGES-SHLIB_PAGES #define BYTES_PER_PAGE 0x1000 #define PAGESHIFT 12 /* gets page number from addr */ /* 4 Mbyte logical address space */ #define MAX_MEM 0x400000 /* 2 Mbyte physical address space */ #define MAX_PHYS_MEM 0x200000 #define PAGES_PER_SEG 16 /* needed to correspond to megaframe rounding */ #define USRSIZE 4096 /* size of usrtbl (upage) in bytes */ #define SEGSIZE 0x10000 /* size of a segment */ /* some defines that lie about some things */ #define SEGS_PER_PROC 64 /* miniframe doesn't have segments */ #define SEGSHIFT 4 /* seg to page */ #define PG_KR 0 /* the kernel can read anything */ #define PG_KW 0 /* the kernel can write to anything */ #endif pte_h 0707070000020300121004440000020000020000031651610000017757000003100000001105usr/include/sys/rastop.h#sccs "@(#)uts/kern/sys:rastop.h 1.1" #ifndef RASTOP_H #define RASTOP_H /* rastop source operators */ #define SRCSRC 0 /* source */ #define SRCPAT 1 /* pattern */ #define SRCAND 2 /* source & pattern */ #define SRCOR 3 /* source | pattern */ #define SRCXOR 4 /* source ^ pattern */ #define SRCMAX 4 /* rastop destination operators */ #define DSTSRC 0 /* srcop(src) */ #define DSTAND 1 /* srcop(src) & dst */ #define DSTOR 2 /* srcop(src) | dst */ #define DSTXOR 3 /* srcop(src) ^ dst */ #define DSTCAM 4 /* ~srcop(src) & dst */ #define DSTMAX 4 #endif RASTOP_H 0707070000020300141004440000020000020000031651740000017757000002600000002700usr/include/sys/reg.h#sccs "@(#)uts/kern/sys:reg.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef reg_h #define reg_h #include /* * Location of the users' stored registers relative to R0. * Usage is u.u_ar0[XX]. */ #define R0 (0) #define R1 (1) #define R2 (2) #define R3 (3) #define R4 (4) #define R5 (5) #define R6 (6) #define R7 (7) #define AR0 (8) #define AR1 (9) #define AR2 (10) #define AR3 (11) #define AR4 (12) #define AR5 (13) #define AR6 (14) #define AR7 (15) #define SP (15) #define PC (17) #define RPS (16) #define VECTOR (18) /* vector offset + flag in MS 16 bits special status word in LS 16 bits */ #define EV_FLTADR (19) /* fault address */ #define EV_DOPBF (20) /* data output buffer in LS 16 bits */ #define EV_DIPBF (21) /* data input buffer in LS 16 bits */ #define EV_IIPBF (22) /* instruction input buffer */ #define EV_LNGFRMT 0x80000000 /* 1= long format */ /* bits in special status word of the long format exception stack frame */ #define EV_RR 0x8000 /* rerun flag 0=processor rerun 1=s/w rerun */ #define EV_IF 0x2000 /* instruction fetch */ #define EV_DF 0x1000 /* data fetch to data input buffer */ #define EV_RM 0x0800 /* read-modify-write cycle */ #define EV_HB 0x0400 /* high byte transfer (valid if BY set) */ #define EV_BY 0x0200 /* BY=1 byte xfr else word */ #define EV_RW 0x0100 /* read/write 0=write 1=read */ #define EV_FC 0x0007 /* fc2-0 */ #define TBIT 0100000 /* PS trace bit */ #endif 0707070000020300151004440000020000020000031651760000017757000002600000003530usr/include/sys/rtc.h#sccs "@(#)uts/kern/sys:rtc.h 1.1" /* Convergent Technologies - System V - June 1983 */ /* real time clock */ #include /* */ /* REAL TIME CLOCK TC8250P */ /* WRITE MODE */ /* Uses upper byte of I/O address 0x480000 */ /* Upper 4 bits used to control chip operation */ /* Lower 4 bits used for internal chip addressing and I/O data */ #define RTC_WRITE_ADDR ((unsigned short *)0x480000) /* RTC write address */ #define RTCCE 0x8000 /* real time clock chip select*/ #define RTCALE 0x4000 /* RTC address latch enable */ #define RTCRW 0x2000 /* RTC write enable, inverse=read enable */ #define RTCDE 0x1000 /* RTC write data enable */ /* READ MODE */ /* Uses upper byte of I/O address 0xe30000 */ /* Uses lower 4 bits only */ #define RTC_READ_ADDR ((unsigned short *)0xe30000) /* RTC read addr */ /* ADDRESS MODES */ #define ONE_SEC_DIGT 0x0000 /* 1 sec digit */ #define TEN_SEC_DIGT 0x0100 /* 10 sec digit */ #define ONE_MIN_DIGT 0x0200 /* 1 minute digit */ #define TEN_MIN_DIGT 0x0300 /* 10 minutes digit */ #define ONE_HR_DIGT 0x0400 /* 1 hour digit */ #define TEN_HR_DIGT 0x0500 /* 10 hours digit */ #define ONE_DAY_DIGT 0x0600 /* 1 day digit */ #define TEN_DAY_DIGT 0x0700 /* 10 days digit */ #define ONE_MNTH_DIGT 0x0800 /* 1 month digit */ #define TEN_MNTH_DIGT 0x0900 /* 10 month digit */ #define ONE_YR_DIGT 0x0a00 /* 1 year digit */ #define TEN_YR_DIGT 0x0b00 /* 10 year digit */ #define WEEK_DAY 0x0c00 /* day of the week */ #define TOUT_CONTROL 0x0d00 /* Tout control */ #define PROTECT_KEY 0x0e00 /* protection key */ #define RTC_STATUS 0x0f00 /* real time clock status */ /* * i/o structure used in rtc read/write system calls (syslocal 10,11) */ struct rtc { char sec1,sec10; char min1,min10; char hr1,hr10; char day1,day10; char mon1,mon10; char yr1,yr10; char wkday; }; 0707070000020300161004440000020000020000031652050000017757000002600000005107usr/include/sys/sem.h#sccs "@(#)uts/kern/sys:sem.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef sem_h #define sem_h #include "sys/ipc.h" /* ** IPC Semaphore Facility. */ /* ** Implementation Constants. */ #define PSEMN (PZERO + 3) /* sleep priority waiting for greater value */ #define PSEMZ (PZERO + 2) /* sleep priority waiting for zero */ /* ** Permission Definitions. */ #define SEM_A 0200 /* alter permission */ #define SEM_R 0400 /* read permission */ /* ** Semaphore Operation Flags. */ #define SEM_UNDO 010000 /* set up adjust on exit entry */ /* ** Semctl Command Definitions. */ #define GETNCNT 3 /* get semncnt */ #define GETPID 4 /* get sempid */ #define GETVAL 5 /* get semval */ #define GETALL 6 /* get all semval's */ #define GETZCNT 7 /* get semzcnt */ #define SETVAL 8 /* set semval */ #define SETALL 9 /* set all semval's */ /* ** Structure Definitions. */ /* ** There is one semaphore id data structure for each set of semaphores ** in the system. */ struct semid_ds { struct ipc_perm sem_perm; /* operation permission struct */ struct sem *sem_base; /* ptr to first semaphore in set */ ushort sem_nsems; /* # of semaphores in set */ time_t sem_otime; /* last semop time */ time_t sem_ctime; /* last change time */ }; /* ** There is one semaphore structure for each semaphore in the system. */ struct sem { ushort semval; /* semaphore text map address */ short sempid; /* pid of last operation */ ushort semncnt; /* # awaiting semval > cval */ ushort semzcnt; /* # awaiting semval = 0 */ }; /* ** There is one undo structure per process in the system. */ struct sem_undo { struct sem_undo *un_np; /* ptr to next active undo structure */ short un_cnt; /* # of active entries */ struct undo { short un_aoe; /* adjust on exit values */ short un_num; /* semaphore # */ int un_id; /* semid */ } un_ent[1]; /* undo entries (one minimum) */ }; /* ** semaphore information structure */ struct seminfo { int semmap, /* # of entries in semaphore map */ semmni, /* # of semaphore identifiers */ semmns, /* # of semaphores in system */ semmnu, /* # of undo structures in system */ semmsl, /* max # of semaphores per id */ semopm, /* max # of operations per semop call */ semume, /* max # of undo entries per process */ semusz, /* size in bytes of undo structure */ semvmx, /* semaphore maximum value */ semaem; /* adjust on exit max value */ }; /* ** User semaphore template for semop system calls. */ struct sembuf { ushort sem_num; /* semaphore # */ short sem_op; /* semaphore operation */ short sem_flg; /* operation flags */ }; #endif sem_h 0707070000020300171004440000020000020000031652100000017757000002600000005521usr/include/sys/shm.h#sccs "@(#)uts/kern/sys:shm.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef shm_h #define shm_h #include "sys/ipc.h" #include "sys/pte.h" /* ** IPC Shared Memory Facility. */ /* ** Implementation Constants. */ #define SHMLBA (BYTES_PER_PAGE * PAGES_PER_SEG) /* segment low boundary address multiple */ /* (SHMLBA must be a power of 2) */ /* ** Permission Definitions. */ #define SHM_R 0400 /* read permission */ #define SHM_W 0200 /* write permission */ /* ** ipc_perm Mode Definitions. */ #define SHM_CLEAR 01000 /* clear segment on next attach */ #define SHM_DEST 02000 /* destroy segment when # attached = 0 */ /* ** Message Operation Flags. */ #define SHM_RDONLY 010000 /* attach read-only (else read-write) */ #define SHM_RND 020000 /* round attach address to SHMLBA */ /* ** Structure Definitions. */ /* ** There is a shared mem id data structure for each segment in the system. ** These structs form shmem[] array, and are pointed to from shm_shmem[]. ** The word "segment" above meant a piece of shared memory. ** Shared memory, and its page table entries and map thereto, are locked ** into memory (unless, perhaps, all users are currently swapped?). ** The page table entries are managed by an in-core copy in the area ** provided by shmmpte[], using a map (via rmap()) in shmmap[]. */ struct shmid_ds { struct ipc_perm shm_perm; /* operation permission struct */ int shm_segsz; /* segment size */ struct mpte *shm_ptbl; /* ptr to associated page table */ ushort shm_lpid; /* pid of last shmop */ ushort shm_cpid; /* pid of creator */ ushort shm_nattch; /* current # attached */ time_t shm_atime; /* last shmat time */ time_t shm_dtime; /* last shmdt time */ time_t shm_ctime; /* last change time */ }; /* ** Shared memory page table descriptors, used to form shm_pte[] array. ** Array shm_pte[] contains fixed number available per-process, ** and active elements are chained together off p->p_smbeg, via ** the shm_link member, in increasing order of the shm_sgbegin ** segment #, to allow shmat() to do first fit easily. */ struct shmpt_ds { struct shmpt_ds *shm_link; /* links for the shared memory used by a process */ unsigned char shm_sflg; /* R/W permission on segment */ unsigned char shm_index; /* index into shmem */ ushort shm_sgbegin; /* beginning virtual page number */ }; /* values for shm_sflg */ #define SHMPT_R 0x1 #define SHMPT_W 0x2 /* ** One shminfo struct per system, with standard System V shared memory ** parameters. */ struct shminfo { int shmmax, /* max shared memory segment size */ shmmin, /* min shared memory segment size */ shmmni, /* # of shared memory identifiers */ shmseg, /* max attached shared memory segments per process */ shmbrk, /* gap (in clicks) used between data and shared memory */ shmall; /* max total shared memory system wide (in clicks) */ }; #endif shm_h 0707070000020300631004440000020000020000021654620000017757000003100000002357usr/include/sys/signal.h#sccs "@(#)uts/kern/sys:signal.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef signal_h #define signal_h #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 /* segmentation 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 */ #define SIGWIND 20 /* window change */ #define SIGPHONE 21 /* handset, line status change */ #define NSIG 32 #define SIG_DFL (int (*)())0 #if lint #define SIG_IGN (int (*)())0 #else #define SIG_IGN (int (*)())1 #endif #endif signal_h 0707070000020300201004440000020000020000031652150000017757000002700000001142usr/include/sys/slot.h#sccs "@(#)uts/kern/sys:slot.h 1.1" /* * slot.h 5/14/85 * expansion slot definitions for UNIX PC */ #ifndef slot_h #define slot_h #define IDBASE 0x3fff8 /* offset of id fields within slot */ #define NSLOTS 8 /* total # of expansion slots */ #define SLOT0 0xC00000 #define SLOT1 0xC40000 #define SLOT2 0xC80000 #define SLOT3 0xCC0000 #define SLOT4 0xD00000 #define SLOT5 0xD40000 #define SLOT6 0xD80000 #define SLOT7 0xDC0000 struct slot { unsigned char s_idlo, s_idhi; /* board id */ unsigned char s_chklo, s_chkhi; /* checksum */ }; #ifdef KERNEL extern struct slot slots[]; #endif #endif slot_h 0707070000020300211004440000020000020000031652160000017757000003000000026146usr/include/sys/space.h#sccs "@(#)uts/kern/sys:space.h 1.18" /* Convergent Technologies - System V - May 1983 */ #ifndef space_h #define space_h /* #define KERNEL */ #include #include "sys/acct.h" struct acct acctbuf; struct inode *acctp; #include "sys/buf.h" struct buf bfreelist; /* head of the free list of buffers */ struct pfree pfreelist; /* Head of physio header pool */ struct buf swbuf[NSWBUF]; int swpf [NSWBUF]; short swsize [NSWBUF]; int nswbuf = NSWBUF; struct buf bswlist; struct buf *bclnlist; struct hbuf hbuf[NHBUF]; /* buffer hash table */ #include "sys/inode.h" /* EAH: the inode table is about 2.5K, the lock list about .6K. Can * they be put into KVMEM? */ #ifdef BASSLOCKING struct locklist locklist[NFILEHI]; short nflocks = NFILEHI; #else BASSLOCKING #include "sys/flock.h" struct flckinfo flckinfo = { (long)NFILEHI }; struct filock flox[ NFILEHI ]; #endif BASSLOCKING #include "sys/map.h" struct map swapmap[SMAPSIZ]; int nswapmap = SMAPSIZ; #include "sys/mount.h" struct mount mount[NMOUNT]; #include "sys/err.h" struct err errbuf[NERR]; short err_cnt = NERR; #include "sys/sysinfo.h" struct sysinfo sysinfo; struct syswait syswait; struct syserr syserr; extern ipcnosys(), ipcnull(); #if MESG==1 extern imsgsys(), imsginit(); #endif typedef int (*Fint)(); Fint ipcdefault[] = { #if MESG==0 ipcnosys, /* msgsys */ ipcnull, /* msginit */ #else imsgsys, imsginit, #endif #if SEMA==0 ipcnosys, /* semsys */ ipcnull, /* seminit */ ipcnull, /* semexit */ #endif #if SHMEM==0 ipcnosys, /* shmsys */ ipcnull, /* shmexec */ ipcnull, /* shmfork */ ipcnull, /* shminit */ ipcnull, /* setupshm */ ipcnull /* freeshmseg */ #endif }; Fint *ipcfunc = ipcdefault; /* ipc function indirection table */ #if DEBUGGER==0 dbmain(){} #endif #ifndef NOSTREAMS #ifdef SLAN_0 #include "sys/stream.h" #include "sys/strconf.h" #define NDBLOCK NBLK4096+NBLK2048+NBLK1024+NBLK512+NBLK256+NBLK128+NBLK64+NBLK16+NBLK4 #define NMBLOCK NDBLOCK+((NDBLOCK)/4) queue_t queue[NQUEUE]; struct stdata streams[NSTREAM]; mblk_t mblock[NMBLOCK]; dblk_t dblock[NDBLOCK]; int strmsgsz = STRMSGSZ; int nmblock = NMBLOCK; struct fmodsw fmodsw[NFMODS]; int fmodcnt = 0; char strdarray[ (NBLK4096+1)*4096 + NBLK2048*2048 + NBLK1024*1024 + NBLK512*512 + NBLK256*256 + NBLK128*128 + NBLK64*64 + NBLK16*16 + NBLK4*4 ]; /* Declare the indirect pointer routines to stream entry points */ extern stropen(), strclose(), strread(), strwrite(), strioctl(), runqueues(); Fint si_open = stropen, si_close = strclose, si_read = strread, si_write = strwrite, si_ioctl = strioctl, si_sched = runqueues; #else /* Declare the indirect pointer routines to stream entry points; * These get patched by the steam module init routine to the right * values. These are dummy panic routines for now */ extern nulldev (); char qrunflag; char queueflag; d_stropen() { panic ("d_stropen"); } d_strclose() { panic ("d_strclose"); } d_strread() { panic ("d_stropen"); } d_strwrite() { panic ("d_strwrite"); } d_strioctl() { panic ("d_strioctl"); } d_strsched() { panic ("d_strsched"); } Fint si_open = d_stropen, si_close = d_strclose, si_read = d_strread, si_write = d_strwrite, si_ioctl = d_strioctl, si_sched = d_strsched, si_trace = nulldev; #endif SLAN_0 #endif NOSTREAMS #include "sys/tune.h" struct tunable tulo = { NBUF, NINODE, NFILE, NPROC, NTEXT, NCLIST, NPBUF, NCALL }; struct tunable tuhi = { NBUFHI, NINODEHI, NFILEHI, NPROCHI, NTEXTHI, NCLISTHI, NPBUFHI, NCALLHI }; /* default table in case tuhi is modified by user program to exceed system limit */ struct tunable deftuhi = { NBUFHI, NINODEHI, NFILEHI, NPROCHI, NTEXTHI, NCLISTHI, NPBUFHI, NCALLHI }; #include "sys/var.h" struct var v = { 0, 0, 0, 0, 0, 0, NMOUNT, (char *)(&mount[NMOUNT]), 0, 0, 0, 0, 0, NSABUF, MAXUP, SMAPSIZ, NHBUF, NHBUF-1, 0, }; #include "sys/init.h" #ifndef PRF_0 prfintr() {} unsigned prfstat; #endif #ifdef DISK_0 #ifndef DISK_1 #define DISK_1 0 #endif #ifndef DISK_2 #define DISK_2 0 #endif #ifndef DISK_3 #define DISK_3 0 #endif #include "sys/iobuf.h" #include "sys/gdisk.h" /* S4 general disk driver global variables */ char gdhdbbq[HDMAXCYL], gdsybbq[HDMAXCYL]; struct bbmcell gdhdbb[HDMAXBADBLK], gdsybb[HDMAXBADBLK]; extern ghdintr(), ghdstart(); extern gfpintr(), gfpstart(); struct gdswprt gddefault = { "Deflt",1,1,4,4,FPDENSITY,2,512}; /* sufficient to load vhb+bbt */ struct gdsw gdsw[] = { { 0,{"WIN", 1023, 4, 17, 68,0, 0, 512}, -1,0,16, 1023*16,40, ghdintr, ghdstart, HDMAXCYL, HDMAXBADBLK, gdhdbbq, gdhdbb,0}, { 0,{"WIN1", 1023, 4, 17, 68,0, 0, 512}, -1,0,16, 1023*16,40, ghdintr, ghdstart, HDMAXCYL, HDMAXBADBLK, gdsybbq, gdsybb,0}, { 0,{"FD", 80, 2, 8, 16,2, 0, 512}, -1,0,8, 80*8,60, gfpintr, gfpstart, FPMAXCYL, FPMAXBADBLK, NULL, NULL,0} }; struct iobuf gdutab[DISKS]; struct iobuf gdtab; #ifdef IOSTAT struct iotime gdstat[DISKS]; #endif struct driver gdreal; int gd_cnt = DISK_0; /* 1 general disk controller for HD SY FD */ char gdourunflg = 0; /* disk dma over/under run flag */ #endif #ifdef TRACE_0 #include "sys/trace.h" struct trace trace[TRACE_0]; int tr_cnt = TRACE_0; int tr_flag; char tr_buff [128]; char *tr_bp = tr_buff; #endif #if MESG==1 #include "sys/ipc.h" #include "sys/msg.h" struct map msgmap[MSGMAP]; struct msqid_ds msgque[MSGMNI]; struct msg msgh[MSGTQL]; struct msginfo msginfo = { MSGMAP, MSGMAX, MSGMNB, MSGMNI, MSGSSZ, MSGTQL, MSGSEG }; #endif /* data associated with the low level RS-232 input routine in ml/i8274.s */ #include "sys/iohw.h" #include "sys/i8274.h" #include "sys/tty.h" struct device sertty0 = { 0, NULL, A_CMND_ADDR, A_DATA_ADDR, A_CMND_ADDR, 0,0,0,0,0,0,A_BAUD_ADDR,0 }; /* this 8274 port used for the modem, always the last one in ser_addr[] */ struct device sermod0 = { 0, NULL, B_CMND_ADDR, B_DATA_ADDR, A_CMND_ADDR, 0,0,0,0,0,0,0,0 }; struct tty ser_tty[2] = {0}; /* modem uses the tty struct one above ser_cnt. */ /* This array of pointers to tty and device struct is initialized with the * struct for the RS-232 and phone port. The other six entries are reserved * for ports on the expansion boards. */ struct device *ser_addr[] = { &sertty0, &sermod0, 0,0,0, 0,0,0 }; struct tty *pser_tty[] = { &ser_tty[0], &ser_tty[1], 0,0,0, 0,0,0 }; #define SZSERBUF (NSERBUF) unsigned short serbuf[SZSERBUF]; unsigned short *inptr = serbuf; /* addr of next char to put in buffer */ unsigned short *outptr = serbuf; /* address of next char to take from buffer */ int nttyhog = NTTYHOG; int serbufcnt = 0; /* count of characters in buffer */ int serbufful = SZSERBUF; /* max characters that can be put in buffer */ unsigned char serinprogress = 0; /* 1 if input proc in progress */ unsigned char serxoff = 0; /* XOFF from RX blocking TX */ unsigned char serinxoff = 0; /* received XOFF blocking TX */ unsigned char sertxblkd = 0; /* received XOFF should restart TX */ unsigned char sercd = 0; /* state of CD for each line */ unsigned char sercts = 0; /* state of CTS for each line */ unsigned char serixon = 0; /* state of ixon for each line */ unsigned char serixany = 0; /* state of ixany for each line */ unsigned char serbpend = 0; /* state of BREAK for each line */ unsigned short *bserbuf = &serbuf[0]; /* start of serial buffer */ unsigned short *eserbuf = &serbuf[SZSERBUF]; /* first address past end of serbuf */ unsigned char ser_ports[8] = {0}; /* preserves extended control bits per 8274 port */ short ser_cnt = 2; /* how many serial ports, includes phone */ #include "sys/ph.h" #include "sys/dialer.h" #include "sys/hardware.h" #include "sys/phone.h" short int DTMFpad[] = { kDIGIT0, kDIGIT1, kDIGIT2, kDIGIT3, kDIGIT4, kDIGIT5, kDIGIT6, kDIGIT7, kDIGIT8, kDIGIT9, kDIGAST, kDIGPND }; struct phdef phndef[] = { { 0,0,0,0,0,0,0,0,15,1,LN1_CONNECT,DNLN1_CONNECT, DTMF|RINGON|NORMRNG|MEDRNG|SPEAKERON, 0,500,L1MD_GCR_ADDR,HOOK1_RELAY,A_LEAD1_RELAY, LINE1_ACTIVE, NULL, NULL, VOICE,0,0 }, { 0,1,0,0,0,0,0,0,15,1,LN2_CONNECT,DNLN2_CONNECT, DTMF|RINGON|NORMRNG|MEDRNG|SPEAKERON, 0,500,L2MD_GCR_ADDR,HOOK2_RELAY,A_LEAD2_RELAY, LINE2_ACTIVE, NULL, NULL, 0,0,0 } }; /* structure for the 2 lines */ struct mddef moddef[1] = {0}; /* structure used for modem ctl */ struct dndef dnwdef[1] = {0}; /* structure for dial network */ struct mddef *mdptr = moddef; /* global pointer to modem struct */ struct dndef *dnptr = dnwdef; /* global pointer to dial struct */ char teleline = UNUSED; /* used to recall which line the */ /* handset is connected to. */ char fcallprog= 0; /* true if monitoring call prog */ ushort telestat = 0; /* used for message wait and line */ /* 1 and 2 ringing. */ ushort msgstat = 0; #include "sys/wd.h" extern int khigh(),mscoord(), kbinit(); /* defaults for resident keyboard */ int (*ldmisc[])() = { nulldev, nulldev, nulldev, nulldev, kbinit, nulldev, nulldev, nulldev, nulldev, nulldev, nulldev, nulldev, nulldev, khigh, mscoord, nulldev, /*CT reserved*/ nulldev, nulldev, nulldev, nulldev, /* available for users */ }; #include "sys/slot.h" /* expansion slot table */ struct slot slots[NSLOTS]; /* table for loadable drivers */ #include "sys/drv.h" #define NLDDRV (NLBDRV+NLCDRV) struct drv_tbl Drv_tbl[NLDDRV]; ushort Drv_max = NLDDRV; extern struct drv_int dskdrv, kbddrv; struct drv_int *Drv_Int[] = { 0, &dskdrv, &kbddrv, 0, 0, 0 }; /* Virtual Space */ /* PXMEM must not be at the beginning of KVMEM due to rastop bug BG - 12/18/84 */ #define DLMEM KVMEM_VBASE #define DLSIZE (btopxc(NDL*sizeof(struct dldef))) #define PXMEM (btopxc(DLMEM+DLSIZE)) #define WTXTMEM (btopxc(PXMEM+PXMEMSIZE)) #define WTXTSIZE (NWINDOWS*WTXTNUM*WTXTLEN) #define FONTMEM (btopxc(WTXTMEM+WTXTSIZE)) #define ALTVMEM (btopxc(FONTMEM+FMEMSIZE)) #define ALTVSIZE (VIDBYTES*VIDHEIGHT) #define OLMEM (btopxc(ALTVMEM+ALTVSIZE)) #define OLSIZE (btopxc(NOL*sizeof(struct oldef))) #define MSGMEM (btopxc(OLMEM+OLSIZE)) #if MESG==1 #define MSGSIZE (btopxc(MSGSEG*MSGSSZ)) char *msgbuf = (char *)MSGMEM; #else #define MSGSIZE 0 #endif #define SEMMEM (btopxc(MSGMEM+MSGSIZE)) #define VTOTAL (DLSIZE+PXMEMSIZE+FMEMSIZE+WTXTSIZE+ALTVSIZE+OLSIZE+MSGSIZE) struct dldef *dlpool = (struct dldef *)DLMEM; short maxdl = NDL; short *pxmem = (short *)PXMEM; int pxmemsize = PXMEMSIZE; char *fontmem = (char *)FONTMEM; int fmemsize = FMEMSIZE; char *wtxt = (char *)WTXTMEM; unsigned short *altvmem = (unsigned short *)ALTVMEM; struct oldef *olheap = (struct oldef *)OLMEM; int ol_cnt = NOL; struct mpte kv_mpte[(KVMEM_VLIMIT-KVMEM_VBASE)>>BPCSHIFT]; int kv_pages = (VTOTAL+NBPC-1)>>BPCSHIFT; ushort kv_swap; int nofile = NOFILE; int nofilmax = NOFILMAX; /* * The following definitions support the functions called * from the system calls for networking, and network * semaphores. */ extern int nodev(), nullsys(); (*sock_write)() = nodev; (*sock_read)() = nodev; (*sock_ioctl)() = nodev; (*sock_close)() = nodev; (*sock_sema)() = nullsys; short softnetint = 0; short netbusy = 0; /* * The following network constants can be set from tunevars */ int net_mbsize = 64*1024; /* amount of space to reserve for mbufs */ int net_tcpdebug = 0; /* Number of tcp trace buffers */ int vt_defcnt = 0; /* Number of configured pseudo-terminals */ #endif space_h 0707070000020300221004440000020000020000031652450000017757000002600000004673usr/include/sys/spl.h#sccs "@(#)uts/kern/sys:spl.h 1.1" /* Convergent Technologies - System V - Apr 1984 */ /* * spl.h - provide assembly macros for spls * These come in two flavors: * SPLx - same as splx except puts previous sr into variable s * VSPLx- same as (void) splx; i.e. no return value * SPLX restores previous spl level by using s * * NOTE: s is declared in macro SDEC as a auto short; It should not be a * register variable as that will require more space and time */ #ifndef spl_h #define spl_h extern ushort __sr; #define SDEC auto ushort s #define SPL7\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ } #define SPL6\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFEFF, __sr # then down to level 6");\ } #define SPL5\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFDFF, __sr # then down to level 5");\ } #define SPL4\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFCFF, __sr # then down to level 4");\ } #define SPL3\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFBFF, __sr # then down to level 3");\ } #define SPL2\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFAFF, __sr # then down to level 2");\ } #define SPL1\ {s = __sr;\ asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xF9FF, __sr # then down to level 1");\ } #define SPL0\ {s = __sr;\ asm("and.w &0xF8FF, __sr # down to level 0");\ } #define VSPL7\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ } #define VSPL6\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFEFF, __sr # then down to level 6");\ } #define VSPL5\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFDFF, __sr # then down to level 5");\ } #define VSPL4\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFCFF, __sr # then down to level 4");\ } #define VSPL3\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFBFF, __sr # then down to level 3");\ } #define VSPL2\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xFAFF, __sr # then down to level 2");\ } #define VSPL1\ { asm("or.w &0x0700, __sr # interrupt mask level 7");\ asm("and.w &0xF9FF, __sr # then down to level 1");\ } #define VSPL0\ { asm("and.w &0xF8FF, __sr # down to level 0");\ } #define SPLX {__sr = s;} #endif spl_h 0707070000020300231004440000020000020000031652520000017757000002500000015270usr/include/sys/st.h#sccs "@(#)uts/kern/sys:st.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef st_h #define st_h #include "sys/param.h" #define STCWAIT (HZ / 3) #define STFUDGE 16 #define NOSLP 0 #define STSP 36 #define SOH 0001 #define STX 0002 #define ETX 0003 #define EOT 0004 #define ENQ 0005 #define BEL 0007 #define DLE 0020 #define DC1 0021 #define DC2 0022 #define DC3 0023 #define NAK 0025 #define SYN 0026 #define ETB 0027 #define ESC 0033 #define GS 0035 #define EFLG 0200 /* invalid address character flag */ #define ROWLEN 80 /* columns per row */ #define ROWCNT 24 /* rows per screen */ struct strca { char a_row; char a_col; }; struct stbaa { char a_baddr1; char a_baddr2; }; #define MAXWCSZ 150 #define MAXRCSZ 100 #define MAXWRSZ 100 #define MAXRRSZ 150 #define BLKSZ 256 /* minimum XMT buffer size */ #define BLKFDG 64 /* block size fudge factor */ #define FAC ' ' /* field attribute character */ #define PT '\011' /* program tab order */ #define EWC '5' /* erase write command */ #define WC '1' /* write command */ #define WCC '3' /* write control character, no print */ #define PWCC '#' /* write control character, start printer */ #define NSTCHQ 8 /* size of user RCV queue */ #define NXSTCHQ 8 /* size of user reXMT queue */ /* * Synchronous terminal parameter structure. * Set up in space.h. */ struct ststat { unsigned ibsz; /* input buffer size */ unsigned obsz; /* output buffer size */ int ihbuf; /* # of input buffer headers */ int ohbuf; /* # of output buffer headers */ int nprnt; /* # of print channels */ }; /* * Message header structure. * One per outstanding message. Others on free chain. */ struct stbhdr { struct csibd sm_bd; /* buffer descriptors */ char sm_flags; /* buffer flags */ }; /* * sm_flags definitions. */ #define STRCV 1 /* receive buffer */ #define STXMT 2 /* transmit buffer */ #define STWAK 4 /* issue wakeup when buffer returned */ /* * sm_type definitions. */ #define FRVI 0x01 /* XMT failed, RVI'ed */ #define FNAK 0x02 /* XMT failed, NAK'ed */ #define FWAK 0x04 /* XMT failed, WAK'ed */ #define FTO 0x08 /* XMT failed, timed out */ #define FGBG 0x10 /* XMT failed, garbage response */ #define FEOT 0x20 /* XMT failed, EOT'ed */ #define FBLOCK 1 /* 1st block in a RCV message */ #define LBLOCK 2 /* last block in a RCV message */ #define CONREPT 4 /* controller connected report */ /* * Message queue header structure. * One RCV queue & one reXMT queue per user channel. */ struct stmsghdr { short s_max; /* max length of queue */ short s_act; /* number of current queue members */ struct stbhdr *s_last; /* pointer to last queue member */ struct stbhdr *s_first; /* pointer to message queue */ }; /* * Synchronous terminal control header. * One per synchronous line. */ struct stc { ushort flags; /* flags */ ushort ttyid; /* current input terminal id */ char csidev; /* CSI interface device */ }; /* * flags definitions. */ #define STACTIVE 0x010 /* channel connected */ #define STRUN 0x020 /* script is running */ #define VPMERR 0x040 /* script terminated */ #define STLOAD 0x080 /* script loaded (but not yet started) */ #define STATTACH 0x100 /* device attached */ #define STHANGUP 0x200 /* device in HANGUP state */ /* * Synchronous terminal user header. * One per user printer or terminal channel. */ struct st { ushort s_ttyid; /* terminal identifier */ short s_pgrp; /* process group */ char s_row; /* cursor row of last field read */ char s_col; /* cursor col of last field read */ char s_orow; /* cursor row on last send */ char s_ocol; /* cursor col on last send */ char s_srow; /* row save area */ char s_scol; /* col save area */ char s_prow; /* cursor row of prompt protect FAC */ char s_pcol; /* cursor col of prompt protect FAC */ char s_tab; /* change to tab on input */ char s_aid; /* send key code */ char s_ss1; /* status and sense byte 1 */ char s_ss2; /* status and sense byte 2 */ ushort s_pcount; /* XMT buffer size request */ ushort s_roffset; /* read offset into s_rbuf */ ushort s_imode; /* input modes */ ushort s_omode; /* output modes */ ushort s_lmode; /* local modes */ ushort s_size; /* size of current XMT buffer */ short s_free; /* free bytes in current XMT buffer */ short s_pfree; /* s_free at prompt protect field */ struct stbhdr *s_rbuf; /* ptr to current RCV buffer */ struct stbhdr *s_xbuf; /* ptr to current XMT buffer */ char *s_ptr; /* ptr into current XMT buffer */ struct stc *s_ctrlp; /* ptr to associated control struct */ long s_flags; /* state of channel */ struct stmsghdr s_hdr; /* RCV queue header */ struct stmsghdr s_xhdr; /* reXMT queue header */ }; /* * s_flags definitions. */ #define CH_OPEN 0x00001L /* channel open */ #define CH_AVAIL 0x00002L /* channel not assigned to device */ #define WOUT 0x00004L #define WWOUT 0x00008L #define NOUT 0x00010L /* wait for entry before next output to term */ #define CTLD 0x00020L /* EOF indication entered */ #define STRFLG 0x00040L /* a reader is waiting for input */ #define STAWR 0x00080L #define STSOH 0x00100L /* a status and sense message was received */ #define STTO 0x00200L #define STFRD 0x00400L #define RESET 0x00800L #define DCF 0x01000L #define DCF2 0x02000L #define EOR 0x04000L #define STEOT 0x08000L #define STFMT 0x10000L #define STCLR 0x20000L/* CLEAR key hit, reformat screen */ #define STRVI 0x40000L/* device temporarily unavailable */ #define STWIP 0x80000L/* write in progress */ #define STWWAIT 0x100000L/* writer waiting for writer to complete */ #define STIGNTAB '\377' /* stty code for undefined control character */ #define PA1 '%' /* code for PA1 key */ #define PA2 '>' /* code for PA2 key */ #define PF12 '@' /* code for PF12 key */ #define CLEAR '_' /* code for CLEAR key */ /* Operation status flags for stcfl(). */ #define NOTEOW 0 /* flush because buffer full */ #define EOW 1 /* flush because end of write system call */ #define REOW 2 /* flush before read request */ #define LEOW 4 /* flush at end of output page */ #define PEOW 8 /* protect prompt before flush */ #define HDRSZ 7 /* protocol hdr size in RCV buffer */ #define TERMHSZ 7 /* protocol hdr size in terminal XMT buffer */ #define PRNTHSZ 10 /* protocol hdr size in printer XMT buffer */ #define RCVLEN 4 /* # of RCV buffers per line */ #define SMSGSZ 8 /* status message size */ #define DEVCOD " ABCDEFGHI[.<(+!&JKLMNOPQR]$*);^" /* valid synchronous device codes */ #define STMBSZ 256 /* RCV buffer size */ #define STMPRI (PZERO + 1) /* allow interrupted reads */ #define stid(X) (ushort)((X->sm_bd.d_octet2 << 8) | X->sm_bd.d_octet3) #ifdef pdp11 #define moveio(loc, cnt, rw) pimove((long)(unsigned)loc, cnt, rw) #else #define moveio(loc, cnt, rw) iomove((caddr_t)loc, cnt, rw) #endif #endif st_h 0707070000020300241004440000020000020000031652670000017757000002700000001740usr/include/sys/stat.h#sccs "@(#)uts/kern/sys:stat.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef stat_h #define stat_h #include /* * Structure of the result of stat */ struct stat { dev_t st_dev; ino_t st_ino; ushort st_mode; short st_nlink; ushort st_uid; ushort st_gid; dev_t st_rdev; off_t st_size; time_t st_atime; time_t st_mtime; time_t st_ctime; }; #define S_IFMT 0170000 /* type of file */ #define S_IFDIR 0040000 /* directory */ #define S_IFCHR 0020000 /* character special */ #define S_IFBLK 0060000 /* block special */ #define S_IFREG 0100000 /* regular */ #define S_IFIFO 0010000 /* fifo */ #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 permission, owner */ #define S_IEXEC 00100 /* execute/search permission, owner */ #endif 0707070000020300251004440000020000020000031652700000017757000003200000001632usr/include/sys/stermio.h#sccs "@(#)uts/kern/sys:stermio.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* * ioctl commands for control channels */ #define STSTART 1 /* start protocol */ #define STHALT 2 /* cease protocol */ #define STPRINT 3 /* assign device to printer */ /* * ioctl commands for terminal and printer channels */ #define STGET (('X'<<8)|0) /* get line options */ #define STSET (('X'<<8)|1) /* set line options */ #define STTHROW (('X'<<8)|2) /* throw away queued input */ #define STWLINE (('X'<<8)|3) /* get synchronous line # */ struct stio { unsigned short ttyid; char row; char col; char orow; char ocol; char tab; char aid; char ss1; char ss2; unsigned short imode; unsigned short lmode; unsigned short omode; }; /* ** Mode Definitions. */ #define STFLUSH 00400 /* FLUSH mode; lmode */ #define STWRAP 01000 /* WRAP mode; lmode */ #define STAPPL 02000 /* APPLICATION mode; lmode */ 0707070000020300261004440000020000020000031652710000017757000003200000002052usr/include/sys/sysinfo.h#sccs "@(#)uts/kern/sys:sysinfo.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef sysinfo_h #define sysinfo_h #include struct sysinfo { time_t cpu[4]; #define CPU_IDLE 0 #define CPU_USER 1 #define CPU_KERNAL 2 #define CPU_WAIT 3 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 phread; long phwrite; long swapin; long swapout; long bswapin; long bswapout; long pswitch; long syscall; long sysread; long syswrite; long sysfork; long sysexec; long runque; long runocc; long swpque; long swpocc; long iget; long namei; long dirblk; long readch; long writech; long rcvint; long xmtint; long mdmint; long rawch; long canch; long outch; long msg; long sema; long pgin; long pgout; }; extern struct sysinfo sysinfo; struct syswait { short iowait; short swap; short physio; }; extern struct syswait syswait; struct syserr { long inodeovf; long fileovf; long textovf; long procovf; }; extern struct syserr syserr; #endif 0707070000020300651004440000020000020000021654670000017757000003300000002644usr/include/sys/syslocal.h#sccs "@(#)uts/kern/sys:syslocal.h 1.2" /* Convergent Technologies - System V - Sep 1984 */ /* * valid 'cmds' for syslocal() sys call */ #define SYSL_SYSTEM 0 /* identify machine type */ #define SYSL_REBOOT 1 /* reboot system */ #define SYSL_APNUM 4 /* which AP # (returns 0) */ #define SYSL_TOTAPS 5 /* how many APs (returns 1) */ #define SYSL_KADDR 9 /* Kernel addresses (e.g. for ps ) */ #define SYSL_RDRTC 10 /* read real-time clock */ #define SYSL_WRTRTC 11 /* write real-time clock */ #define SYSL_LED 12 /* set/clear user LED (LED0) */ #define SYSL_MREBOOT 14 /* additional reboot (for Mini/Mega compatiblity) */ #define SYSL_ALLOCDRV 15 /* dynamic driver allocate */ #define SYSL_BINDDRV 16 /* dynamic driver bind */ #define SYSL_LFONT 17 /* load a font without a window */ #define SYSL_UFONT 18 /* unload a font */ /* values for SYSL_KADDR */ #define SLA_V 0 /* return struct var address */ #define SLA_PROC 1 /* return proc struct address */ #define SLA_TIME 3 /* time */ #define SLA_USRSTK 6 /* top of user stack */ #define SLA_USIGN 7 /* UNIX signiture */ #define SLA_BLDDATE 8 /* build date string */ #define SLA_BLDPWD 9 /* build directory string */ #define SLA_MEM 10 /* physical memory size */ #define SLA_BDEVCNT 11 /* max # of block devices */ #define SLA_CDEVCNT 12 /* max # of char devices */ /* * return values for syslocal(SYSL_SYSTEM) */ #define SYSL_MITI 2 #define SYSL_MINI 1 #define SYSL_MEGA 0 0707070000020300271004440000020000020000031652770000017757000003400000004025usr/include/sys/sysmacros.h#sccs "@(#)uts/kern/sys:sysmacros.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef sysmacros_h #define sysmacros_h /* * Some macros for units conversion */ /* Core clicks (4096 bytes) to segments and vice versa */ #ifdef CPSSHIFT #define ctos(x) (((x)+(NCPS-1))>>CPSSHIFT) #define stoc(x) ((x)<>2) #else vax #define ctod(x) ((x+(NCPD-1))/NCPD) #endif mc68k /* inumber to disk address */ #ifdef INOSHIFT #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))>>INOSHIFT) #else #define itod(x) (daddr_t)(((unsigned)x+(2*INOPB-1))/INOPB) #endif /* inumber to disk offset */ #ifdef INOSHIFT #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))&(INOPB-1)) #else #define itoo(x) (int)(((unsigned)x+(2*INOPB-1))%INOPB) #endif /* clicks to bytes */ #ifdef BPCSHIFT #define ctob(x) ((x)<>BPCSHIFT) #define btoct(x) ((unsigned)(x)>>BPCSHIFT) #else #define btoc(x) (((unsigned)(x)+(NBPC-1))/NBPC) #define btoct(x) ((unsigned)(x)/NBPC) #endif /* major part of a device */ #define major(x) (int)((unsigned)x>>8) #define bmajor(x) (int)(((unsigned)x>>8)&037) #define brdev(x) (x&0x1fff) /* minor part of a device */ #define minor(x) (int)(x&0377) /* make a device number */ #define makedev(x,y) (dev_t)(((x)<<8) | (y)) /* kernel prints: make printf conditional on globl "kpflg" being set. */ #define kprintf if (kpflg) printf extern int kpflg; /* kernel printf flag enables debugging output */ /* bytes to disk blocks, disk blocks to bytes */ #define btodb(x) (((x)+BSIZE-1)>>BSHIFT) #define dbtob(x) ((x)< #include #include #include #include #include #include #include /* * Random set of variables used by more than one routine. */ extern int nofile; /* number of files */ extern struct inode *rootdir; /* pointer to inode of root directory */ extern short cputype; /* type of cpu = 1 MegaFrame 2 MegaFrame2 (MiniFrame) */ extern time_t lbolt; /* time in HZ since last boot */ extern time_t time; /* time in sec from 1970 */ extern char runin; /* scheduling flag */ extern char runout; /* scheduling flag */ extern int runrun; /* scheduling flag */ extern char curpri; /* current priority */ extern struct proc *curproc; /* current proc */ extern struct proc *curmapproc; /* current proc loaded in memory map */ extern struct proc *runq; /* head of linked list of running processes */ extern maxmem; /* max available memory */ extern physmem; /* physical memory on this CPU */ extern nswap; /* size of swap space */ extern dev_t rootdev; /* device of the root */ extern dev_t swapdev; /* swapping device */ extern dev_t pipedev; /* pipe device */ extern char *panicstr; /* panic string pointer */ extern blkacty; /* active block devices */ extern dev_t getmdev(); extern daddr_t bmap(); extern struct inode *ialloc(); extern struct inode *iget(); extern struct inode *owner(); extern struct inode *maknode(); extern struct inode *namei(); extern struct buf *alloc(); extern struct buf *getblk(); extern struct buf *geteblk(); extern struct buf *bread(); extern struct buf *breada(); extern struct filsys *getfs(); extern struct file *getf(); extern struct file *falloc(); extern int uchar(); /* * Structure of the system-entry table */ extern struct sysent { char sy_narg; /* total number of arguments */ int (*sy_call)(); /* handler */ } sysent[]; extern struct buf *baddr(); extern void bcopy(); extern int copyin(); extern int copyout(); extern int copyseg(); extern int clearseg(); extern unsigned max(); extern void mclear(); extern int memall(); extern struct cmap *mfind(); extern unsigned min(); extern int schar(); extern swblk_t vtod(); extern struct pte *vtohpte(); extern struct mpte *vtopte(); #endif systm_h 0707070000020300311004440000020000020000031653060000017757000003100000000546usr/include/sys/target.h#sccs "@(#)uts/kern/sys:target.h 1.1" /* Convergent Technologies - System V - Jun 1983 */ #ifndef target_h #define target_h /* * To compile for mc68000, place "#define mc68000 1" below. * To compile for mc68010, place "#define mc68010 1" below. * * To compile for MiniFrame, place "#define mini 1" below. */ #define mc68010 1 #define mini 1 #endif 0707070000020300711004440000020000020000021654770000017757000003100000011151usr/include/sys/termio.h#sccs "@(#)uts/kern/sys:termio.h 1.4" /* Convergent Technologies - System V - May 1983 */ #ifndef termio_h #define termio_h #define NCC 8 /* * To reduce the number of #define's seen by the rest of the kernel, * the following are only turned on if defined_io is set. */ #if !KERNEL || defined_io /* control characters */ #define VINTR 0 #define VQUIT 1 #define VERASE 2 #define VKILL 3 #define VEOF 4 #define VEOL 5 #define VEOL2 6 #define VMIN 4 #define VTIME 5 #define CNUL 0 #define CDEL 0377 /* default control chars */ #define CESC '\\' #define CINTR 0177 /* DEL */ #define CQUIT 034 /* FS, cntl | */ #define CERASE '\b' #define CKILL '@' #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 0001000 #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 0014000 #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 B19200 0000016 #define B38400 0000017 /* added to pass SVVS. we dont support 38K baud */ #define EXTA B19200 #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 #define CTSCD 0010000 #define HDX 0020000 /* 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 SSPEED B9600 /* default speed: 9600 baud */ #endif defined_io /* * 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 */ unsigned char c_cc[NCC]; /* control chars */ }; #if !KERNEL || defined_io #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 TCSRTS (TIOC|8) #define TCSVBRK (TIOC|9) #define TCDSET (TIOC|32) #define RTS_TOG (TIOC|10) #define TCHFCCTL (TIOC|15) #define LDIOC ('D'<<8) #define LDOPEN (LDIOC|0) #define LDCLOSE (LDIOC|1) #define LDCHG (LDIOC|2) #define LDGETT (LDIOC|8) #define LDSETT (LDIOC|9) /* * Terminal types */ #define TERM_NONE 0 /* tty */ #define TERM_TEC 1 /* TEC Scope */ #define TERM_V61 2 /* DEC VT61 */ #define TERM_V10 3 /* DEC VT100 */ #define TERM_TEX 4 /* Tektronix 4023 */ #define TERM_D40 5 /* TTY Mod 40/1 */ #define TERM_H45 6 /* Hewlitt-Packard 45 */ #define TERM_D42 7 /* TTY Mod 40/2B */ /* * Terminal flags */ #define TM_NONE 0000 /* use default flags */ #define TM_SNL 0001 /* special newline flag */ #define TM_ANL 0002 /* auto newline on column 80 */ #define TM_LCF 0004 /* last col of last row special */ #define TM_CECHO 0010 /* echo terminal cursor control */ #define TM_CINVIS 0020 /* do not send esc seq to user */ #define TM_SET 0200 /* must be on to set/res flags */ #endif defined_io /* * structure of ioctl arg for LDGETT and LDSETT */ struct termcb { char st_flgs; /* term flags */ char st_termt; /* term type */ char st_crow; /* gtty only - current row */ char st_ccol; /* gtty only - current col */ char st_vrow; /* variable row */ char st_lrow; /* last row */ }; /* * Terminal types */ #define TERM_NONE 0 /* tty */ /* * Terminal flags */ #define TM_NONE 0000 /* use default flags */ #endif termio_h 0707070000020300321004440000020000020000031653100000017757000002700000002447usr/include/sys/text.h#sccs "@(#)uts/kern/sys:text.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef text_h #define text_h #include #include #include /* * Text structure. * One allocated per pure procedure on swap device. * Manipulated by text.c */ #define NXDAD 16 /* param.h:MAXTSIZ / dmap.h:DMTEXT */ struct text { ushort x_daddr[NXDAD]; /* clik addresses of DMTEXT-page segments */ /* (relative to swplo) */ swblk_t x_ptdaddr; /* disk address of page table */ ushort x_size; /* size (clicks) */ struct proc *x_caddr; /* ptr to linked proc, if loaded */ struct inode *x_iptr; /* inode of prototype */ short x_rssize; short x_swrss; char x_count; /* reference count */ char x_ccount; /* number of loaded references */ char x_flag; /* traced, written flags */ char x_slptime; short x_poip; /* page out in progress count */ }; #ifdef KERNEL extern struct text *text; #endif #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 XPAGI 040 /* Page in on demand from inode */ #define XSWPIN 0100 /* Text is being swapped in */ #endif 0707070000020300331004440000020000020000031653130000017757000003000000000574usr/include/sys/times.h#sccs "@(#)uts/kern/sys:times.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef times_h #define times_h #include /* * Structure returned by times() */ struct tms { time_t tms_utime; /* user time */ time_t tms_stime; /* system time */ time_t tms_cutime; /* user time, children */ time_t tms_cstime; /* system time, children */ }; #endif 0707070000020300341004440000020000020000031653140000017757000002700000001667usr/include/sys/trap.h#sccs "@(#)uts/kern/sys:trap.h 1.2" /* Convergent Technologies - System V - May 1983 */ #ifndef trap_h #define trap_h /* * Trap type values */ #define BUSFLT 2 /* bus error */ #define ADDRFLT 3 /* address error */ #define ILLFLT 4 /* illegal instruction */ #define ZDIVFLT 5 /* zero divide */ #define CHKFLT 6 /* check instruction */ #define TRPVFLT 7 /* trapv fault */ #define PRIVFLT 8 /* privileged instruction fault */ #define TRCTRAP 9 /* trace trap */ #define IOTFLT 10 /* iot instruction fault */ #define EMTFLT 11 /* emt instruction fault */ #define FRMER 14 /* format error */ #define UNINVEC 15 /* uninitialized interrupt vector */ #define SPURINT 24 /* spurious interrupt */ #define NMIFLT 31 /* NMI */ #define SYSCALL 32 /* trap instruction (syscall trap) */ #define BPTFLT 33 /* break point trap */ #define NO68881 47 /* MC68881 expansion board not present */ #define RESCHED 256 /* software level 1 trap (reschedule trap) */ #endif 0707070000020300351004440000020000020000031653160000017757000003000000001300usr/include/sys/ttold.h#sccs "@(#)uts/kern/sys:ttold.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef ttold_h #define ttold_h struct sgttyb { char sg_ispeed; char sg_ospeed; char sg_erase; char sg_kill; int sg_flags; }; /* modes */ #define O_HUPCL 01 #define O_XTABS 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 002000 #define O_NOAL 004000 #define O_CRDELAY 030000 #define O_CR1 010000 #define O_CR2 020000 #define O_VTDELAY 040000 #define O_BSDELAY 0100000 #define tIOC ('t'<<8) #define TIOCGETP (tIOC|8) #define TIOCSETP (tIOC|9) #endif 0707070000020300361004440000020000020000031653170000017757000002600000007453usr/include/sys/tty.h#sccs "@(#)uts/kern/sys:tty.h 1.6" /* Convergent Technologies - System V - May 1983 */ #ifndef tty_h #define tty_h #include /* * A clist structure is the head of a linked list queue of characters. * The routines getc* and putc* manipulate these structures. */ struct clist { ushort c_cc; /* character count */ struct cblock *c_cf; /* pointer to first */ struct cblock *c_cl; /* pointer to last */ }; /* Macro to find clist structure given pointer into it */ #define CMATCH(pointer) (struct cblock *)(cfree + (pointer - cfree)) /* Character control block for interrupt level control */ struct ccblock { caddr_t c_ptr; /* buffer address */ ushort c_count; /* character count */ ushort c_size; /* buffer size */ }; /* * A tty structure is needed for each UNIX character device that * is used for normal terminal IO. */ #define NCC 8 struct tty { struct clist t_rawq; /* raw input queue */ struct clist t_canq; /* canonical queue */ struct clist t_outq; /* output queue */ struct ccblock t_tbuf; /* tx control block */ struct ccblock t_rbuf; /* rx control block */ int (* t_proc)(); /* routine for device functions */ char spacer[4]; /* keep space for window pointer */ /* to reserve alignment for Starlan */ 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 */ char t_line; /* line discipline */ char t_delct; /* delimiter count */ char t_col; /* current column */ unsigned char t_extctl;/* extended control for serial tty ports. Used for half-duplex and flow control */ unsigned char t_mindev;/* minor device number of tty */ unsigned char t_cc[NCC]; /* settable control chars */ }; /* * The structure of a clist block */ #define CLSIZE 64 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 * getcf(); extern struct clist ttnulq; struct chead { struct cblock *c_next; short c_size; short c_count; int c_flag; }; extern struct chead cfreelist; struct inter { int cnt; }; #ifndef space_h #define QESC 0200 /* queue escape */ #define HQEND 01 /* high queue end */ #ifndef TTIPRI /* also defined in the priority table in param.h */ #define TTIPRI 27 /* waiting for tty input (was 28) */ #define TTOPRI 29 #endif /* limits */ extern int ttlowat[], tthiwat[]; #define TTXOLO 60 #define TTXOHI 180 #define TTECHI 80 /* Hardware bits */ #define DONE 0200 #define IENABLE 0100 #define OVERRUN 040000 #define FRERROR 020000 #define PERROR 010000 /* Half duplex bits */ #define RTSON 001 #define INUSE 002 /* tty port is being used by another driver. */ /* 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-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 CLESC 04000 /* Last char escape */ #define RTO 010000 /* Raw Timeout */ #define TTIOW 020000 #define TTXON 040000 #define TTXOFF 0100000 /* for t_cflag */ #define WINDOW 0040000 /* indicate a bit-mapped console device */ /* l_output status */ #define CPRES 0100000 /* device commands */ #define T_OUTPUT 0 #define T_TIME 1 #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 #define T_INPUT 9 #define T_VBREAK 10 #endif space_h #endif tty_h 0707070000020300371004440000020000020000031653260000017757000002700000001151usr/include/sys/tune.h#sccs "@(#)uts/kern/sys:tune.h 1.4" #include #ifndef tune_h #define tune_h struct tunable { ushort nbuf; ushort ninode; ushort nfile; ushort nproc; ushort ntext; ushort nclist; ushort npbuf; ushort ncall; }; extern struct tunable tulo, tuhi, deftuhi; #define NBUFMIN 25 #define NBUFMAX 100 #define NINODEMIN 80 #define NINODEMAX 400 #define NFILEMIN 80 #define NFILEMAX 300 #define NCALLMIN 16 #define NCALLMAX 32 #define NPROCMIN 30 #define NPROCMAX 100 #define NTEXTMIN 24 #define NTEXTMAX 75 #define NCLISTMIN 32 #define NCLISTMAX 150 #define NPBUFMIN 4 #define NPBUFMAX 16 #endif tune_h 0707070000020300671004440000020000020000021654740000017757000003000000001216usr/include/sys/types.h#sccs "@(#)uts/kern/sys:types.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef types_h #define types_h typedef struct { int r[1]; } * physadr; typedef long daddr_t; typedef char * caddr_t; typedef unsigned int uint; typedef unsigned short ushort; typedef ushort ino_t; typedef short cnt_t; typedef long time_t; typedef int label_t[13]; /* regs d2-d7, a2-a7, pc */ typedef short dev_t; typedef long off_t; typedef long paddr_t; typedef long key_t; typedef int swblk_t; typedef int size_t; typedef unsigned char port_t; /* local TP/CP port numbers */ typedef unsigned char mdev_t; /* minor device type */ #endif types_h 0707070000020300401004440000020000020000031653300000017757000002700000013245usr/include/sys/user.h#sccs "@(#)uts/kern/sys:user.h 1.2" /* Convergent Technologies - System V - May 1983 */ #ifndef user_h #define user_h #include #include #include #include #include #ifdef VTIMES #include #endif #include #include #include #include /* * 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; resides at virtual kernel * loc 0x70000 * contains the system stack per user; is cross referenced * with the proc structure for the same process. */ struct user { label_t u_rsav; /* save info when exchanging stacks */ label_t u_qsav; /* label variable for quits and interrupts */ label_t u_ssav; /* label variable for swapping */ char u_segflg; /* IO flag: 0:user D; 1:system; 2:user I */ char u_error; /* return error code */ ushort u_uid; /* effective user id */ ushort u_gid; /* effective group id */ ushort u_ruid; /* real user id */ ushort u_rgid; /* real group id */ struct proc *u_procp; /* pointer to proc structure */ int *u_ap; /* pointer to arglist */ union { /* syscall return values */ struct { int r_val1; int r_val2; }r_reg; off_t r_off; time_t r_time; } u_r; caddr_t u_base; /* base address for IO */ unsigned u_count; /* bytes remaining for IO */ off_t u_offset; /* offset in file for IO */ short u_fmode; /* file mode for IO */ ushort u_pbsize; /* bytes in block for IO */ ushort u_pboff; /* offset in block for IO */ dev_t u_pbdev; /* real device for IO */ daddr_t u_rablock; /* read ahead block addr */ short u_errcnt; /* syscall error count */ struct inode *u_cdir; /* current directory of process */ struct inode *u_rdir; /* root directory of process */ caddr_t u_dirp; /* pathname pointer */ struct direct u_dent; /* current directory entry */ struct inode *u_pdir; /* inode of parent directory of dirp */ struct file **u_ofile;/*NOFILE*//* pointers to file structures of open files */ char *u_pofile; /*NOFILE*//* per-process flags of open files */ char FillerYUK[(20*sizeof(struct file *)+20*sizeof(char)) - (sizeof(struct file**)+sizeof(char*))]; int u_arg[10]; /* arguments to current system call */ /* u_tsize u_dsize u_ssize u_lsize have copies in the proc table */ unsigned u_tsize; /* text size (clicks) */ unsigned u_dsize; /* data size (clicks) */ unsigned u_ssize; /* stack size (clicks) */ unsigned u_lsize; /* shlib data size (clicks) */ int u_signal[NSIG]; /* disposition of signals */ time_t u_utime; /* this process user time */ time_t u_stime; /* this process system time */ time_t u_cutime; /* sum of childs' utimes */ time_t u_cstime; /* sum of childs' stimes */ int *u_ar0; /* address of users saved R0 */ struct u_prof { /* profile arguments */ short *pr_base; /* buffer base */ unsigned pr_size; /* buffer size */ unsigned pr_off; /* pc offset */ unsigned pr_scale; /* pc scaling */ } u_prof; #ifdef VAX char u_intflg; /* catch intr from sys */ char u_sep; /* flag for I and D separation */ #endif short *u_ttyp; /* pointer to pgrp in "tty" struct */ dev_t u_ttyd; /* controlling tty dev */ struct { /* header of executable file */ short ux_mag; /* magic number */ short ux_stamp; /* stamp */ unsigned ux_tsize; /* text size */ unsigned ux_dsize; /* data size */ unsigned ux_bsize; /* bss size */ unsigned ux_ssize; /* symbol table size */ unsigned ux_entloc; /* entry location */ unsigned ux_unused; unsigned ux_relflg; } u_exdata; #define ux_tstart ux_unused size_t u_xlsize; /* lib data size during exec */ char u_comm[DIRSIZ]; time_t u_start; time_t u_ticks; long u_mem; long u_ior; long u_iow; long u_iosw; long u_ioch; char u_acflag; short u_cmask; /* mask for file creation */ daddr_t u_limit[NLIMITS+1]; /* see */ #ifdef mc68k #ifdef MEGA struct exch *u_exch[NUEXCH]; /* exchange pointers for this proc. */ struct exch *u_childexch; /* used in fork/procdup for new exch */ #endif MEGA #ifdef VTIMES struct vtimes u_vm; /* stats for this proc */ struct vtimes u_cvm; /* sum of stats for reaped children */ #endif VTIMES struct dmap u_dmap; /* disk map for data segment */ struct dmap u_smap; /* disk map for stack segment */ struct dmap u_cdmap, u_csmap; /* shadows of u_dmap, u_smap, for use of parent during fork */ time_t u_outime; /* user time at last sample */ /* hardware specific stuff */ char u_usize; /* 1 or 2 pages of u structure */ #endif mc68k /* When the process is in memory, * the page table entries for ts+ds+ss * are stored in u in the following * manner: * The page table entries start at * start of u page + PTE_OFFSET = * u + 0x900. u starts at * u page + U_OFFSET (0x900). If the # * of entries is <= 512, only one page * of u structure is allocated. * Otherwise the second page of u is * allocated(pointed to by p_addr[1] * and p_szpt = 1.) * The rest of the page entries continue * in the second page. */ /* kernel stack per user * extends from u * backward not to reach u - 0x900 */ short u_lock; /* process/text locking flags */ }; #ifdef KERNEL extern struct user u; #endif #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 /* 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 /* auto-close on exec */ #endif 0707070000020300411004440000020000020000031653440000017757000003200000000757usr/include/sys/utsname.h#sccs "@(#)uts/kern/sys:utsname.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef utsname_h #define utsname_h struct utsname { char sysname[9]; char nodename[9]; char release[9]; char version[9]; char machine[9]; }; extern struct utsname utsname; #ifndef SYS #define SYS "UNIX" #endif #ifndef NODE #define NODE "RLS000A" #endif #ifndef REL #define REL "SYSTEM5" #endif #ifndef VER #define VER "000a" #endif #ifndef MACH #define MACH "mc68k" #endif #endif utsname_h 0707070000020300421004440000020000020000031653450000017757000003200000000676usr/include/sys/vadvise.h#sccs "@(#)uts/kern/sys:vadvise.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vadvise_h #define vadvise_h /* * Parameters to vadvise() to tell system of particular paging * behaviour: * VA_NORM Normal strategy * VA_ANOM Sampling page behaviour is not a win, don't bother * Suitable during GCs in LISP, or sequential or random * page referencing. */ #define VA_NORM 0 #define VA_ANOM 1 #define VA_SEQL 2 #endif 0707070000020300431004440000020000020000031653460000017757000002600000001117usr/include/sys/var.h#sccs "@(#)uts/kern/sys:var.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef var_h #define var_h struct var { int v_buf; int v_call; int v_inode; char * ve_inode; int v_file; char * ve_file; int v_mount; char * ve_mount; int v_proc; char * ve_proc; int v_text; char * ve_text; int v_clist; int v_sabuf; int v_maxup; int v_smap; int v_hbuf; int v_hmask; int v_pbuf; #ifdef MEGA int v_exch; char * ve_exch; int v_rrtsiz; char * ve_reqtab; char * ve_resptab; int v_lreq; char *ve_lreq; int v_heap; #endif MEGA }; extern struct var v; #endif var_h 0707070000020300441004440000020000020000031653470000017757000003100000001130usr/include/sys/vlimit.h#sccs "@(#)uts/kern/sys:vlimit.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vlimit_h #define vlimit_h /* * Limits for u.u_limit[i], per process, inherited. */ #define LIM_NORAISE 0 /* if <> 0, can't raise limits */ #define LIM_CPU 1 /* max secs cpu time */ #define LIM_FSIZE 2 /* max size of file created */ #define LIM_DATA 3 /* max growth of data space */ #define LIM_STACK 4 /* max growth of stack */ #define LIM_CORE 5 /* max size of ``core'' file */ #define LIM_MAXRSS 6 /* max desired data+stack core usage */ #define NLIMITS 6 #define INFINITY 0x7fffffff #endif 0707070000020300451004440000020000020000031653500000017757000002500000000460usr/include/sys/vm.h#sccs "@(#)uts/kern/sys:vm.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vm_h #define vm_h /* * #include * is a quick way to include all the vm header files. */ #include #include #include #include #endif 0707070000020300461004440000020000020000031653510000017757000003000000007367usr/include/sys/vmmac.h#sccs "@(#)uts/kern/sys:vmmac.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vmmac_h #define vmmac_h #include #include /* * Virtual memory related conversion macros */ /* Virtual page numbers to text|data|stack|kvmem|shlib segment page numbers and back */ #define vtotp(p, v) ((int)((v) - SYSPAGE)) #define vtodp(p, v) ((int)((v) - ((p)->p_tpage) - SYSPAGE)) #define vtosp(p, v) ((int)((MAXUMEM-1) - (v))) #define vtoldp(v) ((int)((v) - SHLIB_VPAGE0)) #define vtoltp(v) ((int)((v) - sl_tbase)) #define vtovp(v) ((int)((v) - KVMEM_VPAGE0)) #define tptov(p, i) ((unsigned)((i) + SYSPAGE)) #define dptov(p, i) ((unsigned)((i) + ((p)->p_tpage) + SYSPAGE)) #define sptov(p, i) ((unsigned)((MAXUMEM-1) - (i))) #define ldptov(i) ((unsigned)((i) + SHLIB_VPAGE0)) #define ltptov(i) ((unsigned)((i) + sl_tbase)) #define vptov(i) ((unsigned)((i) + KVMEM_VPAGE0)) /* Tell whether virtual page numbers are in text|data|stack|kvmem|shlib segment */ #define isassv(p, v) (((v) < MAXUMEM) && \ ((v) >= (MAXUMEM - (p)->p_ssize))) #define isatsv(p, v) (((v) - SYSPAGE) < (p)->p_tsize) #define isadsv(p, v) (((v) - SYSPAGE) >= ((p)->p_tpage) && \ ((v) - SYSPAGE - ((p)->p_tpage) < (p)->p_dsize)) #define isaldsv(v) (((v) >= SHLIB_VPAGE0) && \ ((v) < (SHLIB_VPAGE0+sl_lsize))) #define isaltsv(v) (((v) >= sl_tbase) && \ ((v) < (sl_tbase+sl_text.x_size))) #define isavsv(v) (((v) >= KVMEM_VPAGE0) && \ (((v) - KVMEM_VPAGE0) < kv_pages)) /* Tell whether pte's are text|data|stack|kvmem|shlib */ #define isaspte(p, pte) ((int)(pte - (struct mpte *) VPTE_BASE) >= \ ((p)->p_tsize + (p)->p_lsize + (p)->p_dsize)) #define isatpte(p, pte) ((pte >= (struct mpte *) VPTE_BASE) && \ ((int)(pte - (struct mpte *) VPTE_BASE) < \ (p)->p_tsize)) #define isadpte(p, pte) (((int)(pte - (struct mpte *) VPTE_BASE) >= \ ((p)->p_tsize + (p)->p_lsize)) && \ ((int)(pte - (struct mpte *) VPTE_BASE) < \ ((p)->p_tsize + (p)->p_lsize + (p)->p_dsize))) #define isaldpte(p, pte) (((int)(pte - (struct mpte *) VPTE_BASE) >= \ (p)->p_tsize) && \ ((int)(pte - (struct mpte *) VPTE_BASE) < \ ((p)->p_tsize + (p)->p_lsize))) #define isaltpte(pte) ((pte >= sl_mpte) && \ ((pte - sl_mpte) < sl_text.x_size)) #define isavpte(pte) ((pte >= kv_mpte) && \ ((pte - kv_mpte) < kv_pages)) /* Text|data|stack|kvmem|shlib pte's to segment page numbers and back */ #define ptetotp(p, pte) ((int)(pte - (struct mpte *) VPTE_BASE)) #define ptetodp(p, pte) ((int)(pte - (struct mpte *) VPTE_BASE) \ - (p)->p_tsize - (p)->p_lsize) #define ptetosp(p, pte) (((p)->p_tsize + (p)->p_lsize + (p)->p_dsize + (p)->p_ssize - 1) \ - (int)(pte - (struct mpte *) VPTE_BASE)) #define ptetoldp(p, pte) ((int)(pte - (struct mpte *) VPTE_BASE) \ - (p)->p_tsize) #define ptetoltp(pte) ((int)(pte - sl_mpte)) #define ptetovp(pte) ((int)(pte - kv_mpte)) #define tptopte(p, i) ((struct mpte *)(((i)<<2) + VPTE_BASE)) #define dptopte(p, i) ((struct mpte *) \ ((((i) + ((p)->p_tsize + (p)->p_lsize))<<2) + VPTE_BASE)) #define sptopte(p, i) ((struct mpte *) \ (((((p)->p_tsize + (p)->p_lsize + (p)->p_dsize + (p)->p_ssize - 1) - (i)) << 2) + VPTE_BASE)) #define ldptopte(p, i) ((struct mpte *) \ ((((p)->p_tsize + (i)) << 2) + VPTE_BASE)) #define ltptopte(i) (&sl_mpte[i]) #define vptopte(i) (&kv_mpte[i]) #define ctopt(x) (x) /* Bytes to pages without rounding, and back */ #define btop(x) (((unsigned)(x)) >> PGSHIFT) #define ptob(x) ((caddr_t)((x) << PGSHIFT)) /* given size in clicks, how many pages of U are needed to map it */ #define szupage(sz) (((sz) > PTE_BANK0) ? UPAGES + 1 : UPAGES) /* Average new into old with aging factor time */ #define ave(smooth, cnt, time) \ smooth = ((time - 1) * (smooth) + (cnt)) / (time) #endif vmmac_h 0707070000020300471004440000020000020000031653610000017757000003200000000174usr/include/sys/vmmeter.h#sccs "@(#)uts/kern/sys:vmmeter.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* vmmetering not supported */ 0707070000020300501004440000020000020000031653620000017757000003200000005003usr/include/sys/vmparam.h#sccs "@(#)uts/kern/sys:vmparam.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vmparam_h #define vmparam_h #include /* * Virtual memory related constants */ #define MAXVMSIZ MAXUMEM /* max virtual addr (clicks) */ #define MAXTSIZ (MAXVMSIZ - SYSPAGE) /* max text size (clicks) */ #define MAXDSIZ (MAXVMSIZ - SYSPAGE) /* max data size (clicks) */ #define MAXSSIZ (MAXVMSIZ - SYSPAGE) /* max stack size (clicks) */ #if LATER #define YELLOWZONE 1 /* stack auto expansion zone */ #endif #define YELLOWZONE 64 /* stack auto expansion zone */ /* Max # of pages that can be swapped at once (defines virtual address space * for proc 2 */ #define MAXSWP 4 /* * The size of the clock loop. */ #define LOOPPAGES maxmem /* * The time for a process to be blocked before being very swappable. * This is a number of seconds which the system takes as being a non-trivial * amount of real time. You probably shouldn't change this; * it is used in subtle ways (fractions and multiples of it are, that is, like * half of a ``long time'', almost a long time, etc.) * It is related to human patience and other factors which don't really * change over time. */ #define MAXSLP 20 /* * A swapped in process is given a small amount of core without being bothered * by the page replacement algorithm. Basically this says that if you are * swapped in you deserve some resources. We protect the last SAFERSS * pages against paging and will just swap you out rather than paging you. * Note that each process has at least UPAGES+1 pages which are not * paged anyways (this is currently 8+2=10 pages or 5k bytes), so this * number just means a swapped in process is given around 25k bytes. * Just for fun: current memory prices are 4600$ a megabyte on VAX (4/22/81), * so we loan each swapped in process memory worth 100$, or just admit * that we don't consider it worthwhile and swap it out to disk which costs * $30/mb or about $0.75. */ #define SAFERSS 4 /* nominal ``small'' resident set size protected against replacement */ /* * DISKRPM is used to estimate the number of paging i/o operations * which one can expect from a single disk controller. */ #define DISKRPM 60 #ifdef KERNEL extern int klseql; extern int klsdist; extern int klin; extern int kltxt; extern int klout; extern int kv_pages; extern int kv_poip; extern ushort kv_swap; extern struct mpte kv_mpte[]; extern size_t sl_lsize; extern short sl_tbase; extern struct text sl_text; extern struct mpte sl_mpte[]; #endif #endif 0707070000020300511004440000020000020000031653660000017757000003200000002135usr/include/sys/vmsystm.h#sccs "@(#)uts/kern/sys:vmsystm.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vmsystm_h #define vmsystm_h /* * Miscellaneous virtual memory subsystem variables and structures. */ #ifdef KERNEL extern unsigned long freemem; /* remaining blocks of free memory */ int avefree; /* moving average of remaining free blocks */ int avefree30; /* 30 sec (avefree is 5 sec) moving average */ int deficit; /* estimate of needs of new swapped in procs */ int nscan; /* number of scans in last second */ extern int multprog; /* current multiprogramming degree */ int desscan; /* desired pages scanned per second */ /* writable copies of tunables */ extern int maxpgio; /* max paging i/o per sec before start swaps */ extern int maxslp; /* max sleep time before very swappable */ extern int lotsfree; /* max free before clock freezes */ extern int minfree; /* minimum free pages before swapping begins */ extern int desfree; /* no of pages to try to keep free via daemon */ extern int saferss; /* no pages not to steal; decays with slptime */ extern struct pte *xptohpte(); #endif #endif 0707070000020300521004440000020000020000031653710000017757000003100000001667usr/include/sys/vtimes.h#sccs "@(#)uts/kern/sys:vtimes.h 1.1" /* Convergent Technologies - System V - May 1983 */ #ifndef vtimes_h #define vtimes_h /* * Structure returned by vtimes() and in vwait(). * In vtimes() two of these are returned, one for the process itself * and one for all its children. In vwait() these are combined * by adding componentwise (except for maxrss, which is max'ed). */ struct vtimes { int vm_utime; /* user time (60'ths) */ int vm_stime; /* system time (60'ths) */ /* divide next two by utime+stime to get averages */ unsigned vm_idsrss; /* integral of d+s rss */ unsigned vm_ixrss; /* integral of text rss */ int vm_maxrss; /* maximum rss */ int vm_majflt; /* major page faults */ int vm_minflt; /* minor page faults */ int vm_nswap; /* number of swaps */ int vm_inblk; /* block reads */ int vm_oublk; /* block writes */ }; #ifdef KERNEL struct vtimes zvms; /* an empty (componentwise 0) structure */ #endif #endif 0707070000020300531004440000020000020000031653720000017757000002700000004431usr/include/sys/wait.h#sccs "@(#)uts/kern/sys:wait.h 1.1" /* Convergent Technologies - System V - Jun 1983 */ #ifndef wait_h #define wait_h /* * This file holds definitions relevent to the wait system call. * Some of the options here are available only through the ``wait3'' * entry point; the old entry point with one argument has more fixed * semantics, never returning status of unstopped children, hanging until * a process terminates if any are outstanding, and never returns * detailed information about process resource utilization (). */ /* * Structure of the information in the first word returned by both * wait and wait3. If w_stopval==WSTOPPED, then the second structure * describes the information returned, else the first. See WUNTRACED below. */ union wait { int w_status; /* used in syscall */ /* * Terminated process status. */ struct { unsigned short w_Termsig:7; /* termination signal */ unsigned short w_Coredump:1; /* core dump indicator */ unsigned short w_Retcode:8; /* exit code if w_termsig==0 */ } w_T; /* * Stopped process status. Returned * only for traced children unless requested * with the WUNTRACED option bit. */ struct { unsigned short w_Stopval:8; /* == W_STOPPED if stopped */ unsigned short w_Stopsig:8; /* signal that stopped us */ } w_S; }; #define w_termsig w_T.w_Termsig #define w_coredump w_T.w_Coredump #define w_retcode w_T.w_Retcode #define w_stopval w_S.w_Stopval #define w_stopsig w_S.w_Stopsig #define WSTOPPED 0177 /* value of s.stopval if process is stopped */ /* * Option bits for the second argument of wait3. WNOHANG causes the * wait to not hang if there are no stopped or terminated processes, rather * returning an error indication in this case (pid==0). WUNTRACED * indicates that the caller should receive status about untraced children * which stop due to signals. If children are stopped and a wait without * this option is done, it is as though they were still running... nothing * about them is returned. */ #define WNOHANG 1 /* dont hang in wait */ #define WUNTRACED 2 /* tell about stopped, untraced children */ #define WIFSTOPPED(x) ((x).w_stopval == WSTOPPED) #define WIFSIGNALED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig != 0) #define WIFEXITED(x) ((x).w_stopval != WSTOPPED && (x).w_termsig == 0) #endif 0707070000020300541004440000020000020000031653750000017757000002500000010657usr/include/sys/wd.h#sccs "@(#)uts/kern/sys:wd.h 1.2" /* Unix Window System Common Definitions and Structures */ #ifndef WD_H #define WD_H #include "sys/param.h" #include "sys/iohw.h" #include "sys/font.h" #include "sys/window.h" /* Cursor Params */ #define CURONTICKS (HZ/2) /* cursor on time */ #define CUROFFTICKS (HZ/4) /* cursor off time */ #define CURFAIRCNT 2 /* fairness count (see wd.c) */ #define CURFAIRTICKS (HZ/4) /* fairness on time (see wd.c) */ /* Clicks */ #define btopxc(x) (((int)(x)+1) & (~1)) /* ansi interpreter states */ #define NORM 0 /* normal characters */ #define ESC 1 /* received ESC (0x1b) */ #define CSI 2 /* received CSI (ESC [) */ #define PARAM 3 /* parsing parm string */ #define TRUNC 4 /* truncating a long line */ /* ansi flags */ #define ANOWRAP 0x1 /* truncate, don't wrap */ #define ALASTLF 0x2 /* last control char was nl */ #define ACUROFF 0x4 /* cursor off, don't blink */ /* ansi attributes */ #define ATTRNORM 0x0 /* no attributes */ #define ATTRUNDER A_UNDERLINE /* underlined */ #define ATTRREV A_REVERSE /* inverse video */ #define ATTRBOLD A_BOLD /* bold (one to left) */ #define ATTRSTRIKE A_STRIKE /* strike-out */ #define ATTRDIM A_DIM /* dim (and'ed with half-tone */ /* other ansi parameters */ #define NAPARAM 16 /* max number of parameters */ #define UNDLRATIO 12 /* undline thickness = vs/this */ #define STRKRATIO 2 /* strkline row = baseline/this */ /* system patterns */ #define PATBLACK 0 /* all black */ #define PATWHITE 1 /* all white */ #define PATGRAY 2 /* half-tone */ #define PATLTGRAY 3 /* quarter-tone */ #define PATDKGRAY 4 /* reverse semi 1/4 tone */ #define PATBGROUND PATLTGRAY /* background */ #define PATFGROUND PATBLACK /* foreground */ #define PATCURSE PATWHITE /* cursor pattern */ /* border parameters */ #define BORDTOP 20 #define BORDBOT 20 #define BORDLEFT 6 #define BORDRIGHT 28 /* w_flags */ #define WDOPEN 0x01 /* opened */ #define WDINIT 0x02 /* inited */ #define WOLGC 0x04 /* garbage collection flags */ #define WGCSKIP 0x08 /* " */ #define WDWRITE 0x10 /* writing */ #define WDESC 0x20 /* double esc flag */ /* Generic Rectangle */ struct recdef { unsigned short rec_ulx; /* upper-left x */ unsigned short rec_uly; /* upper-left y */ unsigned short rec_lrx; /* lower-right x (exclusive) */ unsigned short rec_lry; /* lower-right y (exclusive) */ }; typedef int (*fint)(); /* Window Structure */ struct windef { struct recdef w_rec; /* window dimensions */ struct recdef w_inrec; /* rectangle inside borders */ struct oldef *w_ol; /* obscured list */ struct windef *w_back; /* window behind this one */ struct windef *w_front; /* window in front of this one */ struct windef *w_parent; /* parent window */ struct tty *w_tp; /* window teletype pointer */ struct windef *w_outlist; /* list of windows with output */ char w_flags; /* window status flags */ unsigned short w_uflags; /* user settable flags */ unsigned char w_hs; /* horizonal spacing */ unsigned char w_vs; /* vertical spacing */ unsigned char w_baseline; /* baseline */ struct wfont *w_font[8]; /* window font ptrs */ char w_astate; /* ansi parser state */ char w_iparam; /* parameter index */ char w_nparam; /* parameter count */ short w_aparam[NAPARAM];/* parameters */ fint *w_adisp; /* ptr to dispatch table */ unsigned char w_aflags; /* ansi flags */ unsigned char w_attr; /* current attributes */ unsigned short w_cx; /* current x (relative to wdw) */ unsigned short w_cy; /* current y */ struct fntdef *w_cff; /* ptr to current fntdef */ char w_mflags; /* mouse flags */ struct icon w_micon; /* mouse icon */ struct recdef w_mrec; /* mouse motion rectangle */ char *w_text[WTXTNUM];/* window text pointers */ }; /* Obscured Rectangle */ struct oldef { struct recdef ol_rec; /* dimensions of obs. on screen */ struct windef *ol_lobs; /* ptr to frontmost wp */ struct oldef *ol_next; /* next oldef in a chain */ struct oldef *ol_last; /* prev oldef in a chain */ short *ol_base; /* ptr to pixels */ short ol_width; /* bytes wide of pixel map */ }; /* display list item (used in wrastop()) */ struct dldef { struct recdef dl_rec; /* size of display bitmap */ struct dldef *dl_next; /* next item */ struct oldef *dl_ol; /* ol containing pixels */ }; #endif WD_H 0707070000020300551004440000020000020000031654110000017757000003100000011445usr/include/sys/window.h#sccs "@(#)uts/kern/sys:window.h 1.3" /* Unix Window System User-Level Window Defs */ #ifndef WINDOW_H #define WINDOW_H /* ioctls */ #define WIOC ('W'<<8) #define WIOCGETD (WIOC|1) /* get window data */ #define WIOCSETD (WIOC|2) /* set window data */ #define WIOCLFONT (WIOC|3) /* load window font */ #define WIOCUFONT (WIOC|4) /* unload window font */ #define WIOCSELECT (WIOC|5) /* set keyboard window */ #define WIOCREAD (WIOC|6) /* read whole screen (32k) */ #define WIOCGETTEXT (WIOC|7) /* get window text info */ #define WIOCSETTEXT (WIOC|8) /* set window text info */ #define WIOCPGRP (WIOC|9) /* set window pgrp */ #define WIOCSYS (WIOC|10) /* set system window slot */ #define WIOCGETMOUSE (WIOC|11) /* get mouse info */ #define WIOCSETMOUSE (WIOC|12) /* set mouse info */ #define WIOCRASTOP (WIOC|13) /* user-level rastop */ #define WIOCGSYS (WIOC|14) /* get system window pgrp */ #define WIOCGCURR (WIOC|15) /* get current window number */ #define WIOCGPREV (WIOC|16) /* get previous window number */ #define WIOCSESC (WIOC|17) /* set double esc mode */ #define WIOCSCR (WIOC|18) /* get/set screen saver delay */ #define WIOCGFONT (WIOC|19) /* get inodes of loaded fonts */ /* files, devices */ #define WDEV "/dev/w" /* individual windows */ /* WIOCGET/SET TEXT params */ #define WTXTPROMPT 0 /* prompt line */ #define WTXTCMD 1 /* command line */ #define WTXTLABEL 2 /* window label */ #define WTXTUSER 3 /* user-specific text */ #define WTXTSLK1 4 /* first of 2 SLK lines */ #define WTXTSLK2 5 /* second SLK line */ #define WTXTNUM 6 /* there are 6 text slots/win */ #define WTXTLEN 81 /* each can be 80 chars + null */ /* character attribute masks */ #define A_UNDERLINE 1 #define A_REVERSE 2 #define A_BOLD 4 #define A_STRIKE 8 #define A_DIM 16 /* slots in syswin for WIOCGET/SET SYS */ #define SYSWIN 3 /* number of sys wins */ #define SYSWMGR 0 /* window manager */ #define SYSPMGR 1 /* telephony manager */ #define SYSSMGR 2 /* status mgr */ #include "sys/rastop.h" /* w_uflags */ #define NBORDER 0x1 /* borderless */ #define VCWIDTH 0x2 /* variable chr spacing */ #define BORDHSCROLL 0x4 /* border hscroll icons */ #define BORDVSCROLL 0x8 /* border vscroll icons */ #define BORDHELP 0x10 /* border help patch */ #define BORDCANCEL 0x20 /* border cancel patch */ #define BORDRESIZE 0x40 /* border re-size patch */ #define NBORDMOVE 0x80 /* no border move patch */ #define UNCOVERED 0x100 /* uncovered (RO) */ #define KBDWIN 0x200 /* keyboard (RO) */ #define NOCLEAR 0x400 /* don't clear on create*/ #define NOSETUFLAGS (UNCOVERED|KBDWIN) /* basic params */ #define WTXTVS 12 /* text line height (sys font) */ #define WLINE(n) ((n-1)*WTXTVS) #define YTXTPROMPT WLINE(26) /* prompts */ #define YTXTCMD WLINE(27) /* command/echo */ #define YTXTSLK1 WLINE(28) /* screen labeled keys #1 */ #define YTXTSLK2 WLINE(29) /* screen labeled keys #2 */ #define WINWIDTH 720 /* logical area (for windows) */ #define WINHEIGHT (348-4*WTXTVS) struct uwdata /* user window information */ { unsigned short uw_x; /* upper-left-corner x (pixels) */ unsigned short uw_y; /* upper-left-corner y (pixels) */ unsigned short uw_width; /* width (pixels) */ unsigned short uw_height; /* height (pixels) */ unsigned short uw_uflags; /* various flags (see above) */ unsigned char uw_hs; /* horizontal size (RO) */ unsigned char uw_vs; /* vertical size (RO) */ unsigned char uw_baseline; /* baseline (RO) */ unsigned short uw_cx; /* current x position (RO) */ unsigned short uw_cy; /* current y position (RO) */ }; struct utdata /* user text data */ { short ut_num; /* number (see above) */ char ut_text[WTXTLEN]; /* text */ }; #define MSDOWN 0x1 /* when buttons go down */ #define MSUP 0x2 /* when buttons go up */ #define MSIN 0x4 /* when mouse is in rectangle */ #define MSOUT 0x8 /* when mouse is outside rect */ #define MSICON 0x10 /* load new mouse icon */ struct umdata /* user mouse data */ { char um_flags; /* wakeup flags */ short um_x; /* motion rectnalge */ short um_y; short um_w; short um_h; struct icon *um_icon; /* ptr to icon if MSICON=1 */ }; struct urdata /* user rastop data */ { unsigned short *ur_srcbase; /* ptr to source data */ unsigned short ur_srcwidth; /* number bytes/row */ unsigned short *ur_dstbase; /* ptr to dest data */ unsigned short ur_dstwidth; /* number bytes/row */ unsigned short ur_srcx; /* source x */ unsigned short ur_srcy; /* source y */ unsigned short ur_dstx; /* destination x */ unsigned short ur_dsty; /* destination y */ unsigned short ur_width; /* width */ unsigned short ur_height; /* height */ unsigned char ur_srcop; /* source operation */ unsigned char ur_dstop; /* destination operation */ unsigned short *ur_pattern; /* pattern pointer */ }; #endif WINDOW_H 0707070000020305471004440000020000020000020065660000017757000002700000000075usr/include/syslocal.h#sccs "@(#)inchead:syslocal.h 1.1" #include 0707070000020200061004440000020000020000031610070000017757000002200000002757usr/include/tam.h#sccs "@(#)tam:tam.h 1.5" /* user-includeable tam definition file */ /* Bob Glossman 5/1/84 */ #ifndef tam_h #define tam_h #include #include #define NWINDOW _NFILE /* max # of windows in a single process */ /* must be >= NOFILE in */ struct wstat { short begy,begx,height,width; unsigned short uflags; }; typedef struct wstat WSTAT; extern short wncur; /* current window */ extern short LINES, COLS; /* screen dimensions */ extern char w_target; /* target on override flag */ /* defines for curses compatibility */ #define stdscr wncur #define addch(ch) wputc(wncur, ch) #define addstr(str) wputs(wncur, str) #define beep() wputc(wncur, 07) #define clear() addstr("\033[2J") #define clearok(dum1,dum2) #define clrtobot() addstr("\033[J") #define clrtoeol() addstr("\033[K") #define delch() addstr("\033[P") #define deleteln() addstr("\033[M") #define erase() clear() #define flash() beep() #define getyx(dummy,row,col) { int wyy,wxx; wgetpos(wncur,&wyy,&wxx); row=wyy; col=wxx; } #define insch(ch) { addstr("\033[@"); addch(ch); } #define insertln() addstr("\033[L") #define leaveok(dum1,dum2) #define move(row,col) wgoto(wncur,row,col) #define mvaddch(row,col,ch) { move(row,col); addch(ch); } #define mvaddstr(row,col,str) { move(row,col); addstr(str); } #define mvinch(row,col,ch) { move(row,col); insch(ch); } #define nodelay(dummy, bool) wndelay(wncur, bool) #define refresh() wrefresh(wncur) #define A_STANDOUT A_REVERSE #endif tam_h 0707070000020305511004440000020000020000020065710000017757000002500000000157usr/include/termio.h#sccs "@(#)inchead:termio.h 1.1" /* Convergent Technologies - System V - May 1983 */ #include 0707070000020305271004440000020000020000030065260000017757000002300000000626usr/include/time.h#sccs "@(#)inchead:time.h 1.1" /* Convergent Technologies - System V - May 1983 */ struct tm { /* see ctime(3) */ int tm_sec; int tm_min; int tm_hour; int tm_mday; int tm_mon; int tm_year; int tm_wday; int tm_yday; int tm_isdst; }; extern struct tm *gmtime(), *localtime(); extern char *ctime(), *asctime(); extern void tzset(); extern long timezone; extern int daylight; extern char *tzname[]; 0707070000020305301004440000020000020000030065270000017757000002600000000342usr/include/tp_defs.h#sccs "@(#)inchead:tp_defs.h 1.1" /* Convergent Technologies - System V - May 1983 */ char mt[] = "/dev/mt0"; char tc[] = "/dev/tapx"; int flags = flu; char mheader[] = "/usr/mdec/mboot"; char theader[] = "/usr/mdec/tboot"; 0707070000020200071004440000020000020000031644330000017757000002400000001564usr/include/track.h#ifndef _TRACK #define _TRACK #sccs "@(#)tam:track.h 1.1" #include #define T_BEGIN 0x1 #define T_INPUT 0x2 #define T_END 0x4 #define TERR_OK 0 #define TERR_SYS -1 /* same as EOF in */ #define TERR_IOCTL -2 #define TERR_WRITE -3 /* if a write fails */ typedef struct { unsigned short ti_x; /* x position */ unsigned short ti_y; /* y position */ unsigned short ti_w; /* width */ unsigned short ti_h; /* height */ struct icon *ti_icon; /* icon */ int ti_val; /* user value */ } tkitem_t; typedef struct { char t_flags; /* flags */ char t_scalex; /* x & y scaling */ char t_scaley; short t_lastx; short t_lasty; struct icon *t_bicon; /* background icon */ struct umdata t_umdata; /* save the mouse data */ tkitem_t *t_tkitems; /* ptr to items */ tkitem_t *t_curi; /* ptr to current item */ } track_t; #endif _TRACK 0707070000020305311004440000020000020000030065300000017757000002500000001674usr/include/unistd.h#sccs "@(#)inchead:unistd.h 1.1" /* Convergent Technologies - System V - Mar 1985 */ /* Symbolic constants for the "access" routine: */ #define R_OK 4 /* Test for Read permission */ #define W_OK 2 /* Test for Write permission */ #define X_OK 1 /* Test for eXecute permission */ #define F_OK 0 /* Test for existence of File */ #define F_ULOCK 0 /* Unlock a previously locked region */ #define F_LOCK 1 /* Lock a region for exclusive use */ #define F_TLOCK 2 /* Test and lock a region for exclusive use */ #define F_TEST 3 /* Test a region for other processes locks */ /* Symbolic constants for the "lseek" routine: */ #define SEEK_SET 0 /* Set file pointer to "offset" */ #define SEEK_CUR 1 /* Set file pointer to current plus "offset" */ #define SEEK_END 2 /* Set file pointer to EOF plus "offset" */ /* Path names: */ #define GF_PATH "/etc/group" /* Path name of the "group" file */ #define PF_PATH "/etc/passwd" /* Path name of the "passwd" file */ 0707070000020305321004440000020000020000030065310000017757000002400000000402usr/include/ustat.h#sccs "@(#)inchead:ustat.h 1.1" /* Convergent Technologies - System V - May 1983 */ 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 */ }; 0707070000020305331004440000020000020000030065350000017757000002300000002705usr/include/utmp.h#sccs "@(#)inchead:utmp.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* must be included. */ #define UTMP_FILE "/etc/utmp" #define WTMP_FILE "/etc/wtmp" #define ut_name ut_user struct utmp { char ut_user[8] ; /* User login name */ char ut_id[4] ; /* /etc/lines id(usually line #) */ char ut_line[12] ; /* device name (console, lnxx) */ short ut_pid ; /* process id */ short ut_type ; /* type of entry */ struct exit_status { short e_termination ; /* Process termination status */ short e_exit ; /* Process exit status */ } ut_exit ; /* The exit status of a process * marked as DEAD_PROCESS. */ time_t ut_time ; /* time entry was made */ } ; /* Definitions for ut_type */ #define EMPTY 0 #define RUN_LVL 1 #define BOOT_TIME 2 #define OLD_TIME 3 #define NEW_TIME 4 #define INIT_PROCESS 5 /* Process spawned by "init" */ #define LOGIN_PROCESS 6 /* A "getty" process waiting for login */ #define USER_PROCESS 7 /* A user process */ #define DEAD_PROCESS 8 #define ACCOUNTING 9 #define UTMAXTYPE ACCOUNTING /* Largest legal value of ut_type */ /* Special strings or formats used in the "ut_line" field when */ /* accounting for something other than a process. */ /* No string for the ut_line field can be more than 11 chars + */ /* a NULL in length. */ #define RUNLVL_MSG "run-level %c" #define BOOT_MSG "system boot" #define OTIME_MSG "old time" #define NTIME_MSG "new time" 0707070000020305341004440000020000020000030065430000017757000002500000006562usr/include/values.h#sccs "@(#)inchead:values.h 1.1" /* Convergent Technologies - System V - May 1983 */ /* These values work with any binary representation of integers * where the high-order bit contains the sign */ /* A number used normally for size of a shift */ #if gcos #define BITSPERBYTE 9 #else #define BITSPERBYTE 8 #endif /* Short, regular and long ints with only the high-order bit turned on */ #define HIBITS ((short)(1 << (BITSPERBYTE * sizeof(short) - 1))) #define HIBITI (1 << (BITSPERBYTE * sizeof(int) - 1)) #define HIBITL (1L << (BITSPERBYTE * sizeof(long) - 1)) /* Largest short, regular and long int */ #define MAXSHORT ((short)(~HIBITS)) #define MAXINT (~HIBITI) #define MAXLONG (~HIBITL) /* Various values which describe the binary floating-point representation * _EXPBASE - The exponent base * DMAXEXP - The maximum exponent of a double * FMAXEXP - The maximum exponent of a float * DMINEXP - The minimum exponent of a double * FMINEXP - The minimum exponent of a float * MAXDOUBLE - The largest double ((_EXPBASE ** (DMAXEXP + 1)) - 1) * MAXFLOAT - The largest float ((_EXPBASE ** (FMAXEXP + 1)) - 1) * DSIGNIF - The number of significant bits in a double * FSIGNIF - The number of significant bits in a float * DMAXPOWTWO - The largest power of two exactly representable as a double * FMAXPOWTWO - The largest power of two exactly representable as a float * _DEXPLEN - The number of bits for the exponent of a double * _FEXPLEN - The number of bits for the exponent of a float * _HIDDENBIT - 1 if high-significance bit of mantissa is implicit */ #if u3b || mc68k /* this papers around a bug in frexp.c which should be fixed */ /* #define MAXDOUBLE 1.79769313486231570e308 */ #define MAXDOUBLE 1.79769313486231570e307 #define MAXFLOAT ((float)3.402823466385288598e38) #define _DEXPLEN 11 #define _HIDDENBIT 1 /* this won't work until NaN's work properly */ #if mc68k #define DMINEXP (-(DMAXEXP + DSIGNIF)) #define FMINEXP (-(FMAXEXP + FSIGNIF)) #else #define DMINEXP (-DMAXEXP) #define FMINEXP (-FMAXEXP) #endif #define CUBRTHUGE 2.6196213420787355e102 #define INV_CUBRTHUGE .38173571415718220434e-102 #endif #if pdp11 || vax #define MAXDOUBLE 1.701411834604692293e38 #define MAXFLOAT ((float)1.701411733192644299e38) #define _DEXPLEN 8 #define _HIDDENBIT 1 #define DMINEXP (-DMAXEXP) #define FMINEXP (-FMAXEXP) #define CUBRTHUGE 5.5411913777556862e12 #define INV_CUBRTHUGE 1.80466605794262193729e-13 #endif #if gcos #define MAXDOUBLE 1.7014118346046923171e38 #define MAXFLOAT ((float)1.7014118219281863150e38) #define _DEXPLEN 8 #define _HIDDENBIT 0 #define DMINEXP (-(DMAXEXP + 1)) #define FMINEXP (-(FMAXEXP + 1)) #define CUBRTHUGE 5.5411913777556862e12 #define INV_CUBRTHUGE 1.80466605794262193729e-13 #endif #if u370 #define _LENBASE 4 #else #define _LENBASE 1 #endif #define _EXPBASE (1 << _LENBASE) #define _FEXPLEN 8 #define DSIGNIF (BITSPERBYTE * sizeof(double) - _DEXPLEN + _HIDDENBIT - 1) #define FSIGNIF (BITSPERBYTE * sizeof(float) - _FEXPLEN + _HIDDENBIT - 1) #define _LMAX (BITSPERBYTE * sizeof(long) - 2) #define DMAXPOWTWO ((double)(1L << _LMAX) * (1L << (DSIGNIF - _LMAX - 1))) #define FMAXPOWTWO ((float)(1L << (FSIGNIF - 1))) #define DMAXEXP ((1 << (_DEXPLEN - 1)) - 1) #define FMAXEXP ((1 << (_FEXPLEN - 1)) - 1) #define MAXBEXP DMAXEXP /* for backward compatibility */ #define MINBEXP DMINEXP /* for backward compatibility */ #define MAXPOWTWO DMAXPOWTWO /* for backward compatibility */ 0707070000020305351004440000020000020000030065470000017757000002600000000632usr/include/varargs.h#sccs "@(#)inchead:varargs.h 1.1" /* Convergent Technologies - System V - May 1983 */ typedef char *va_list; #define va_dcl int va_alist; #define va_start(list) list = (char *) &va_alist #define va_end(list) #ifdef u370 #define va_arg(list, mode) ((mode *)(list = \ (char *) ((int)list + 2*sizeof(mode) - 1 & -sizeof(mode))))[-1] #else #define va_arg(list, mode) ((mode *)(list += sizeof(mode)))[-1] #endif 0707070000020200101004440000020000020000031607630000017757000002300000000454usr/include/wind.h#sccs "@(#)tam:wind.h 1.1" #define W_POPUP 0 /* inside other window */ #define W_SON 1 /* adjacent to other window */ #define W_NEW 2 /* in new screen place */ #define WERR_OK 0 /* no error */ #define WERR_TOOBIG -1 #define WERR_NOMEM -7 /* if malloc failed */ extern char wsigflag; 0707070000020126121006440000020000020000030223370000017757000002600000013505usr/install/DEV/Files./bin/adb ./bin/ar ./bin/as ./bin/convert ./bin/dump ./bin/ksh ./bin/lorder ./bin/make ./bin/cc ./bin/ld ./bin/mld ./bin/nm ./bin/sdb ./bin/strip ./bin/tset ./etc/bcopy ./etc/chroot ./etc/clri ./etc/cron ./etc/fsdb ./etc/ncheck ./etc/whodo ./lib/crt0.o ./lib/mcrt0.o ./lib/crt0s.o ./lib/ifile.0407 ./lib/ifile.0410 ./lib/ifile.0413 ./lib/shlib.ifile ./lib/libc.a ./lib/libg.a ./lib/libld.a ./lib/libm.a ./lib/libPW.a ./lib/libp ./lib/libp/libc.a ./lib/libp/libmalloc.a ./lib/ccom ./lib/cpp ./lib/optim ./u/install/.kshrc ./usr/bin/admin ./usr/bin/bdiff ./usr/bin/cal ./usr/bin/cb ./usr/bin/cdc ./usr/bin/cflow ./usr/bin/cfont ./usr/bin/cmpdt ./usr/bin/cxref ./usr/bin/delta ./usr/bin/diff3 ./usr/bin/dircmp ./usr/bin/egrep ./usr/bin/factor ./usr/bin/get ./usr/bin/help ./usr/bin/ipcrm ./usr/bin/ipcs ./usr/bin/lex ./usr/bin/lint ./usr/bin/logname ./usr/bin/m4 ./usr/bin/pack ./usr/bin/pcat ./usr/bin/prof ./usr/bin/prs ./usr/bin/regcmp ./usr/bin/rmchg ./usr/bin/rmdel ./usr/bin/sact ./usr/bin/sccsdiff ./usr/bin/sdb ./usr/bin/sdiff ./usr/bin/tar ./usr/bin/tsort ./usr/bin/unget ./usr/bin/uniq ./usr/bin/units ./usr/bin/unpack ./usr/bin/val ./usr/bin/vc ./usr/bin/xargs ./usr/bin/yacc ./usr/include ./usr/include/a.out.h ./usr/include/alarm.h ./usr/include/aouthdr.h ./usr/include/ar.h ./usr/include/assert.h ./usr/include/core.h ./usr/include/ctype.h ./usr/include/curses.h ./usr/include/dial.h ./usr/include/dumprestor.h ./usr/include/errno.h ./usr/include/exch.h ./usr/include/execargs.h ./usr/include/fatal.h ./usr/include/fcntl.h ./usr/include/filehdr.h ./usr/include/form.h ./usr/include/ftw.h ./usr/include/gdioctl.h ./usr/include/grp.h ./usr/include/kcodes.h ./usr/include/ldfcn.h ./usr/include/linenum.h ./usr/include/lp.h ./usr/include/macros.h ./usr/include/malloc.h ./usr/include/Makepre.h ./usr/include/Makepost.h ./usr/include/math.h ./usr/include/memory.h ./usr/include/menu.h ./usr/include/message.h ./usr/include/mnttab.h ./usr/include/mon.h ./usr/include/nan.h ./usr/include/nlist.h ./usr/include/pbf.h ./usr/include/pwd.h ./usr/include/regexp.h ./usr/include/reloc.h ./usr/include/rje.h ./usr/include/scnhdr.h ./usr/include/search.h ./usr/include/setjmp.h ./usr/include/sgs.h ./usr/include/sgtty.h ./usr/include/signal.h ./usr/include/stand.h ./usr/include/status.h ./usr/include/stdio.h ./usr/include/storclass.h ./usr/include/string.h ./usr/include/symbol.h ./usr/include/syms.h ./usr/include/sys ./usr/include/sys/acct.h ./usr/include/sys/buf.h ./usr/include/sys/callo.h ./usr/include/sys/cmap.h ./usr/include/sys/conf.h ./usr/include/sys/config.h ./usr/include/sys/dialer.h ./usr/include/sys/dir.h ./usr/include/sys/dmap.h ./usr/include/sys/drv.h ./usr/include/sys/err.h ./usr/include/sys/errno.h ./usr/include/sys/fblk.h ./usr/include/sys/file.h ./usr/include/sys/filsys.h ./usr/include/sys/flock.h ./usr/include/sys/font.h ./usr/include/sys/gdioctl.h ./usr/include/sys/gdisk.h ./usr/include/sys/hardware.h ./usr/include/sys/hardware.m ./usr/include/sys/i8274.h ./usr/include/sys/init.h ./usr/include/sys/ino.h ./usr/include/sys/inode.h ./usr/include/sys/iobuf.h ./usr/include/sys/ioctl.h ./usr/include/sys/iohw.h ./usr/include/sys/iohw.m ./usr/include/sys/ipc.h ./usr/include/sys/kbd.h ./usr/include/sys/lapbtr.h ./usr/include/sys/lock.h ./usr/include/sys/lprio.h ./usr/include/sys/map.h ./usr/include/sys/modem.h ./usr/include/sys/mount.h ./usr/include/sys/mouse.h ./usr/include/sys/msg.h ./usr/include/sys/param.h ./usr/include/sys/ph.h ./usr/include/sys/phone.h ./usr/include/sys/proc.h ./usr/include/sys/pte.h ./usr/include/sys/rastop.h ./usr/include/sys/reg.h ./usr/include/sys/rtc.h ./usr/include/sys/sem.h ./usr/include/sys/shm.h ./usr/include/sys/signal.h ./usr/include/sys/slot.h ./usr/include/sys/space.h ./usr/include/sys/spl.h ./usr/include/sys/st.h ./usr/include/sys/stat.h ./usr/include/sys/stermio.h ./usr/include/sys/sysinfo.h ./usr/include/sys/syslocal.h ./usr/include/sys/sysmacros.h ./usr/include/sys/systm.h ./usr/include/sys/target.h ./usr/include/sys/termio.h ./usr/include/sys/text.h ./usr/include/sys/times.h ./usr/include/sys/trap.h ./usr/include/sys/ttold.h ./usr/include/sys/tty.h ./usr/include/sys/tune.h ./usr/include/sys/types.h ./usr/include/sys/user.h ./usr/include/sys/utsname.h ./usr/include/sys/vadvise.h ./usr/include/sys/var.h ./usr/include/sys/vlimit.h ./usr/include/sys/vm.h ./usr/include/sys/vmmac.h ./usr/include/sys/vmmeter.h ./usr/include/sys/vmparam.h ./usr/include/sys/vmsystm.h ./usr/include/sys/vtimes.h ./usr/include/sys/wait.h ./usr/include/sys/wd.h ./usr/include/sys/window.h ./usr/include/syslocal.h ./usr/include/tam.h ./usr/include/termio.h ./usr/include/time.h ./usr/include/tp_defs.h ./usr/include/track.h ./usr/include/unistd.h ./usr/include/ustat.h ./usr/include/utmp.h ./usr/include/values.h ./usr/include/varargs.h ./usr/include/wind.h ./usr/install/DEV/Files ./usr/install/DEV/Install ./usr/install/DEV/Name ./usr/install/DEV/Remove ./usr/lib/dag ./usr/lib/diff3prog ./usr/lib/flip ./usr/lib/help ./usr/lib/help/ad ./usr/lib/help/bd ./usr/lib/help/cb ./usr/lib/help/cm ./usr/lib/help/cmds ./usr/lib/help/co ./usr/lib/help/de ./usr/lib/help/default ./usr/lib/help/ge ./usr/lib/help/he ./usr/lib/help/prs ./usr/lib/help/rc ./usr/lib/help/un ./usr/lib/help/ut ./usr/lib/help/vc ./usr/lib/lex ./usr/lib/lex/ncform ./usr/lib/lex/nrform ./usr/lib/lib300.a ./usr/lib/lib300s.a ./usr/lib/lib4014.a ./usr/lib/lib450.a ./usr/lib/libcurses.a ./usr/lib/libdev.a ./usr/lib/libg.a ./usr/lib/libl.a ./usr/lib/libld.a ./usr/lib/libmalloc.a ./usr/lib/libmath.a ./usr/lib/libplot.a ./usr/lib/libtam.a ./usr/lib/libtermcap.a ./usr/lib/libtermlib.a ./usr/lib/libvt0.a ./usr/lib/liby.a ./usr/lib/lint1 ./usr/lib/lint2 ./usr/lib/llib-lc ./usr/lib/llib-lc.ln ./usr/lib/llib-port ./usr/lib/llib-port.ln ./usr/lib/llib-lm ./usr/lib/llib-lm.ln ./usr/lib/lpfx ./usr/lib/nmf ./usr/lib/ua/DEVSuffixes ./usr/lib/ua/tam.a ./usr/lib/unittab ./usr/lib/xcpp ./usr/lib/xpass ./usr/lib/yaccpar ./usr/preserve 0707070000020302251007550000020000020000041747450000017757000003000000001033usr/install/DEV/Install#sccs "@(#)devset:Install 1.4" ## Installation Script for the Development Set. ## Updated on 02/16/87 for the 3.51+ release by MDE ## for beautification. echo echo ' Installing Development Set libraries and commands.' echo echo ' Please stand by ...' echo ## Do not install the junk from /usr/install/DEV grep -v "/usr/install/DEV" Files | cpio -pldum / > /dev/null 2>&1 if [ ! -f /usr/lib/ua/.kshrc ] then ln /u/install/.kshrc /usr/lib/ua/.kshrc fi echo echo ' Development Set installation complete' echo 0707070000020302271006440000020000020000041747540000017757000002500000000025usr/install/DEV/NameDEVELOPMENT SET 3.51 0707070000020302261007550000020000020000041747460000017757000002700000013727usr/install/DEV/Remove#sccs "@(#)devset:Remove 1.12" # Remove script for the Development set # Recreated by MDE on January 9, 1987 for 3.51+ release. # This should be easier to maintain. ## FIRST CREATE FILE LIST TO REMOVE ## ## Note that the following files should be left intact for other language ## packages: ## ## /lib/crt0.o /lib/ifile.0413 /lib/libc.a /lib/libm.a ## /usr/lib/libmath.a ## ## The following should also be left alone because they are part of the ## Foundation set: ## ## /bin/ld /usr/bin/pack /usr/bin/pcat /usr/bin/uniq /usr/bin/unpack ## cat > rmFiles << _END_ /bin/adb /bin/ar /bin/as /bin/dump /bin/lorder /bin/make /bin/cc /bin/nm /bin/sdb /bin/strip /bin/tset /etc/bcopy /etc/chroot /etc/clri /etc/cron /etc/fsdb /etc/ncheck /etc/whodo /lib/mcrt0.o /lib/crt0s.o /lib/ifile.0407 /lib/ifile.0410 /lib/shlib.ifile /lib/libg.a /lib/libld.a /lib/libPW.a /lib/ccom /lib/cpp /lib/optim /usr/bin/admin /usr/bin/bdiff /usr/bin/cal /usr/bin/cb /usr/bin/cdc /usr/bin/cflow /usr/bin/cfont /usr/bin/cmpdt /usr/bin/cxref /usr/bin/delta /usr/bin/diff3 /usr/bin/dircmp /usr/bin/egrep /usr/bin/factor /usr/bin/get /usr/bin/help /usr/bin/ipcrm /usr/bin/ipcs /usr/bin/lex /usr/bin/lint /usr/bin/logname /usr/bin/m4 /usr/bin/prof /usr/bin/prs /usr/bin/regcmp /usr/bin/rmchg /usr/bin/rmdel /usr/bin/sact /usr/bin/sccsdiff /usr/bin/sdb /usr/bin/sdiff /usr/bin/tar /usr/bin/tsort /usr/bin/unget /usr/bin/units /usr/bin/val /usr/bin/vc /usr/bin/xargs /usr/bin/yacc /usr/include/a.out.h /usr/include/alarm.h /usr/include/aouthdr.h /usr/include/ar.h /usr/include/assert.h /usr/include/core.h /usr/include/ctype.h /usr/include/curses.h /usr/include/dial.h /usr/include/dumprestor.h /usr/include/errno.h /usr/include/exch.h /usr/include/execargs.h /usr/include/fatal.h /usr/include/fcntl.h /usr/include/filehdr.h /usr/include/form.h /usr/include/ftw.h /usr/include/gdioctl.h /usr/include/grp.h /usr/include/kcodes.h /usr/include/ldfcn.h /usr/include/linenum.h /usr/include/lp.h /usr/include/macros.h /usr/include/malloc.h /usr/include/Makepre.h /usr/include/Makepost.h /usr/include/math.h /usr/include/memory.h /usr/include/menu.h /usr/include/message.h /usr/include/mnttab.h /usr/include/mon.h /usr/include/nan.h /usr/include/nlist.h /usr/include/pbf.h /usr/include/pwd.h /usr/include/regexp.h /usr/include/reloc.h /usr/include/rje.h /usr/include/scnhdr.h /usr/include/search.h /usr/include/setjmp.h /usr/include/sgs.h /usr/include/sgtty.h /usr/include/signal.h /usr/include/stand.h /usr/include/status.h /usr/include/stdio.h /usr/include/storclass.h /usr/include/string.h /usr/include/symbol.h /usr/include/syms.h /usr/include/sys/acct.h /usr/include/sys/buf.h /usr/include/sys/callo.h /usr/include/sys/cmap.h /usr/include/sys/conf.h /usr/include/sys/config.h /usr/include/sys/dialer.h /usr/include/sys/dir.h /usr/include/sys/dmap.h /usr/include/sys/drv.h /usr/include/sys/err.h /usr/include/sys/errno.h /usr/include/sys/fblk.h /usr/include/sys/file.h /usr/include/sys/filsys.h /usr/include/sys/flock.h /usr/include/sys/font.h /usr/include/sys/gdioctl.h /usr/include/sys/gdisk.h /usr/include/sys/hardware.h /usr/include/sys/hardware.m /usr/include/sys/i8274.h /usr/include/sys/init.h /usr/include/sys/ino.h /usr/include/sys/inode.h /usr/include/sys/iobuf.h /usr/include/sys/ioctl.h /usr/include/sys/iohw.h /usr/include/sys/iohw.m /usr/include/sys/ipc.h /usr/include/sys/kbd.h /usr/include/sys/lapbtr.h /usr/include/sys/lock.h /usr/include/sys/lprio.h /usr/include/sys/map.h /usr/include/sys/modem.h /usr/include/sys/mount.h /usr/include/sys/mouse.h /usr/include/sys/msg.h /usr/include/sys/param.h /usr/include/sys/ph.h /usr/include/sys/phone.h /usr/include/sys/proc.h /usr/include/sys/pte.h /usr/include/sys/rastop.h /usr/include/sys/reg.h /usr/include/sys/rtc.h /usr/include/sys/sem.h /usr/include/sys/shm.h /usr/include/sys/signal.h /usr/include/sys/slot.h /usr/include/sys/space.h /usr/include/sys/spl.h /usr/include/sys/st.h /usr/include/sys/stat.h /usr/include/sys/stermio.h /usr/include/sys/sysinfo.h /usr/include/sys/syslocal.h /usr/include/sys/sysmacros.h /usr/include/sys/systm.h /usr/include/sys/target.h /usr/include/sys/termio.h /usr/include/sys/text.h /usr/include/sys/times.h /usr/include/sys/trap.h /usr/include/sys/ttold.h /usr/include/sys/tty.h /usr/include/sys/tune.h /usr/include/sys/types.h /usr/include/sys/user.h /usr/include/sys/utsname.h /usr/include/sys/vadvise.h /usr/include/sys/var.h /usr/include/sys/vlimit.h /usr/include/sys/vm.h /usr/include/sys/vmmac.h /usr/include/sys/vmmeter.h /usr/include/sys/vmparam.h /usr/include/sys/vmsystm.h /usr/include/sys/vtimes.h /usr/include/sys/wait.h /usr/include/sys/wd.h /usr/include/sys/window.h /usr/include/syslocal.h /usr/include/tam.h /usr/include/termio.h /usr/include/time.h /usr/include/tp_defs.h /usr/include/track.h /usr/include/unistd.h /usr/include/ustat.h /usr/include/utmp.h /usr/include/values.h /usr/include/varargs.h /usr/include/wind.h /usr/lib/dag /usr/lib/diff3prog /usr/lib/flip /usr/lib/lib300.a /usr/lib/lib300s.a /usr/lib/lib4014.a /usr/lib/lib450.a /usr/lib/libcurses.a /usr/lib/libdev.a /usr/lib/libg.a /usr/lib/libl.a /usr/lib/libld.a /usr/lib/libmalloc.a /usr/lib/libplot.a /usr/lib/libtam.a /usr/lib/libtermcap.a /usr/lib/libtermlib.a /usr/lib/libvt0.a /usr/lib/liby.a /usr/lib/lint1 /usr/lib/lint2 /usr/lib/llib-lc /usr/lib/llib-lc.ln /usr/lib/llib-port /usr/lib/llib-port.ln /usr/lib/llib-lm /usr/lib/llib-lm.ln /usr/lib/lpfx /usr/lib/nmf /usr/lib/ua/DEVSuffixes /usr/lib/ua/tam.a /usr/lib/unittab /usr/lib/xcpp /usr/lib/xpass /usr/lib/yaccpar _END_ ## NEXT CREATE THE LIST OF DIRECTORY TREES TO REMOVE cat > rmDirs << _END_ /lib/libp /usr/lib/help /usr/lib/lex /usr/install/DEV _END_ echo echo ' Removing Development Set libraries and commands.' echo echo ' Please stand by ...' echo ## REMOVE DIRECTORY TREES if [ -s rmDirs ] then for TREE in `cat rmDirs` do rm -rf $TREE done fi ## REMOVE INDIVIDUAL FILES if [ -s rmFiles ] then while read FILE do rm -f $FILE done < rmFiles fi rm -f rmDirs rmFiles echo echo echo ' The Development Set has been removed.' echo 0707070000020301101007550000020000020000031670230000017757000001400000006254usr/lib/dagR   .text .data @.bss .lib  /< N1X OQ./HJf/H#0N @(#) cflow:cflow.sl 1.1 0707070000020301221007550000020000020000031673500000017757000002200000010320usr/lib/diff3progR N & .text  .data @.bss &.lib '| '|/< '|N1X OQ./HJf/H#0N ::= | , ::= REL_NO | ``a'' where REL_NO is considered to be the first component in a _SCCS __IDentification string (SID). -28 "element in list out of range" An element contained in the list for ``locking'' or ``unlocking'' releases is out of range. That means its value is probably greater than 9999, the maximum release number. -29 directory `...' specified as `...' keyletter value The value specified with the named keyletter argument is a directory. This is not allowed since the SCCS file created would not be accessible by other SCCS commands. -30 illegal use of `y' or `m' keyletter The `y' and `m' keyletters for "admin" may only be used in conjunction with the `i' or `n' keyletters, i.e. when creating a new SCCS file. Use "cdc" to change comments or MR numbers of an existing file. 0707070000020177451006440000020000020000030234350000017757000002000000002360usr/lib/help/bd*sccs @(#)libhelp:bd 1.1 * * Messages for bdiff. * -1 "arg count" You invoked bdiff with either too few or too many arguments. -2 "both files standard input" You supplied a name of '-' for both file-name arguments to bdiff. Since '-' means to read the standard input, you are requesting that bdiff read it for both its inputs. That would lead to highly grungeular randomness. -3 "cannot fork, try again" Bdiff could not fork to invoke 'diff'. This is a system problem which may go away, so try again. If it doesn't, report it to the system support group. -4 "non-numeric limit" The argument supplied to bdiff to specify the segmentation limit bdiff is to use is not numeric. Only numeric characters may appear in this argument. -5 "cannot execute ..." The named program could not be executed by bdiff. It may be unexecutable, or it may have been removed. Contact SCCS support personnel for further assistance. -6 "... failed" The named program terminated with an error. It may have discovered an error condition or may have been interrupted. Contact SCCS support personnel for further assistance. -7 "can not write ..." An attempt to write to a temporary file in /tmp has been unsuccessful. The file system is probably out of space. See your System Administrator. 0707070000020177461006440000020000020000030732020000017757000002000000001241usr/lib/help/cb*sccs @(#)libhelp:cb 1.1 * * Message for comb SCCS command * -1 "p-file exists" Someone is in the process of making a delta on the named SCCS file. Comb may only be used when no one else is modifying the named SCCS file. -2 "can't have both -p and -c" The '-p' and '-c' key letter arguments specify mutually exclusive conditions. Therefore, they may not be specified on the same command line. -3 "SID doesn't exist" The SID you specified in one of the arguments to comb does not exist in the named SCCS-file. -4 "nothing to do" The argument specified to comb would result in no changes made to the named SCCS-file. Therefore, it can't do anything to the named SCCS-file. 0707070000020177471006440000020000020000030723300000017757000002000000004224usr/lib/help/cm*sccs @(#)libhelp:cm 1.1 * * Messages common to more than one SCCS command. * -1 "unknown key letter" You supplied a keyletter which the command does not recognize. -2 "key letter twice" You supplied a keyletter more than once. -3 "missing file arg" You left off the name of the file to be processed. -4 "cannot create lock file" There are two known reasons why this can occur. 1) Someone else is updating the SCCS file (or the p-file). You'll have to wait until they're through, and try again. 2) You do not have write permission in the directory where the SCCS file resides. If this is so, you are not allowed to create any files (including the ``lock file'') in that directory. If it is neither of the two reasons and the problem persists, contact your Source Code Administrator (SCA). -5 "bad date/time" The date/time must be a legitimate date/time in the form "YY[MM[DD[HH[MM[SS]]]]]". The program knows about things like leap years, so be precise. -6 "no id keywords" No SCCS identification keywords were substituted for (or found). If this message came from delta then you just tryed to make a delta without any keywords. If this message came from get then your source code administrator blew it. Complain to him/her. If this message came from admin, you blew it. -7 "No id keywords" No SCCS identification keywords were substituted for. You may not have any keywords in the file, in which case you can ignore this warning. If this message came from delta then you just made a delta without any keywords. If this message came from get then the last time you made a delta you changed the lines on which they appeared. It's a little late to be telling you that you messed up the last time you made a delta, but this is the best we can do for now, and it's better than nothing. This isn't an error, only a warning. -8 "value after ... arg" You had something after the indicated keyletter argument and you weren't supposed to. -9 "User ID not in password file ..." You are apparently running on a system on which you do not have a login (via a data link of some type). SCCS will not allow you to make changes to a file if your user ID is not located in the password file. 0707070000020177501006440000020000020000031374300000017757000002200000012362usr/lib/help/cmds*sccs @(#)libhelp:cmds 1.1 * * Synopsis of SCCS commands * -delta delta [-r] [-s] [-n] [-g] [-m] [-y] [-p] file ... -get get [-r] [-c] [-i] [-x] [-a] [-k] [-e] [-l

] [-p] [-m] [-n] [-s] [-b] [-g] [-t] file ... -admin admin [-n] [-i] [-r] [-t] [-f>] ... [-d] ... [-a] ... [-e] ... [-m] [-y] [-h] [-z] file ... -help help [arg] (When all else fails execute "help stuck".) -what what file ... -comb comb [-o] [-s] [-p] [-c] file ... -bdiff bdiff file1 file2 [numarg] [-s] -cdc cdc -rSID [-m] [-y] file ... -rmdel rmdel -rSID file ... -sccsdiff sccsdiff old-spec new-spec [pr-args] sccsfile ... -stuck First, if you know the value of the system error number (errno), you can look up a description of it in INTRO(2). If you don't know the error number, or you don't understand what's going on - Try the following, in order: 1. Make sure the answer isn't in the documentation. 2. Try to write(1) to anyone logged in as "adm". 3. Contact your UNIX counsellor. 4. File an MR (see System Administrator for instructions). -val val - val [-s] [-r] [-m] [-y] file ... -vc vc [-a] [-t] [-c] [-s] [keyword=value ... keyword=value] -prs prs [-d] [-r] [-e] [-l] [-a] file ... (do 'help prs_kywds' for description of recognized data keywords) -prs_kywds List of Data Keywords Recognized by the _p_r_s Command Data SCCS File Value Format Keyword Data Item Section Type Type :Dt: Whole delta line Delta Table all delta line info S :DL: Delta line stats " :Li:/:Ld:/:Lu: S :Li: Lines ins by delta " nnnnn S :Ld: Lines del by delta " nnnnn S :Lu: Lines unc by delta " nnnnn S :DT: Delta type " D or R S :I: SID " :R:.:L:.:B:.:S: S :R: Release number " nnnn S :L: Level number " nnnn S :B: Branch number " nnnn S :S: Sequence number " nnnn S :D: Date delta created " :Dy:/:Dm:/:Dd: S :Dy: Year delta created " nn S :Dm: Month delta created " nn S :Dd: Day delta created " nn S :T: Time delta created " :Th::Tm::Ts: S :Th: Hour delta created " nn S :Tm: Minutes delta created " nn S :Ts: Seconds delta created " nn S :P: Pgmr who created delta " logname S :DS: Delta seq number " nnnn S :DP: Pred delta seq number " nnnn S :DI: Deltas inc,exc,ignored " :Dn:/:Dx:/:Dg: S :Dn: Deltas included " :DS: :DS: ... S :Dx: Deltas excluded " :DS: :DS: ... S :Dg: Deltas ignored " :DS: :DS: ... S :MR: MR numbers " text M :C: Comments " text M :UN: User names User Names text M :FL: Flag List Flags desc of all flags set M :Y: Type flag " module type S :MF: MR valid flag " yes or no S :MP: MR valid pgm. " text S :KF: Kywd err/warn flag " yes or no S :BF: Branch flag " yes or no S :J: Joint edit flag " yes or no S :LK: Locked releases " :R: ... S :Q: User defined keyword " text S :M: Module name flag " module name S :FB: Floor boundary " :R: S :CB: Ceiling boundary " :R: S :Ds: Default SID " :I: S :ND: Null delta flag " yes or no S :FD: Descriptive text Comments text M :BD: Body Body text M :GB: Gotten body " text M :W: form of _w_h_a_t(I) str N/A :Z::M:\t:I: S :A: form of _w_h_a_t(I) str N/A :Z::Y: :M: :I::Z: S :Z: _w_h_a_t(I) str construct N/A @(#) S :F: File name N/A file name S :PN: Pathname N/A pathname S 0707070000020177511006440000020000020000031010410000017757000002000000010100usr/lib/help/co*sccs @(#)libhelp:co 1.1 * * Messages from routines in 'com' directory of sccs. * -1 "not an SCCS file" A file that you think is an SCCS file does not begin with the characters "s.". -3 "more than one link" SCCS files may only have one name (link). This is because the delta program unlinks the old file and then links to the new file. -4 "format error at line ..." FIRST OF ALL, ARE YOU SURE THAT THE NAMED FILE IS A RELEASE 4 SCCS FILE? (see PIB 77-05). The format of the SCCS file is logically invalid. The error was discovered at the stated line. See if you can find the problem with the prs command. If not, do a "help stuck". -5 "premature eof" The SCCS file ended in a strange place. Its probably a goner. You can try "help stuck", but chances are you're going to have to go to a backup copy. -6 "corrupted file" The computed hash count of the input SCCS file did not check with the stored hash count. The file may have been damaged since it was last accessed. See your local SCCS maintenance person. -7 "too long" The pathname is too long. -8 "invalid sid" The specified sid is syntactically incorrect. -10 "clock set wrong!!!" The time of day is wrong. Contact your local UNIX support group immediately! (Try a "date" command.) (This error is produced whenever the creation date of the newest delta in the SCCS file is newer than the current date. This will happen whenever the date is accidently set wrong. This error will also occur if a delta was created while the clock was set ahead - but less than a year - and has since been corrected. In this case the current time is correct, but the date of the delta is wrong.) -11 "Clock may be set wrong!" The time of day may be set wrong. Check the current time with the "date" command. If it is wrong, contact your local UNIX support group immediately! (This message is produced whenever the difference between the current date and the creation date of the newest delta in the SCCS file is greater than one year.) -12 "bad range" In a delta list, the two limits of a range of deltas were not in ascending order. -13 "delta list syntax" A list of deltas was syntatically erroneous. The correct syntax is: ::= | , ::= | - ::= | . -14 "not authorized to make deltas" Your login name or group ID is not on the list of users who are allowed to add deltas to this file. You can execute "prs -d:UN: file" to see who is allowed. See your project administrator to get your login name or group ID on the list. -15 "release ... < ... (floor)" Either the release you specified or else the default release is lower than the lowest allowable release (the floor). If you're not sure what's wrong see your SCCS administrator. -16 "release ... > ... (ceiling)" Either the release you specified or else the default release is higher than the highest allowable release (the ceiling). If you're not sure what's wrong see your SCCS administrator. -17 "bad p-file format" The p-file is messed up. Get your local source code administrator to fix it. -18 "line too long" Don't type so much on a line. -19 "response too long" A response can't be so long. Try typing less (maybe you can reference some other document). -20 "cannot fork; try again" The system is busy; you'll have to try again later. -21 "too many MRs" You can't enter so many MRs. Sorry. -22 "out of space" Your MRs took up too much memory. Type less. -23 ... locked against editing The specified release (or possibly all releases) for the SCCS file have been locked using the _l flag of admin. Do a 'prs -d:LK: s.filename' to see a list of locked releases (_a means "all"). -24 "MR number too long" You entered an MR number which is much to long. Remember, multiple MRs should be separated by spaces or tabs. -25 "begins" An include/exclude conflict exists beginning here. The SID's in the include/exclude list change conflicting lines. The lines involved may not be correct. -26 "ends" An include/exclude conflict ends here. The SID's in the include/exclude list change conflicting lines. The lines preceding this message may be incorrect. 0707070000020177521006440000020000020000030047350000017757000002000000006436usr/lib/help/de*sccs @(#)libhelp:de 1.1 -1 "missing -r argument" You must specify an SID when you are listed more than once in the p-file. -2 "login name or SID specified not in p-file" Either your login name, or the SID you specified, is not listed in the p-file. You probably forgot to do a get -e, or supplied the wrong SID. -3 "invalid sid in p-file" Get your local source code administrator to fix up the p-file. -4 "diff failed" The program delta uses to determine what changed failed, and the delta is not made. Contact SCCS support personnel for further assistance. -5 "internal error in delta/enter()" Report this to your local SCCS support personnel immediately. -6 "internal error in delta/enter()" Report this to your local SCCS support personnel immediately. -7 "internal error in delta/enter()" Report this to your local SCCS support personnel immediately. -8 "MRs not allowed" You specified MRs, but the file being processed doesn't allow them. -9 "invalid MRs" The MR validation program returned a non-zero status to delta. This indicates that one or more of the MRs specified are invalid. -10 "MRs required" No MRs were specified, but the file being processed requires them. -11 "cannot fork, try again" Delta could not fork to invoke the program it uses to determine what has changed in the SCCS file. This is a system problem which may go away, so try again. If it doesn't, report it to the system support group. -12 "cannot execute ..." The named program, used by delta to determine what changed in the SCCS file, could not be executed. It may be unexecutable, or it may have been removed. Contact SCCS support personnel for further assistance. -13 "... failed, re-trying, segmentation = ..." The named program, used by delta to determine what has changed in the SCCS file, has failed. The most likely cause is that the files to be compared by the named program are being segmented into chunks which are too large. Therefore, delta re-tries with smaller chunks. (However, the smallest chunk it will try is 500 lines. If this fails, it gives up hope and terminates processing of the SCCS file.) Do a "help de17" for more information. -14 "leading SOH char in line ... of file ... not allowed" The ASCII character SOH (binary 001) is in the first position of a line. This character is not allowed in the first position for any line of text in an SCCS file. However, it may be used if it is escaped. -15 "ambiguous `r' keyletter value" Which delta (SID) do you want to make? Look at the p-file, pick one, and specify it with the `-r' keyletter. -16 When delta reads arguments from the standard input it will not prompt for comments or MRs, so these values must be supplied with the file argument. -17 Because of the segmentation problem which is caused by limited system work space, the SCCS file that delta created may occupy an inordinate amount of file space. To reduce the size of the SCCS file, the user may want to remove the delta just created and retry when the system is more lightly loaded (and hopefully more work space is available). If no subsequent delta has been made, the procedure for doing this would be: 1. get -k s.file 2. rmdel -rSID s.file 3. get -e -g s.file 4. delta s.file where, of course, SID and file are specified appropriately. Also steps 1 and 3 may require that you specify a SID, depending on your situation. 0707070000020177531006440000020000020000030753650000017757000002500000000264usr/lib/help/default*sccs @(#)libhelp:default 1.1 * * Default file (file of last resort) * -26 "can't open ..." The file couldn't be opened for reading. Either it doesn't exist or it isn't readable. 0707070000020177541006440000020000020000030750250000017757000002000000004007usr/lib/help/ge*sccs @(#)libhelp:ge 1.1 * * Messages for get command of SCCS. * -3 "e not allowed with m" You can't use both the -e and -m arguments on the same get command. -4 "writable `...' exists" For safety's sake, SCCS won't overwrite an existing g-file if it's writable. If you don't need the g-file, remove it and rerun the get command. -5 "nonexistent sid" The specified sid does not exist in the given file. Check for typos. -9 "... already included" You mentioned the same delta twice with an -i and/or an -x argument. -10 "... already excluded" You mentioned the same delta twice with an -x and/or an -i argument. -11 "internal error in get/enter()" ``Lasciate ogni speranza, voi ch'entrate'' This shouldn't have happened!! Do a "help stuck". -17 "being edited: `...'" You can't do a get with an -e argument because someone else already did and hasn't made a delta yet. If that someone else is really you, you can regenerate a new file to be edited, if necessary, by using the -k argument. If you want to cancel the reservation entirely, see your SCCS administrator, and tell him/her you want the p-file edited. The data in quotes is from the p-file. -18 "being edited: `...'" Someone else has done a get with an -e argument. This can't hurt what you're doing, but isn't it nice to know that someone else is making deltas to this file too? -19 "release locked against editing" The release retrieved by `get' for editing purposes (get -e ) is locked against further editing. "prs -d:LK:" on the SCCS file tells you which releases are locked. The `admin' command is used to lock and unlock releases. -20 "curdir failed" Re-check what you did. Re-try the command. If the problem persists, contact your local UNIX administrator. -21 "cannot change directory" If you know the directory name, then check to see if it exists. Re-try the command. If the problem persists, contact your local UNIX administrator. -22 "r out of range" The release number specified with the -r keyletter is out of range. This means the number was greater than 9999 or less than 1. 0707070000020177551006440000020000020000031502460000017757000002000000000516usr/lib/help/he*sccs @(#)libhelp:he 1.1 * * Messages for help command. * -1 "not found" No helpful information associated with your argument was found. If you're sure you've got it right, do a "help stuck". -2 "argument too long" Dost thou jest? Wilst thou mock HELP?? Please limit your blitherings in arguments to less than fifty (50) characters. 0707070000020177561006440000020000020000030616540000017757000002100000000774usr/lib/help/prs*sccs @(#)libhelp:prs 1.1 * * Diagnostic messages for the 'prs' command * -1 "nonexistent sid" You specified an SID, via the r keyletter, which is not an SID of the SCCS file. -2 "curdir failed" Try the command again. If the situation repeats, notify your Source Code Administrator or UNIX Project Administrator for further assistence. -3 "cannot change directory" Try the command again. If the situation repeats, notify your Source Code Administrator or UNIX Project Administrator for further assistence. 0707070000020177571006440000020000020000030616310000017757000002000000004356usr/lib/help/rc*sccs @(#)libhelp:rc 1.1 * * Messages for SCCS rmdel-cdc commands. * -1 "missing r" You did not specify the 'r' keyletter when you invoked rmdel or cdc. This argument is always required. -2 "file ... does not exist" You named a file to be processed and it does not exist. -3 "nonexistent sid" You specified an SID, via the r keyletter, which is not an SID of the SCCS file. -4 "you are neither owner nor ..." You either don't own the file you are trying to process or your login-name is not the same as the one that created the delta. Only the creator of a delta (or your SCCS administrator, who owns the file) can rmdel or cdc a delta. -5 "not a 'leaf' delta" You are attempting to remove a delta which is not the newest (most recent) delta in its branch of the delta tree. Only the latest may be removed. -6 "MRs not allowed" Chghist has determined that MR numbers cannot be specified for the SCCS file since the file does not have a 'v' flag. -7 "invalid MRs" One of the MR numbers you entered in response to a prompt by cdc is invalid, as determined by the validation program specified in the 'v' flag of the SCCS file. -8 "MRs required" Chghist has determined that MR numbers are required for the SCCS file it is processing (the file has a 'v' flag), but none were supplied. -9 "delta specified has delivered MR" The delta your are processing with 'rmdel' or 'cdc' contains an MR number entry which has been marked 'delivered'. You cannot rmdel or cdc such a delta, as that would be in violation of a Change Management Prime Directive. See your SCCS administrator for further information. -10 "bad invocation" You invoked 'rmdel' or 'cdc' by some name other than (n)rmdel or (n)cdc (you have a link to it). The program's execution depends on being invoked by one of these names only. -11 "r has no sid" You specified the 'r' keyletter but did not specify the SID of the delta to be processed. Both are required. -12 "being edited -- sid is in p-file" Someone is in the process of making a delta based upon the same delta (sid) you specified with the 'r' keyletter. This is indicated by the presence of the specified sid in an entry of the p-file for the named SCCS file. Removal of the delta specified is prohibited because its removal would interfere with other work in progress. 0707070000020177621006440000020000020000030501670000017757000002000000001212usr/lib/help/un*sccs @(#)libhelp:un 1.1 * * Messages for unget and sact. * -1 "SID must be specified ..." You have two or more entries in the p-file (by executing _g_e_t -_e more than once for the same SCCS file). You must use the -_r keyletter and specify the SID for the new delta you no longer wish to make. -2 "login name not in p-file ..." You have not done a get for editing of the named SCCS file. -3 "specified SID not in p-file ..." You have specified a SID using the -r keyletter which is either not in the p-file at all or is in the p-file but is not associated with your logname. -4 "`...' nonexistent" The file does not exist. Check for typos. 0707070000020177631006440000020000020000030747600000017757000002000000004433usr/lib/help/ut*sccs @(#)libhelp:ut 1.1 * * Messages for libPW utilities. * -1 "directory `...' nonexistent" -2 "directory `...' unwritable" The effective user (probably you) doesn't have write permission in the directory. Do a "ls -ld ..." to check the modes. -3 "no file" The system's table of open files is full, and temporarily no more opens can be accepted. If this error recurs, report it to your local UNIX support group. -4 "`...' nonexistent" The file does not exist. Check for typos. -5 "`...' unreadable" The file probably exists, but the effective user doesn't have read permission. It is also possible that one or more directories in the path aren't executable. -6 "`...' unwritable" The file exists, but the effective user doesn't have write permission. It is also possible that one or more directories in the path aren't executable. -7 "`...' unreadable or unwritable" The file exists, but the effective user either doesn't have read permission, or write permission, or both. It is also possible that one or more directories in the path aren't executable. -8 "write error" The file which caused the write error is as large as a file can be (currently 1M bytes). -9 "out of space" There's no more dynamic memory left. Better go to "help stuck". -10 "no space!" The file system (on which the file which caused the error is being written) is out of space. Very serious!! Contact someone in your local UNIX Support Group immediately! Also, if you can remove any files please do so. -11 "errno = ..., function = `...'" An unusual and unexpected error occured. Try "help stuck". -12 "SIGNAL: ..." This error is most likely due to an intermittent hardware error. You should report this to your local UNIX support group immediately, since others may be getting the same error and it is useful to discover a pattern if one exists. After reporting it, if you rerun the command it will probably not recur. If it won't go away contact your UNIX counsellor (a program bug can also generate this error). (If required, a core dump will be produced if the file "dump.core" exists in the current directory.) -13 "fputs() could not write to file" This error is caused by failure of the fputs library call. A file could not be written to by the fputs function. Try command again later. If continues to occure contact local UNIX support group. 0707070000020177641006440000020000020000030650230000017757000002000000004612usr/lib/help/vc*sccs @(#)libhelp:vc 1.1 * * Messages for the vc command. * -1 "unknown command on line ..." The line given begins with a control character, but the command is not a legal one. -2 "`...' never used" The given keyword name was never used in any replacements. This is only a warning. -3 "`...' never declared" The given keyword name never occured in a `dcl' statement. If you did declare it, check for typos. This is only a warning. -4 "`If' with no matching `end'" There is a missing `end' statement, or an extra `if' statement. -5 "`...' declared twice on line ..." The named keyword has been redeclared on the indicated line. -6 "out of space" A maximum of 40 keywords per invocation of vc are allowed. This limit has been exceeded. -7 "unmatched `:' on line ..." On the given line there is no control character to indicate the end of the keyword name. -8 "keyword name too long on line ..." On the indicated line a keyword name exceeds nine characters. -9 "invalid keyword name on line ..." On the indicated line the keyword name does not start with an alphabetic character, or does not contain only alphanumeric characters. -10 "`end' without matching `if' on line ..." There is an extra `end' statement or a missing `if' statement. -11 "parenthesis error on line ..." A left parenthesis occured with no matching right parenthesis or a parenthesis was found where it was not expected. -12 "invalid operator on line ..." An unrecognized operator was found. The legal operators are `!=', `=', `<', and `>'. -14 "non-numerical value on line ..." On the indicated line an attempt was made to compare a string which contains non-numeric characters with another string using the `<' or `>' operator. -15 "err statement on line ..." The user has put an `err' statement on the given line. -16 "out of space [line ...]" The indicated line requires too many replacements. Currently, only 32 replacements per line are allowed. -17 "syntax on line ..." The equal sign has been left out of an `asg' statement, or the right side of an `asg' statement is missing. -18 "syntax on line ..." The syntax for the `if' statement on the indicated line is incorrect. An `&' or an `|' occurred in the wrong place, or were not found when they were expected. -19 "syntax on line ..." There is something strange about the indicated line. -20 "`...' never assigned a value" The given keyword name was never used in an assignment statement. This is only a warning. 0707070000020306330407750000020000020000020616320404252672400001400000000000usr/lib/lex0707070000020301251006440000020000020000031677220000017757000002300000007635usr/lib/lex/ncform#sccs "@(#)lex/form:ncform 1.1" int yylineno =1; # define YYU(x) x # define NLSTATE yyprevious=YYNEWLINE char yytext[YYLMAX]; struct yysvf *yylstate [YYLMAX], **yylsp, **yyolsp; char yysbuf[YYLMAX]; char *yysptr = yysbuf; int *yyfnd; extern struct yysvf *yyestate; int yyprevious = YYNEWLINE; yylook(){ register struct yysvf *yystate, **lsp; register struct yywork *yyt; struct yysvf *yyz; int yych, yyfirst; struct yywork *yyr; # ifdef LEXDEBUG int debug; # endif char *yylastch; /* start off machines */ # ifdef LEXDEBUG debug = 0; # endif yyfirst=1; if (!yymorfg) yylastch = yytext; else { yymorfg=0; yylastch = yytext+yyleng; } for(;;){ lsp = yylstate; yyestate = yystate = yybgin; if (yyprevious==YYNEWLINE) yystate++; for (;;){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"state %d\n",yystate-yysvec-1); # endif yyt = yystate->yystoff; if(yyt == yycrank && !yyfirst){ /* may not be any transitions */ yyz = yystate->yyother; if(yyz == 0)break; if(yyz->yystoff == yycrank)break; } *yylastch++ = yych = input(); yyfirst=0; tryagain: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"char "); allprint(yych); putchar('\n'); } # endif yyr = yyt; if ( (int)yyt > (int)yycrank){ yyt = yyr + yych; if (yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } } # ifdef YYOPTIM else if((int)yyt < (int)yycrank) { /* r < yycrank */ yyt = yyr = yycrank+(yycrank-yyt); # ifdef LEXDEBUG if(debug)fprintf(yyout,"compressed state\n"); # endif yyt = yyt + yych; if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transitions */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } yyt = yyr + YYU(yymatch[yych]); # ifdef LEXDEBUG if(debug){ fprintf(yyout,"try fall back character "); allprint(YYU(yymatch[yych])); putchar('\n'); } # endif if(yyt <= yytop && yyt->verify+yysvec == yystate){ if(yyt->advance+yysvec == YYLERR) /* error transition */ {unput(*--yylastch);break;} *lsp++ = yystate = yyt->advance+yysvec; goto contin; } } if ((yystate = yystate->yyother) && (yyt= yystate->yystoff) != yycrank){ # ifdef LEXDEBUG if(debug)fprintf(yyout,"fall back to state %d\n",yystate-yysvec-1); # endif goto tryagain; } # endif else {unput(*--yylastch);break;} contin: # ifdef LEXDEBUG if(debug){ fprintf(yyout,"state %d char ",yystate-yysvec-1); allprint(yych); putchar('\n'); } # endif ; } # ifdef LEXDEBUG if(debug){ fprintf(yyout,"stopped at %d with ",*(lsp-1)-yysvec-1); allprint(yych); putchar('\n'); } # endif while (lsp-- > yylstate){ *yylastch-- = 0; if (*lsp != 0 && (yyfnd= (*lsp)->yystops) && *yyfnd > 0){ yyolsp = lsp; if(yyextra[*yyfnd]){ /* must backup */ while(yyback((*lsp)->yystops,-*yyfnd) != 1 && lsp > yylstate){ lsp--; unput(*yylastch--); } } yyprevious = YYU(*yylastch); yylsp = lsp; yyleng = yylastch-yytext+1; yytext[yyleng] = 0; # ifdef LEXDEBUG if(debug){ fprintf(yyout,"\nmatch "); sprint(yytext); fprintf(yyout," action %d\n",*yyfnd); } # endif return(*yyfnd++); } unput(*yylastch); } if (yytext[0] == 0 /* && feof(yyin) */) { yysptr=yysbuf; return(0); } yyprevious = yytext[0] = input(); if (yyprevious>0) output(yyprevious); yylastch=yytext; # ifdef LEXDEBUG if(debug)putchar('\n'); # endif } } yyback(p, m) int *p; { if (p==0) return(0); while (*p) { if (*p++ == m) return(1); } return(0); } /* the following are only used in the lex library */ yyinput(){ return(input()); } yyoutput(c) int c; { output(c); } yyunput(c) int c; { unput(c); } 0707070000020301261006440000020000020000031677260000017757000002300000006072usr/lib/lex/nrform#sccs "@(#)lex/form:nrform 1.1" block data integer cshift, csize, yynlin common /yyllib/ cshift, csize, yynlin data yynlin/YYNEWLINE/ end block data common /yyldat/ yyfnd, ymorf, yyprev, yybgin, yytop integer yyfnd, yymorf, yyprev, yybgin, yytop data yybgin/1/ data yyprev/YYNEWLINE/ data yytop/YYTOPVAL/ end integer function yylook(dummy) common /Lverif/ verif common /Ladvan/ advan common /Lstoff/ stoff common /Lsfall/ sfall common /Latable/ atable common /Lextra/ extra common /Lvstop/ vstop integer verif(Sverif), advan(Sadvan),stoff(Sstoff),match(Smatch) integer sfall(Ssfall),atable(Satable),extra(Sextra), vstop(Svstop) integer state, lsp, r integer ch, n common /yyldat/ yyfnd, yymorf, yyprev, yybgin, yytop, yylsp, yylsta(YYLMAX) common /yyxel/ yyleng, yytext integer yyfnd, yymorf, yylsta, yylsp, yytext, yyprev, yyleng, yytop integer lexshf, yytext(YYLMAX), yyback, yybgin integer z, t if (yymorf .eq. 0) yyleng = 0 else yymorf=0 1776 lsp = 1 state = yybgin if (yyprev .eq. YYNEWLINE) state = state + 1 for (;;){ r = stoff(state) if (r .eq. 0){ z = sfall(state) if (z .eq. 0) break if(stoff(z) == 0) break } ch = input(dummy) ich = lexshf(ch) yyleng = yyleng+1 yytext(yyleng) = ch 1984 if(r .gt. 0){ t = r + ich if (t<= yytop){ if (verif(t) .eq. state){ if(advan(t) == YYERROR){ call unput(yytext(yyleng)) yyleng = yyleng - 1 break } state = advan(t) yylsta(lsp) = state lsp = lsp +1 goto 2001 } } } if(r < 0){ t = r + ich if (t <= yytop .and. verif(t) .eq. state){ if(advan(t) == YYERROR){ call unput(yytext(yyleng)) yyleng = yyleng - 1 break } state = advan(t) yylsta(lsp) = state lsp = lsp +1 goto 2001 } t = r + match(ich) if(t <= yytop && state == verif(t)){ if(advan(t) == YYERROR){ call unput(yytext(yyleng)) yyleng = yyleng - 1 break } state = advan(t) yylsta(lsp) = state lsp = lsp + 1 goto 2001 } } else { if (state > 0) state = sfall(state) if (state .gt. 0) r = stoff(state) if (state .gt. 0 .and. r .ne. 0) goto 1984 call unput(yytext(yyleng)) yyleng = yyleng -1 break } 2001 continue } while (lsp .gt. 1){ lsp = lsp -1 ilsp = yylsta(lsp) yyfnd = atable(ilsp) if (yyfnd .gt. 0) if (vstop(yyfnd) .gt. 0){ r = vstop(yyfnd) if (extra(r) .ne. 0){ for(;;){ ilsp = yylsta(lsp) if (yyback(atable(ilsp), -r) .eq. 1) break lsp= lsp -1 call unput(yytext(yyleng)) yyleng = yyleng -1 } } yyprev = lexshf(yytext(yyleng)) yylsp = lsp yyfnd = yyfnd + 1 yylook = r yytext(yyleng+1) = 0 return } call unput(yytext(yyleng)) } if (yytext(1) .eq. 0){ yylook=0 return } yyprev = input(dummy) call output(yyprev) yyprev = lexshf(yyprev) yyleng = 0 goto 1776 end integer function yyback (isub, n) common /Lvstop/ vstop integer vstop(Svstop) if (isub .ne. 0) while (vstop(isub) .ne. 0){ if (vstop(isub) .eq. m){ yyback = 1 return } isub = isub + 1 } yyback = 0 return end 0707070000020177671006440000020000020000030753500000017757000002100000033110usr/lib/lib300.a! / 545757473 0 0 0 476 ` / 66 . D-t///////////////////arcboxcircleclosevtclosepldoteraselinecontilinelinemodpointlabelspaceabvalxconvyconvinplotoutplotspewtobotleftresetdist2swapmovepxscyscmovexnowynowITTYPTTYOUTFHEIGHTWIDTHOFFSETxscalexoffsetyscalebotxbotyobotxobotyscalexscaleyopenplopenvtarc.o/ 545757352 0 0 100644 310 ` R .text .data@.bssNVN^Nu.filegarc.c.text.data.bssarcbox.o/ 545757359 0 0 100644 502 ` R 0 .texth .datahh@.bsshhNV. /.NXO./.NXO./.NXO. /.NXO. /.NXO./.NXON^Nu  . > N ^ .filegbox.c.texth.datah.bsshboxmovecontcircle.o/ 545757367 0 0 100644 310 ` R .text .data@.bssNVN^Nu.filegcircle.c.text.data.bsscircleclose.o/ 545757374 0 0 100644 444 ` R .text( .data((@.bss((NVNN^NuNV.NNN^NuNq   .filegclose.c.text(.data(.bss(closevtclosepl _iobfflushresetdot.o/ 545757380 0 0 100644 310 ` R .text .data@.bssNVN^Nu.filegdot.c.text.data.bssdoterase.o/ 545757388 0 0 100644 478 ` R  ".text@ .data@@@.bssHHNVB`p .NR .N.D/9@NXOJmN^NuNq@P  $*0 .filegerase.c.text@.data@.bssHerasespewltodb__dbsub__line.o/ 545757408 0 0 100644 2382 ` R !".textTD .data 4@.bssNV.N.N./.NXO/NXO//. NXO/NXO//.NXO/NXO/NRO N^NuNV. N.N./.NXO/NXO//9/9N O N^NuNV. /.NXO././. /.NO -@-A./NXO./9NXON-@ .N-@ . N-@ .N./9NXOJm| `| .N./9NXOJm| `| Jf-y-y`n .N-@-A .N./.NXON-@ .N-@-A .N./.NXON-@NB`hN-@-A .N./.NXO-@-A 9N-@-A .N./.NXO./.NXON-@ѹ.N-@`.HH.N .SJn .N-@-A .N./.NXO-@-A 9N-@-A . N./.NXO./.NXON-@ѹ.N-@`.HH.N .SJnp..NR .oNN^Nu@   ( 6 @ N X v ~    0>DJPntz .@N^dv $2BJT^t .filegline.c.textD.data .bsslinecontlyscyconvxscxconvilineynowxnowmovepdist2sqrtdbdiv__dbtol__ltofl__fltodb__dbsub__ltodb__dbtofl__inplotdbmul__dbadd__abvalspewoutplotlinmod.o/ 545757414 0 0 100644 310 ` R .text .data@.bssNVN^Nu.fileglinmod.c.text.data.bsslinemodpoint.o/ 545757438 0 0 100644 408 ` R .text$ .data$$@.bss((NV. /.NXO.$NN^Nu.  .filegpoint.c.text$.data$.bss(pointmovelabellabel.o/ 545757395 0 0 100644 564 ` R 8".textT .dataTT@.bss\\NV`6 9N.X/9TNXON#.N nRHH-@fN^Nu@   ( . 8 .fileglabel.c.textT.dataT.bss\labelxnowltodb__dbadd__dbtol__spewspace.o/ 545757446 0 0 100644 928 ` R ".textL .dataD@.bssNV## .N# . N# .N-@-A 9N./.NXON# . N-@-A 9N./.NXON#N^Nu   $ . 4 BPVdlr.filegspace.c.text.data.bssspacebotxbotyltofl__obotxobotyltodb__deltxfltodb__dbdiv__dbtofl__scalexdeltyscaleysubr.o/ 545757463 0 0 100644 3426 ` R  2".textd` .datadd @.bssNVJm .N^Nu .D`NV. .NйN^NuNV. .NN^NuNVp.N*N^NuNVp.Np.N.NN^NuNVp f.Sm yRr`.p/NXOSm yR. N^Nu.p. /NXO`NV.HyNXON^NuNV.p/NXOp.NV.N.HxT/9NPOBNN^NuNV .N-@ . N-@ .N-@-A .N-@-A .N./.NXO-@-A .N./.NXO./.NXON^NuNV n-P"n n N^NuNV .f . g ."9j DD`N^Nu≰lp .N*B .N.h/9dNXON-@ 9lp `p-@ .N.p/9lNXO-@-A 9N./.NXON#.N-@`.N| .SJf ..N-@N$`.NN .SJfN . N.x/9tNXON-@ 9 lp `p -@ .N./9|NXO-@-A 9N./.NXON#.N-@`.N .SJf . .N-@N>`.Nh .SJfN4## ` NV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^NuNV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^NuNq@@@ @ ( 2 8 NX 2BHNX^h~   ! !"4%@&L%n%x%~'()%'!%'")%,%^&d'jpv(~)&'!&'")&&B%J&X+^ l,r - '.!")/ 0 1  '..>!N"V).filegsubr.c.textd`.datad .bssabvalxconvyconv@xscaleldiv__xoffsetinplot`yscaleoutplotpspew_iobfflush_flsbufreset"movedist2psignalITTYOUTFioctlexitswap ltofl__fltodb__dbmul__dbadd__movep*xscRxnowynowltodb__dbdiv__dbtol__yscobotxscalexbotxdbsub__obotyscaleybotytobotleftmove.o/ 545757420 0 0 100644 502 ` R .text< .data<<@.bss<<NV. N.N./.NXO/NXO/NXON^Nu   ( 2 .filegmove.c.text<.data<.bss<moveyscyconvxscxconvmovepopen.o/ 545757431 0 0 100644 1638 ` R #".text\8, .data\\P@.bssNVp##p#.N.HxT/9NPO.p/NXO |"|""""2y.HxT/9NPO 9`N./ 9"9NXO./ 9"9NXON# 9\N./ 9"9NXO./ 9"9NXON# 9dN./9NXON#N^NuNVNN^NuNq@@??@N@@H@@N   "( 2 8@JR X j r x   !"  !" &,28 @"F.filegopen.c.text\,.data\P.bssxnowynowITTYPTTYOUTFHEIGHT\WIDTH`OFFSETdxscalexoffsetyscalebotxhbotylobotxpobotytscalexxscaley|openplopenvtNprintfioctlresetsignalfltodb__dbmul__dbdiv__dbtol__0707070000020177701006440000020000020000030616560000017757000002200000032342usr/lib/lib300s.a! / 545757607 0 0 0 486 ` 0*@@ 8 H,.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@.@arcboxcircleclosevtclosepldoteraselinecontilinelinemodpointlabelspaceabvalxconvyconvinplotoutplotspewtobotleftresetdist2swapmovepxscdelayyscmovexnowynowITTYPTTYOUTFHEIGHTWIDTHOFFSETxscalexoffsetyscalebotxbotyobotxobotyscalexscaleyopenplopenvtarc.o/ 545757485 0 0 100644 310 ` R - .text .data@.bssNVN^Nu.filegarc.c.text.data.bssarcbox.o/ 545757492 0 0 100644 502 ` R 40 .texth .datahh@.bsshhNV. /.NXO./.NXO./.NXO. /.NXO. /.NXO./.NXON^Nu  . > N ^ .filegbox.c.texth.datah.bsshboxmovecontcircle.o/ 545757497 0 0 100644 310 ` R 9 .text .data@.bssNVN^Nu.filegcircle.c.text.data.bsscircleclose.o/ 545757505 0 0 100644 444 ` R @ .text( .data((@.bss((NVNN^NuNV.NNN^NuNq   .filegclose.c.text(.data(.bss(closevtclosepl _iobfflushresetdot.o/ 545757511 0 0 100644 310 ` R G .text .data@.bssNVN^Nu.filegdot.c.text.data.bssdoterase.o/ 545757519 0 0 100644 478 ` R O ".text@ .data@@@.bssHHNVB`p .NR .N.D/9@NXOJmN^NuNq@P  $*0 .filegerase.c.text@.data@.bssHerasespewltodb__dbsub__line.o/ 545757539 0 0 100644 2376 ` R c!".textXC .data 8@.bssNV.N.N./.NXO/NXO//. NXO/NXO//.NXO/NXO/NRO N^NuNV. N.N./.NXO/NXO//9/9N O N^NuNVH. /.NXO././. /.NO -@-A./NXO./9NXON-@ .N-@ . N-@N./9NXOJlp`p .N./9NXOJlp`pЀ0@Jf-y-y`n .N-@-A .N./.NXON-@ .N-@-A .N./.NXON-@N.HH.NB`VN-@-A .N./.NXO-@-A 9N-@-A .N./.NXO./.NXON@HHѹ.HH.N@ .N-@-A .N./.NXO-@-A 9N-@-A . N./.NXO./.NXON@HHѹ.HH.N@.HH@@.HH.NR .oNLN^Nu@   ( 6 @ N X v ~    $6@FLRjpv| 0>P^nt .>FTd .filegline.c.textC.data .bsslinecontlyscyconvxscxconvilineynowxnowmovepdist2sqrtdbdiv__dbtol__ltofl__fltodb__dbsub__ltodb__dbtofl__inplotspewdbmul__dbadd__abvaloutplotlinmod.o/ 545757546 0 0 100644 310 ` R j .text .data@.bssNVN^Nu.fileglinmod.c.text.data.bsslinemodpoint.o/ 545757570 0 0 100644 408 ` R ".text$ .data$$@.bss((NV. /.NXO.$NN^Nu.  .filegpoint.c.text$.data$.bss(pointmovelabellabel.o/ 545757526 0 0 100644 564 ` R V8".textT .dataTT@.bss\\NV`6 9N.X/9TNXON#.N nRHH-@fN^Nu@   ( . 8 .fileglabel.c.textT.dataT.bss\labelxnowltodb__dbadd__dbtol__spewspace.o/ 545757578 0 0 100644 928 ` R ".textL .dataD@.bssNV## .N# . N# .N-@-A 9N./.NXON# . N-@-A 9N./.NXON#N^Nu   $ . 4 BPVdlr.filegspace.c.text.data.bssspacebotxbotyltofl__obotxobotyltodb__deltxfltodb__dbdiv__dbtofl__scalexdeltyscaleysubr.o/ 545757596 0 0 100644 3064 ` R f2".text; .data@.bssNVJm .N^Nu .D`NV. .NйN^NuNV. .NN^NuNVp.NBpP.N:N^NuNVp.N*p.N"p.Np.N.NN^NuNVSm yR. N^Nu.p. /NXO`NV.HyNXON^NuNV.p/NXON\.HxT/9NPOBNN^NuNV .N-@ . N-@ .N-@-A .N-@-A .N./.NXO-@-A .N./.NXO./.NXON^NuNV n-P"n n N^NuNVH 9f 9 g*N@ .-@ . -@Jlp` LN^NupЀ$Jlp`pr4-A.N-@.N-@p. .N-@p. .N-@ .మm .-@-@oR.@p@-@Jop8Jop.HH.` .SJg.NNJ` .మgXo .-@px` .ܐ-@pG-@.@HH.` .SJg.N>N` ."瀐Ѐ".-A ."瀐Ѐ".-Ap@-@Bplp-@p8_pl*p-@pؑ`.NNr.NNf .SJfJnJo$.NNB .@@.NN*## N4`NV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^NuNV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^NuNVB`p.HxT/9NPORpnN^NuNq( 2 8 NX  *0:Pbp   ! !"%&(%6&  6%>&P)V d*j x+~ ,-!"./ 0 1 ,&-6!F"N.nt.filegsubr.c.text;.data.bssabvalxconvyconv@xscaleldiv__xoffsetinplot`yscaleoutplotxspew_iobfflush_flsbufresetmovedist2BsignalITTYOUTFioctlexitswapltofl__fltodb__dbmul__dbadd__movepxscJxnowynowdelayZyscobotxscalexbotxltodb__dbsub__dbtol__obotyscaleybotytobotleftmove.o/ 545757553 0 0 100644 502 ` R q.text< .data<<@.bss<<NV. N.N./.NXO/NXO/NXON^Nu   ( 2 .filegmove.c.text<.data<.bss<moveyscyconvxscxconvmovepopen.o/ 545757562 0 0 100644 1638 ` R z#".text\8, .data\\P@.bssNVp##p#.N.HxT/9NPO.p/NXO |"|""""2y.HxT/9NPO 9`N./ 9"9NXO./ 9"9NXON# 9\N./ 9"9NXO./ 9"9NXON# 9dN./9NXON#N^NuNVNN^NuNq@@??@N@@H@@N   "( 2 8@JR X j r x   !"  !" &,28 @"F.filegopen.c.text\,.data\P.bssxnowynowITTYPTTYOUTFHEIGHT\WIDTH`OFFSETdxscalexoffsetyscalebotxhbotylobotxpobotytscalexxscaley|openplopenvtNprintfioctlresetsignalfltodb__dbmul__dbdiv__dbtol__0707070000020177711006440000020000020000031375120000017757000002200000030274usr/lib/lib4014.a! / 545757740 0 0 0 354 ` # 2 b,6'z)@)@)@)@)@)@)@)@)@)@)@)@)@boxcircleclosevtclosepldoteraselbl_mvlbl_umvlabellinelinemodopenvtopenplpointscalespacedelsteparcquadabsmoveobotxobotybotxbotyscalexscaleyscaleflagoloyohiyohixoextracontputchbox.o/ 545757634 0 0 100644 502 ` R 0 .texth .datahh@.bsshhNV. /.NXO./.NXO./.NXO. /.NXO. /.NXO./.NXON^Nu  . > N ^ .filegbox.c.texth.datah.bsshboxmovecontcircle.o/ 545757641 0 0 100644 386 ` R .text8 .data88@.bss88NV. .Ю//. .Ю//. /.NON^NuNq* .filegcircle.c.text8.data8.bss8circlearcclose.o/ 545757649 0 0 100644 494 ` R  .text< .data<<@.bss<<NVp.N.NN^NuNVp.N.NN^Nu   ( . 4 .filegclose.c.text<.data<.bss<closevtcloseplputch_iobfflushdot.o/ 545757655 0 0 100644 310 ` R .text .data@.bssNVN^Nu.filegdot.c.text.data.bssdoterase.o/ 545757661 0 0 100644 548 ` R .textD .dataDD@.bssDDNVp.Np .Np##p##p.NN^NuNq   " * 0 :.filegerase.c.textD.dataD.bssDeraseputchohiyohixoextraoloysleeplabel.o/ 545757670 0 0 100644 562 ` R Z .textt( .datatt(@.bssNVH t` .NR |t0(HHJft` .NR n0(HHJft` .NR |0(HHJfL N^Nu HHHHHHJJJJJJJJJJ DDDDDDEEEEEEEEEE 2 P X.fileglabel.c.textt.datat(.bsslbl_mvtlbl_umvlabelputchline.o/ 545757677 0 0 100644 398 ` R .text( .data((@.bss((NV. /.NXO./.NXON^Nu  .filegline.c.text(.data(.bss(linemovecontlinemod.o/ 545757684 0 0 100644 464 ` R  .text| .data||@.bss||NVp.N nHH @dg8 @lg* @sf nJ(g>|c.HH.NN^Nu|d` n (dg|a`|b`|``Nq F .fileglinemod.c.text|.data|.bss|linemodputchopen.o/ 545757697 0 0 100644 336 ` R  .text .data@.bssNVN^NuNVN^Nu.filegopen.c.text.data.bssopenvtopenplpoint.o/ 545757703 0 0 100644 398 ` R  .text( .data((@.bss((NV. /.NXO. /.NXON^Nu  .filegpoint.c.text(.data(.bss(pointmovecontscale.o/ 545757711 0 0 100644 974 ` R ".text .data0@.bss@@NV. HH @cg @igT @ugN^Nu./9 . ".NXO-@ -A./9 .".NXO-@-A.$/9 . ".NXO-@ -A.,/9( .".NXO-@-A./. 90"94NXON#./. 98"9 / 545757873 0 0 0 476 ` / 66 . D-/P/P/P/P/P/P/P/P/P/P/P/P/P/P/P/P/P/P/Parcboxcircleclosevtclosepldoteraselinecontilinelinemodpointlabelspaceabvalxconvyconvinplotoutplotspewtobotleftresetdist2swapmovepxscyscmovexnowynowITTYPTTYOUTFHEIGHTWIDTHOFFSETxscalexoffsetyscalebotxbotyobotxobotyscalexscaleyopenplopenvtarc.o/ 545757750 0 0 100644 310 ` R 6 .text .data@.bssNVN^Nu.filegarc.c.text.data.bssarcbox.o/ 545757757 0 0 100644 502 ` R =0 .texth .datahh@.bsshhNV. /.NXO./.NXO./.NXO. /.NXO. /.NXO./.NXON^Nu  . > N ^ .filegbox.c.texth.datah.bsshboxmovecontcircle.o/ 545757763 0 0 100644 310 ` R C .text .data@.bssNVN^Nu.filegcircle.c.text.data.bsscircleclose.o/ 545757770 0 0 100644 444 ` R J .text( .data((@.bss((NVNN^NuNV.NNN^NuNq   .filegclose.c.text(.data(.bss(closevtclosepl _iobfflushresetdot.o/ 545757776 0 0 100644 310 ` R P .text .data@.bssNVN^Nu.filegdot.c.text.data.bssdoterase.o/ 545757786 0 0 100644 478 ` R Z ".text@ .data@@@.bssHHNVB`p .NR .N.D/9@NXOJmN^NuNq@P  $*0 .filegerase.c.text@.data@.bssHerasespewltodb__dbsub__line.o/ 545757805 0 0 100644 2382 ` R m!".textTD .data 4@.bssNV.N.N./.NXO/NXO//. NXO/NXO//.NXO/NXO/NRO N^NuNV. N.N./.NXO/NXO//9/9N O N^NuNV. /.NXO././. /.NO -@-A./NXO./9NXON-@ .N-@ . N-@ .N./9NXOJm| `| .N./9NXOJm| `| Jf-y-y`n .N-@-A .N./.NXON-@ .N-@-A .N./.NXON-@NB`hN-@-A .N./.NXO-@-A 9N-@-A .N./.NXO./.NXON-@ѹ.N-@`.HH.N .SJn .N-@-A .N./.NXO-@-A 9N-@-A . N./.NXO./.NXON-@ѹ.N-@`.HH.N .SJnp..NR .oNN^Nu@   ( 6 @ N X v ~    0>DJPntz .@N^dv $2BJT^t .filegline.c.textD.data .bsslinecontlyscyconvxscxconvilineynowxnowmovepdist2sqrtdbdiv__dbtol__ltofl__fltodb__dbsub__ltodb__dbtofl__inplotdbmul__dbadd__abvalspewoutplotlinmod.o/ 545757811 0 0 100644 310 ` R s .text .data@.bssNVN^Nu.fileglinmod.c.text.data.bsslinemodpoint.o/ 545757834 0 0 100644 408 ` R .text$ .data$$@.bss((NV. /.NXO.$NN^Nu.  .filegpoint.c.text$.data$.bss(pointmovelabellabel.o/ 545757793 0 0 100644 564 ` R a8".textT .dataTT@.bss\\NV`6 9N.X/9TNXON#.N nRHH-@fN^Nu@   ( . 8 .fileglabel.c.textT.dataT.bss\labelxnowltodb__dbadd__dbtol__spewspace.o/ 545757842 0 0 100644 866 ` R  ".textD .data,@.bssNV## .N# . N# .N./ 9"9NXON# . N./ 9"9NXON#N^Nu@@   $ . 4 BLRX`ft~.filegspace.c.text.data.bssspacebotxbotyltofl__obotxobotyltodb__dbdiv__dbtofl__scalexscaleysubr.o/ 545757862 0 0 100644 3402 ` R 2".text` ^ .data`` @.bssNVJm .N^Nu .D`NV. .NйN^NuNV. .NN^NuNVp.N2p3.N*N^NuNVp.Np4.N.NN^NuNVp f4Sm yRr`.p/NXOp -@Sm yR. N^Nu.p. /NXO`NV.HyNXON^NuNV.p/NXON0.HxT/9NPOBNN^NuNV .N-@ . N-@ .N-@-A .N-@-A .N./.NXO-@-A .N./.NXO./.NXON^NuNV n-P"n n N^NuNV .f . g ."9j DD`N^Nu≰lp .N4B .N.d/9`NXON-@ 9lp `p-@ .N.l/9hNXO-@-A 9N./.NXON#.N-@`.N .SJf ..N-@N&`.NX .SJfN$ . N.t/9pNXON-@ 9 lp `p -@ .N.|/9xNXO-@-A 9N./.NXON#.N-@`.N .SJf . .N-@N@`.Nr .SJfN>## ` NV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^NuNV 9N-@-A 9N-@-A 9N-@-A .N./.NXO./.NXO./.NXON-@N^Nu@@@ @ ( 2 8 NX  &@LV\f|   ! !"2%>&J%l%v%|'()%'!%'")%*%\&b'hnt(|)&'!&'")&&@%H&V+\ j,p ~- '.!")/ 0 1 ',.<!L"T).filegsubr.c.text`^.data` .bssabvalxconvyconv@xscaleldiv__xoffsetinplot`yscaleoutplotxspew_iobfflush_flsbufreset0movedist2nsignalITTYOUTFioctlexitswap ltofl__fltodb__dbmul__dbadd__movep(xscPxnowynowltodb__dbdiv__dbtol__yscobotxscalexbotxdbsub__obotyscaleybotytobotleftmove.o/ 545757818 0 0 100644 502 ` R z.text< .data<<@.bss<<NV. N.N./.NXO/NXO/NXON^Nu   ( 2 .filegmove.c.text<.data<.bss<moveyscyconvxscxconvmovepopen.o/ 545757827 0 0 100644 1776 ` R h$".textt2 .dataP$@.bssNVp##p#.N.HxT/9NPO.p/NXO |"|""""2y.HxT/9NPOp.Np.Np .Np.Np.Np .N 9N./ 9"9NXO./ 9"9NXON# 9N./ 9"9NXO./ 9"9NXON# 9N./9NXON#N^NuNVNpN^NuNq@@??@N@@H@@N   "( 2 8@JR X j r x   !"# $*0!<BH"P#V\b hnt!|#.filegopen.c.text2.dataP.bssxnowynowITTYPTTYOUTFHEIGHTWIDTHOFFSETxscalexoffsetyscalebotxbotyobotxobotyscalexscaleyopenplopenvtprintfioctlresetsignalputcharfltodb__dbmul__dbdiv__dbtol__0707070000020220761006440000020000020000031170540000017757000002400000115516usr/lib/libcurses.a! / 545756626 0 0 0 1178 ` y 4,,!$$$&&&)H)H:0;><@C$C$C$C$C$C$C$Y*Y*Y*Y*Y*hjloqtvz{P}888888888888888888888888888888888888888888888888888888888888888888888::T8boxwclearinitscrendwinmvprintwmvwprintwmvscanwmvwscanwmvwinnewwinsubwinoverlayoverwriteprintwwprintw_sprintwscanwwscanw_sscans_winwrefreshtouchwinwerasewclrtobotwclrtoeol_winmvcurfgoto_putcharplodplodputputpadospeedgettmodesettermzapgetcaplongnamedelwinwinsertlnwdeletelnscrollwgetstrwgetchwaddstrwaddchwmove_echoit_rawmodeMy_term_endwinttytypeDef_term_tty_chLINESCOLS_res_flg_res_termstdscrcurscr_tty_sttyAMBSCADADBEOGTHZINMIMSNCOSULXNNONLUPPERCASEnormtty_pfastALBCBTCDCECLCMDCDLDMDOEDEIHOICIMIPLLMANDSESFSOSRTATETIUCUEUPUSVBVEVSPC_unctrlwstandoutwstandendwinschwdelchbox.o/ 545756251 0 0 100644 494 ` R [: .text0 .data@.bssNVH<$n8*H0*HS& j&P "H(qt`.((RmSt`& "j q.H "j qRoJ*f* gp HH.NL Ѐ"j3Rm Іf. Jff Jf Ѕf J`Nq . ` p z    *@R \ hz       , .filegnewwin.c.text@.data@.bss@newwinsubwinLINESCOLSmakenewcfreecallocmallocoverlay.o/ 545756334 0 0 100644 678 ` R  .text$ .data$$@.bss$$NVH<$n&n 0*km0+H-@0*km0+H-@0* k m0+ H-@0*km0+H-@ .2*H, .2* H. .2*H( .2* H*&`t "j qKX0* HЇ$  qIx`DHH"|1f,.0*HЃ/HSNPOJgHH.HSNXORRLcRmLFP^rx~rz *4PVp~  ,4:B!$."<DJ"Vdx# .8@H#Nhz!.filegrefresh.c.text.data.bsslylxcurwin_winwrefresh_endwin_putcharVStputsTIcurscrCLwerasetouchwinCA_iob_flsbufmakechmvcurfflushCECOLSstrlenSESOMSscrollUCtouchwin.o/ 545756396 0 0 100644 382 ` R .textP .dataPP@.bssPPNVH$n6*H0*HS(t` Ѐ"jBq Ѐ"jA"0RmLN^NuNq.filegtouchwin.c.textP.dataP.bssPtouchwinerase.o/ 545756409 0 0 100644 534 ` R t .text .data@.bssNVH<$nt`v "j*q0*I&M`  g-Kpf & RKepgt Ѐ"j01Hn Ѐ qf Ѐ"jA"0 "j(1 Ѐ"j01H".l "j012.@8 Ѐ"j3R0*Hm@p45@L<N^Nu.filegerase.c.text.data.bssweraseclrtobot.o/ 545756420 0 0 100644 580 ` R  .text .data@.bssNVH<<$n6*H4H`x *0*"j"QI "j qG8`&  g*Kpf "j q" ( RKepgp Ѐ"j01Hn Ѐ qf Ѐ"jA"0 "j*1 Ѐ"j01H" l "j01" @: Ѐ"j3vR0*Hm(p45@L<Sm yRr `.p /NXOSJ9fB 9Sn 9 lJ9fJf # . /9/9NPO$@J9g.N.NJo$BNz# #L N^Nu.BHRNPO`NVH. Sm yRLN^Nu.p/NXO`NVH.  HH# *9,9Jg~J9g2 9jDD`"9j DD`Ё$`$9 9m`JjDD`"9jDD`扐&J9g"Jg 9j DD`ր`H 9&`8 9n"J9fJg 9&$` R& 9 (l D(ք й l&.fB/9NPOp##`LJgD 9S ( ЄTl*.fB/9NPOB 9S#J9g2 9j DD`"9jDD`Ё$`$9 9&J9fJ9f 9 mJ9g 9 l Rn" 9ohJ9f^JfTp .NJ9gp .NRB`.Rp .NJ mJ9fJ9fB 9 mJg&.N(`.fB/9NPO 9o"J mRSJfp.N`` 9 o(S.fB/9NPOJ l`J9g 9ro 9jDD`R$n"Jgj.fB/9NPO`X 9rolJf J9gJg*.fB/9NPO`p .Np#`^p .N^#` .fB/9NPO`p.N6 9oSJg` 9lJgJ9 g S ` 9"y2)H-@ 92) H"y"i"Q1HH@H"y2) HAHf0Sm yR`>.p/NXO`(Jg.fB/9NPO`p .N6RJ lJ9 g ## 9 LN^NuNVH. J9 gS LN^NuSm yR`.p/NXO`NVH$n.N.BHRNPOLN^NuNq 8>JPV\bhntz 06<HRX`fl|&.28>DJT^tx~ " #(:Z`f~#$%  *2"8BHP&X`rz&#' (*0:$D%T(djr'))%%  (.6B#LR`x**%$** %"4:BH%RXb lt~  + ,,"4:DLRXv~..filegcr_put.c.text.data.bssoutcoloutlinedestcoldestline plodcnt _winmvcurfgoto,_putcharCOLSldiv__lrem__AM_iob_flsbuf_pfastLINESCAUPCMtgotostrlenplodtputsplodflg plodputfHOGTBSBCLLNONLNCBTTAcurscrNDputpadfflushcr_tty.o/ 545756468 0 0 100644 3884 ` R 4 ,T.textH .data,d`.@.bssNV.HxT/9NPOJm.HxT/9NPO |"|""""2.HxT/9NPOJl |"|""""209@39gp`N^Nupp09@fp`p9fp`p`NVH$nJf$|t.HnNXOrgԁ.HnNXOJf.N#pmp` p0l#Jf.N#pm pP#` o ##N./9/9NPO @ OfB9B`Jg yHH`p#.HnNXO./<NXOJg pLN^Nup`NVH&|$|.N"ZTJf&|(|.HSNXO"\"TJfJfJg##LN^NuNV./.NXO @ N^NuNqxxxx|dumb:licoambseohzinmimsncosulxnalbcbtcdceclcmdcdldmdoedeihoicimipllmandpcsesfsosrtatetiucueupusvbvsve?@A$?.@4A<?BBR?\@bAnBt???C?D?EGH"I*0J6I>ILITIZKbhJnKvKKKKLMMNOP"HHNVRflrzS,44,2*S       $(, 0!4"8#<$@%D&H'L(P)TX*\+`,d-h.l/p0t1x2|34567.filegcr_tty.c.textH.data,..bsssflagsAMBSEOHZINMIMSNCOSULXNxPCsstrsALBCBTCDCECLCMDCDLDMDOEDEIHOICIMIPLLMANDSESFSOSRTATETIUCUEUPUSVBVSVEtspacedestcoldestlineospeedgettmodesetterm_tty_tty_chioctl_sttyGTNONLzap<tgetentstrcpyLINEStgetnumCOLStgotoCAPClongnamettytypegetcaptgetflagtgetstraoftspaceUPPERCASElongname.o/ 545756476 0 0 100644 502 ` R ;B .text .data@.bssNVH$n&n `RJJg :g |f |f4RJ(J`RLJg :g |fTB./<NXO`./<NXO | LN^NuNqNT dj r.fileglongname.c.text.data.bsslongnamestrcpydelwin.o/ 545756484 0 0 100644 446 ` R D .text` .data``@.bss``NVH$n* f,t` .NR0*Hl "jJf.N.NLN^NuNq$ H P .filegdelwin.c.text`.data`.bss`delwincfreeinsertln.o/ 545756495 0 0 100644 714 ` R O .text .data@.bssNVH< $n0*HS"j&q0HЀ"jBq0HЀ"jA2*SA00*HS$`8 S"j*q # Ѐ"jBq Ѐ"jA2*SA0S0Hn0*I` e0H"jA"K 0H"9Sf< 9S& 9S"j"Q 1 gJ*g.N.NSRpL< N^Nup`     .fileginsertln.c.text.data.bssLINESCOLSwrefreshscrollwinsertlndeleteln.o/ 545756505 0 0 100644 472 ` R Y( .text .data@.bssNVH<$n0H"j&q4H`8 R"j*q # Ѐ"jBq Ѐ"jA2*SA0R0*Hm0*I` e0*HS"jA"K L<N^NuNq.filegdeleteln.c.text.data.bsswdeletelnscroll.o/ 545756515 0 0 100644 672 ` R c.textT .data@.bssNVH<$nJ*f pL<N^Nu j(Pt` R"j*q #R0*HSm&L` 2*Hm0*HS"j#SRf:Sm yRr `.p /NXOJ9fBj.Np`Pz        .filegscroll.c.text.data.bssscrollcurscr_iob_flsbufNONLtouchwingetstr.o/ 545756524 0 0 100644 394 ` R l .text@ .data@@@.bss@@NVH $n&n `RK.Ng fJfBpL N^NuBp` .fileggetstr.c.text@.data@.bss@wgetstrwgetchgetch.o/ 545756534 0 0 100644 1178 ` R v2.textp .datapp@.bssppNVH $ntJ*f&* g0*jf0jf L N^NuJ9gNJ9fF B9yyp.HxT/9NPORSm yR@H` .NJ9gX0* H2*HЁ.0*H2HЁ//9NPOJgHH./9NXOHH.HRNXOJgB B9yB9B9.HxT/9NPOHH`Nq> F P V ^ f n t z   & , 4 < B H N X ^.fileggetch.c.textp.datap.bsspwgetch_echoit_rawmode_tty_pfast_tty_chioctl_iob_filbufcurscrwmovewaddchaddstr.o/ 545756543 0 0 100644 390 ` R  .text< .data<<@.bss<<NVH $n&n Jg"HH.HRNXOJfpL N^Nup`" .filegaddstr.c.text<.data<.bss<waddstrwaddchaddch.o/ 545756555 0 0 100644 828 ` R D .text .data@.bssNVH$n4*H6H0*Hl<0*Hl0Jm*Jm$.HHQrbD@0; NJ" 66&pr‚Ђ(`p .HRNXOJgRm`* g. "j q0(.g` Ѐ"j qf Ѐ"jA"08 Ѐ"j3`0 Ѐ"j01Hm Ѐ"j01Ho ЀA"0 ( R"j"Q0*HmLtR0*Hm>J*g.N.NS`$pLN^Nu.NJ9f`Slt 5@ 4p`N V n t .filegaddch.c.text.data.bsswaddchwrefreshscrollNONLwclrtoeolmove.o/ 545756564 0 0 100644 370 ` R .textD .dataDD@.bssDDNVH $n$. &.0*Hl 0*Hm pL N^Nu 5@ 4p`.filegmove.c.textD.dataD.bssDwmovecurses.o/ 545756572 0 0 100644 1592 ` R M.text .data @.bss unknown.filegcurses.c.text.data .bss _echoit_rawmodeMy_term_endwinttytype Def_term_tty_ch LINESCOLS_res_flgstdscrcurscr_tty_sttyAMBSCADADBEOGTHZINMIMSNCOSULXNNONLnormtty_pfastALBCBTCDCECLCMDCDLDMDOEDEIHOICIMIPLLMANDSESFSOSRTATETIUCUEUPUSVBVEVSPC_res_termUPPERCASEunctrl.o/ 545756583 0 0 100644 2386 ` R  .text .data$@.bss$$  !$'*-0369<?BEHKNQTWZ]`bdfhjlnprtvxz|~  ^@^A^B^C^D^E^F^G^H^I^J^K^L^M^N^O^P^Q^R^S^T^U^V^W^X^Y^Z^[^\^]^~^_ !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~^?  $(,048<@DHLPTX\`dhlptx|  $(,048<@DHLPTX\`dhlptx|.filegunctrl.c.text.data$.bss$_unctrlstandout.o/ 545756592 0 0 100644 646 ` R  .text .data@.bssNVH$nJfJf LN^Nu Jg y` y`NVH$nJfJf LN^Nuj Jg y` y`  4 < D Z b ~   .filegstandout.c.text .data.bssJSOUCSEwstandoutwstandendtstp.o/ 545756598 0 0 100644 284 ` R .text .data@.bss.filegtstp.c.text.data.bssinsch.o/ 545756609 0 0 100644 680 ` R  .text .data@.bssNVH<$n0H$0*"j"QK0H$0*HS"j"QGI` KSK"LSLb0HЀ"jA2*SA00HЀ"j qg0HЀ01jo0HЀ"j30H"9Sf< 9S$ 9S"j"Q 1 gJ*g.N.NSRpL<N^Nup`Nq     .fileginsch.c.text.data.bsswinschLINESCOLSwrefreshscrolldelch.o/ 545756619 0 0 100644 474 ` R 8 .text .data@.bssNVH<$n0H$0*HS"j"QK0H$0*HR"j"QIG`ܷe 0HЀ"jA2*SA00HЀ"j qg0HЀ01jo0HЀ"j3pL<N^NuNq.filegdelch.c.text.data.bsswdelch0707070000020177741006440000020000020000030044570000017757000002100000014366usr/lib/libdev.a! / 545758141 0 0 0 194 `  ZZZZgdnamefgdnamegdnlblkisdiskbufferreadvhbfreadvhbsreadvhbgdnsecdismntgdnszcadevnameendpentgetpdestgetpentsetpentgdname.o/ 545758016 0 0 100644 726 ` R @ .text .data@\@.bssNVBHn/.NPOJfJngp`prf N^Nu0.Hr0-@ n 2.A0p"| q`NVBHn/.NPOJfJngp`prf N^Nu0.Hr0-@ n 2.A0p"| q`/dev/rfp000/dev/rfp010/dev/rfp020/dev/rfp??? ^z .fileggdname.c.text.data@.bssdevnamesgdnamefgdnamehstatfstatgdnlblk.o/ 545758033 0 0 100644 414 ` R Q .text8 .data88@.bss88NVHn/.NPO @-HfpN^Nu0n./.NXO`Nq . .fileggdnlblk.c.text8.data8.bss8gdnlblkfreadvhbgdnsecisdisk.o/ 545758049 0 0 100644 374 ` R a .text, .data,,@.bss,,NVB/</.NPO GfpN^Nup`Nq .filegisdisk.c.text,.data,.bss,isdiskioctlreadvhb.o/ 545758068 0 0 100644 676 ` R tr.text, .data@.bssNV. /.NXO-@.N0 @ N^NuNV. /.NXO-@.N @ N^NuNVB/.NXO-@m ./</.NPO g N^Nu.N |`Nq 4 Xlv.filegreadvhb.c.text.data.bssbufferreadvhbfreadvhb&gdnamesreadvhbLfgdnameopenreadclosegdnsec.o/ 545758087 0 0 100644 518 ` R R .textH .data@.bssNV n(f0.H"nC01N^Nu nr2(-A0.HR"HC-qg nm n"H0(-@Jng0.H"nCJfB`0.H"nC 1. .N`p .fileggdnsec.c.text.data.bssgdnseclmul__dismnt.o/ 545758104 0 0 100644 506 ` R 4 .text`  .data`` @.bssNVHtB/</.NPO Gf,HnHxG/.NO nf.`N$ LN^Nu/etc/dismount -f >/dev/tty 2>&1 6 HN .filegdismnt.c.text`.data` .bssdismntioctlsystemgdnszc.o/ 545758119 0 0 100644 378 ` R .text0 .data00@.bss00NV nr2(AH0(H@B@H@./NXON^NuNq$ .fileggdnszc.c.text0.data0.bss0gdnszculmuladevname.o/ 545758129 0 0 100644 876 ` R :.text  .data  @.bss NVH Hn/.NPOJmp0.@`gB/< NXO$mv`Jg 0.nf./<NXOHn/<NPOHn/<NPOJmT0.ȰnfJJg 0.nf<.N | L N^NuBB/NPO SJf .N`p.Hn/NPOrfJnfB`/dev/dev/ 28 \bh tz  .filegadevname.c.text .data  .bss adevnamefstatopenstrcpystrcatstatcloselseekreadpstat.o/ 545758139 0 0 100644 1120 ` R .text4 .data44$@.bssXXNVJ4g.4NB4N^NuNVNJgpN^Nu.N&-@rg. /.NXOJf .`NVJ4f NtJfj.4N#8.4p/Hx/.NO rf4p./< / 545756688 0 0 0 98 `  dallprintsprintprintablemainyyrejectyyraccyylessyywrapallprint.o/ 545756651 0 0 100644 816 ` R &.text .data@.bssNV. HH @g: @ g @ g @ f0. `.`./9NXON^Nu. `. HH.NJf . HH./</9NPO` ySm y"hR. `.p. /NXO`NV`RHH.N* nJfN^NuNVp lpopN^Nup`Nq\n\t\b\b\%-3o&.6< B Nrx ~     .filegallprint.c.text .data.bssallprintsprintyyoutfprintf_flsbufprintablemain.o/ 545756658 0 0 100644 382 ` R .text .data@.bssNVNBNN^NuNq  .filegmain.c.text.data.bssmainyylexexitreject.o/ 545756668 0 0 100644 1371 ` R .text* .data@.bssNVH`$N 9R"|X ye yJoX.NLN^Nu yYcJ 9"|1HH.NS |B yJg P#g`J9fp`N#.NBp`lNV# ."|J1gV`&Y |HH.N .D. y P/(NXOrg b 9"|1HH# 9"|B1 .N^Nu   " , 2 8@J` f lt z             ,: FTX ` f tz  .filegreject.c.text*.data.bssyyrejectyyraccyyinputyylengyytextyylspyyolspyyfndyylstateyyunputyyoutputyyextrayybackyyprevious yyless.o/ 545756675 0 0 100644 607 ` R f .text .data@.bssNVH 9"|EJm( .n"|G`"HH.N`&nbBc "HH# #L N^NuNq  & . B T b j p .filegyyless.c.text .data.bssyylessyylengyytextyyunputyyprevious yywrap.o/ 545756681 0 0 100644 314 ` R .text .data @.bss NVpN^NuNq.filegyywrap.c.text .data .bss yywrap0707070000020177341006440000020000020000061721400000017757000002000000041624usr/lib/libld.a! / 545756933 0 0 0 358 `  D>0000&h(Z*,.0258:>@hAldacloseldaopenldcloseldahreadldlseekldnlseekldnrseekldnsseekldnshreadldopenldrseekldlreadldlinitldlitemldsseekldshreadldfhreadldtbseekldohseekldtbreadldtbindexldgetnamefreeldptrvldldptr_ldheadallocldptrsgetlsputlldaclose.o/ 545756704 0 0 100644 452 ` R .text4 .data44@.bss44NV.NJfpN^Nu n.N.Np`Nq  * .filegldaclose.c.text4.data4.bss4ldaclosevldldptrfclosefreeldptrldaopen.o/ 545756713 0 0 100644 737 ` R ).text .data@.bssNV. NJgN @-Hf` .N N^Nu./.NXO @-Hg n n"n !i n"n 1i./. NXO n"n !i n`NV n "n1i n "n1i n "n!i n "n!i n "n!i n "n1i n "n1iN^Nur  ( 6@ .filegldaopen.c.text.data.bssldaopenvldldptrfopen#allocldptrfreeldptrhdrassign ldclose.o/ 545756723 0 0 100644 832 ` R 3.text .data@.bssNV.NJg n hefB (r.textp .datapp@.bssNVH.NrfR n hefDB (r ^ t~  (2JT.filegldahread.c.textp.datap.bssldahreadvldldptrfseekfreadstrncmpstrncpysscanfldlseek.o/ 545756742 0 0 100644 438 ` R F .textP .dataPP@.bssPPNVHn?.Bg/.NO rf*Jng$B n (Ю//NPOJfpN^Nup` < .filegldlseek.c.textP.dataP.bssPldlseekldshreadfseekldnlseek.o/ 545756750 0 0 100644 452 ` R N .textP .dataPP@.bssPPNVHn/. /.NO rf*Jng$B n (Ю//NPOJfpN^Nup`Nq : .filegldnlseek.c.textP.dataP.bssPldnlseekfseekldnshreadldnrseek.o/ 545756758 0 0 100644 452 ` R V .textP .dataPP@.bssPPNVHn/. /.NO rf*Jng$B n (Ю//NPOJfpN^Nup`Nq : .filegldnrseek.c.textP.dataP.bssPldnrseekfseekldnshreadldnsseek.o/ 545756767 0 0 100644 452 ` R _ .textP .dataPP@.bssPPNVHn/. /.NO rf*Jg$B n (Ю//NPOJfpN^Nup`Nq : .filegldnsseek.c.textP.dataP.bssPldnsseekfseekldnshreadldnshread.o/ 545756776 0 0 100644 612 ` R h~ .text` .data@.bssNV.NrfB nr2( (Ё/ n/NPOJf n=h Bn`LB` ."nJ1g,Rpo ."n1"n gpfpN^NuRn0.nd$ n.p/p(//.NO rgp`Nq 8  .filegldnshread.c.text.data.bssvldldptrfseekfreadldnshreadldopen.o/ 545756787 0 0 100644 1231 ` R sr.text .data@.bssNV. NJf./.NXO @-Hf`.N`.p/p/HnNO rgB.BB/.NPO.p/p/HnNO rfN @-H gp./<HnNPOJf n 1|eBp//.NPOJf.p/p ` %ld  8 R n     .8    .filegldopen.c.text.data.bssldopenvldldptrfopenfclosefreadfseekstrncmpsscanfallocldptrfreeldptr ldrseek.o/ 545756795 0 0 100644 438 ` R { .textP .dataPP@.bssPPNVHn?.Bg/.NO rf*Jng$B n (Ю//NPOJfpN^Nup` < .filegldrseek.c.textP.dataP.bssPldrseekldshreadfseekldlread.o/ 545756810 0 0 100644 1630 ` R  .textH .dataHH @.bssTTNV. /.N&XOrf.?.Bg/.NPON^Nup`NV#NHn/. /.NO rffp0.r0r fT .fJ n.p/p/HnNO rf&Hn0n//.NO rf#Hgp0.Ѐ"ЀЁЮ-@ .Hn 9H\n .HS@3LB n (йH//NPOJf n.p/p/HnNO rfjJnfb . fV N^NuB n (Ю//NPOJf23LJyLg" n.p/p/HnNO rgBHByLBNp`Jnf8 . f.p0.r29LЀ"ЀЁЮ#HSyLp`XSyL`xNVB nNfJHgB (йH/ n/NPOJf n.p/p/HnNO rf\0.nf n1@ n N^Nu=yLJng, n.p/p/HnNO rgp`Jnf .`0.nf n1@ n p`0.nc,Jg n0(ncp-@ n1n n Sn`lNq<N *J0:JXx.filegldlread.c.textH.dataH .bssTlnnoptrHmaxlnnosLNldlreadldlinit4ldlitem"ldtbreadfreadldshreadfseeksaveldptrldsseek.o/ 545756818 0 0 100644 438 ` R .textP .dataPP@.bssPPNVHn?.Bg/.NO rf*Jg$B n (Ю//NPOJfpN^Nup` < .filegldsseek.c.textP.dataP.bssPldsseekldshreadfseekldshread.o/ 545756829 0 0 100644 550 ` R N .text0 .data@.bssNVH.NrfJng|0."ni bl Ir2($Bp0.S"Ё"H")҂Ҁ//NPOJf. n.p/p(//.NO rf LN^Nup`Nq f  .filegldshread.c.text.data.bssldshreadvldldptrfseekfreadldfhread.o/ 545756837 0 0 100644 474 ` R  .textX .dataXX@.bssXXNV.Nrf@B n/(/NPOJf( n.p/p//. NO rf N^Nup` " @ .filegldfhread.c.textX.dataX.bssXldfhreadvldldptrfseekfreadldtbseek.o/ 545756846 0 0 100644 430 ` R .textH .dataHH@.bssHHNV.Nrf0 nJg&B ("nЩ/ I/NPOJfpN^Nup` 4 .filegldtbseek.c.textH.dataH.bssHldtbseekvldldptrfseekldohseek.o/ 545756854 0 0 100644 426 ` R .textD .dataDD@.bssDDNV.Nrf, nJhg"Bp"HЩ/ I/NPOJfpN^Nup` 0 .filegldohseek.c.textD.dataD.bssDldohseekvldldptrfseekldtbread.o/ 545756863 0 0 100644 534 ` R > .text  .data@.bssNVH.NrfvJ mn . "nn^Ѐ"Ё$B n ("HЩЂ/ I/NPOJf. n.p/p//.NO rf LN^Nup` X v .filegldtbread.c.text.data.bssldtbreadvldldptrfseekfreadldtbindex.o/ 545756871 0 0 100644 520 ` R  .text\ .data\\@.bss\\NV.NrfB n.N"n-@m$p. .NJfp. .NN^Nup`Nq  < N .filegldtbindex.c.text\.data\.bss\vldldptrftelllrem__ldiv__ldtbindexldgetname.o/ 545756882 0 0 100644 1192 ` R h.text< .data 0@.bss NVH $n&n .Nrg`4B/./NPO` JfF 9f 9gJg .N *Ѐ"ЁЪ-@.N-@B *Ю//NPOJf~.p/p//<NO rf\.N @#gD. 9Y/p/HhNO "9YfB/./NPOJf 9S"yJ1f## 9n L N^Nu y./<NXO @`p.HS/<NPOB9 |` . @LZbh      &.>FLfrx.filegldgetname.c.text.data .bss vldldptrfseekfreeftellfreadmallocstrcpystrncpyldgetnamefreeldptr.o/ 545756900 0 0 100644 500 ` R  .textl .datall@.bssllNVJg^ yf #"`&-y`6 n h"f n"n!i"".NpN^Nu n-h"Jfp`  $ N .filegfreeldptr.c.textl.datal.bssl_ldheadfreefreeldptrvldldptr.o/ 545756907 0 0 100644 382 ` R .text4 .data44@.bss44NV-y` nfpN^Nu n-h"Jfp`Nq .filegvldldptr.c.text4.data4.bss4vldldptr_ldheadallocldptr.o/ 545756892 0 0 100644 549 ` R P .text .data @.bssNVp&.p/NXO @-Hf N^Nu nB"Jf #`(-y` n-h" nJ"f n!n"R n!y n` .8@hr.filegallocldptr.c.text.data.bss_ldheadcallocallocldptr sgetl.o/ 545756915 0 0 100644 346 ` R .text, .data,,@.bss,,NVH $ntv `p稄Ql L N^Nu.filegsgetl.c.text,.data,.bss,sgetlsputl.o/ 545756922 0 0 100644 346 ` R .text, .data,,@.bss,,NVH $.$n v ` QlL N^NuNq.filegsputl.c.text,.data,.bss,sputl0707070000020177771006440000020000020000030723320000017757000002400000020206usr/lib/libmalloc.a! / 545758328 0 0 0 98 ` ,,,,,,,,mallocfreerealloccallocmalloptmallinfo__StRetfreespaceid.o/ 545758327 0 0 100644 330 ` R u .text .data@.bss@(#) malloc:malloc.sl 1.6 .filegid.c.text.data.bssSCCS_IDmalloc.o/ 545758327 0 0 100644 7710 ` R c#.text .data`@.bssXX<NVH< JtfD#d#X |d###|t#X|#pJg .bJf^p#B 9R.Nn#v` "yBR 9Rm. 9N# .йS.N./NXO$. N"y&q X$ gJg(k d*p @'HfR Y.N"y#`4./NXOrЁA"k C(d k A('H 'H @ @(`B`./NXOrЁ.N@*@ gd g*+k'M m `+M M* Y.N"y#IAA(+H +H @ @( Y+@A L< N^Nu .й V" $p c `p $ 9||r .Ne$|p$j(R*T fv l!l l!l lf./</<NPO lf./<+/<NPO(M*T ge#$ er|fBN&@ yA gp Ђ r JjDD`r & j DD`gp" j DD`ր.N @gA8I j DD`gA" j DD`&Hpd @(& y" A"A ##$K` y(g " r &.N @g j DD`g.@/<O/<4NPO yI8pd @( y $y##` 9r .N" r JjDD`r & j DD`g.R/<s/<XNPO.N @f` yI8 y L#pd @($y j!j j!j jf.]/</<|NPO jf.]/</<NPO` j!j j!j jf.c/</<NPO jf.c/</<NPO(j|g y!yt yt!y l!||#)|p#t lf.h/</<NPO lf.h/<C/<(NPO r eG(& @ @$'|p'yt yt!K#t kf.s/<k/<LNPO kf.s/</<tNPOf#`p @$ 9A`NVH< n(g nA r(@e./</<NPOXb./</<NPO$T gb r$@p @(%L. *N$ "y&qg( # R!j j $%k'J j L<N^Nu n(H*T g r*@()|p)yt yt!L#t lf./</<NPO lf./<(/<NPO U-H fd m!m m!m mf./<L/<1NPO mf./<p/<UNPO*n U-H gf#(`NVH J g$ n(g(. N-@Jg ng". /` n$H&R fb j!j j!j jf./</<yNPO jf./</<NPO @ @$ r&@+f| k!k k!k kf./</<NPO kf./</<NPO&S+g @ @$e# . й V" $p e `p $ &e r eI(( @ @$)|p)yt yt!L#t lf. /<$/<NPO lf. /<L/<-NPOf#-n`J . c ` . &. N-@Jf L N^Nu././.NPO.N n`NVH $.. /NXO$.N:$@ f L N^Nu.BHRNPO J`NVH $.&. Jf\ SrbR@0; NJ&@Jm8 йS.N`dpo #`xL N^NuJnp` VJjDD`# 9йS.N.N#. 9N#`p #p`NVHp(.BHnNPOJtf&A"|r"Q" | LN^Nupd @-H 9-@p"H`H dgJR .-@ n(g .ѮP` .Ѯ-np"n @-H`$9`z "y-q n (T-@"gTR.N-@Ѯ. 9NѮ 9Ѯ n-P "y q"nfSJn. .Nr./NXO-@ .ԑ .ЮЮ .爑A"|r"Q`NVH $ntp&@ *T&p (@`ԃp&@ gf. NrЁA Ԁ L N^Nud(next)->nextfree != (next)malloc.c(next)->prevfree != (next)malloc.c((int)newblk%ALIGNSZ) == 0malloc.c((int)newblk%ALIGNSZ) == 0malloc.c(blk)->nextfree != (blk)malloc.c(blk)->prevfree != (blk)malloc.c(blk)->nextfree != (blk)malloc.c(blk)->prevfree != (blk)malloc.c(nblk)->nextfree != (nblk)malloc.c(nblk)->prevfree != (nblk)malloc.c(newblk)->nextfree != (newblk)malloc.c(newblk)->prevfree != (newblk)malloc.c(struct header *)lblk < arenaendmalloc.c(struct header *)lblk > arenamalloc.c(blk)->nextfree != (blk)malloc.c(blk)->prevfree != (blk)malloc.c(next)->nextfree != (next)malloc.c(next)->prevfree != (next)malloc.c(blk)->nextfree != (blk)malloc.c(blk)->prevfree != (blk)malloc.c(next)->nextfree != (next)malloc.c(next)->prevfree != (next)malloc.c(newblk)->nextfree != (newblk)malloc.c(newblk)->prevfree != (newblk)malloc.c "(.4:>DHNRdnzFLT`hBdjt"*:jpv~4>HPZ$*28DNT\pv| (0@v4PX`j~    0 8        6 < B X ^ d           , 2 8 @ H     0 8 > N ~              ! !  , >     $0b!.filegmalloc.c.text.data.bssX<arenaXfreeptrparenaendlastblkholdheadnumlblksminheadchangefastctmaxfastgrainmallocfreeLlmul__uldiv__ulmulldiv___assertsbrkrealloc Bcalloc memcpymallopt memsetmallinfo __StRet(rfreespace0707070000020177651006440000020000020000070501220000017757000002200000033102usr/lib/libmath.a! / 545758215 0 0 0 524 ` 2PPrrrrrrrr   F#P%*%*%*%*%*%*%*%*)@)@)@+++++++++++/3tf_absd_absf_addf_subi_supi_sdnf_supf_sdni_dupi_ddnd_dupd_ddnd_2_id_2_ff_cmpd_addd_subd_maxd_mind_dimd_cmpf_divd_muld_divd_modd_packpf_unpkf_unpku_storpf_packf_packu_loadf_rcpf_signi_flt_round_trunci_2_ff_2_ii_unpki_packpg_nshg_nshi_nintf_anintg_nintf_aintg_intf_modf_mulabs.o/ 545758168 0 0 100644 292 ` R .text .data@.bssNu.text.data.bssf_absd_absadd.o/ 545758170 0 0 100644 902 ` R .text .data@.bssoHL UUðcACBBDf"JgJff Ҁ``<< g<D Fm QFf쨴fҀd2RE Em&`rkgb[SEn gBEdRE Eg</A$L.NuJffg"<`B`"<`Nq.text.data.bssf_addf_subadd2"nunflRuselgu1XgusubLasbuildgu2^ovflshljshxzdiffendasgeninfcancelnormnorm2roflasexitgennanceilf.o/ 545758174 0 0 100644 1134 ` R @.text( .data((@.bss((H o"NNb`H o"NNVN`4H o"NN,`H o"NN N/A L.NuJCjNJCjJBjBSkNBRфNuH o "NN`H o "NNN/A `@H o "NN~`H o "NNpN/@ /A$L.Nu $. BZd|  .text(.data(.bss(i_supf_unpkg_ceiltisx,i_sdng_floori_packsx1hf_sup6fsxbf_sdnNf_packawaygnshzg_nshaway0i_dupd_unpkidxi_ddndx2 d_dupddxd_ddnd_packconvert.o/ 545758176 0 0 100644 456 ` R .text< .data<<@.bss<<HLNN`HLNN/AL.Nu  &, .text<.data<.bss<d_2_id_2_fd_unpki_packf_packd_2_xit0cmp.o/ 545758179 0 0 100644 422 ` R .textT .dataTT@.bssTTHL$ĀkA<B?C㉰dA c?|Jf?|L/_TNw.textT.dataT.bssTf_cmpnbothmicmp4,cmp6<cmp8Hdadd.o/ 545758182 0 0 100644 986 ` R .text .data@.bssoHL$UUŰcBCEHNJGf(gJFf`> FgFDGQGmfJf`^Gk QJkցՀd(RF Fm`hdFED@NNM fBH ,L..NuN`(fFfJj$<B`$<B`* .text.data.bssd_addd_subdadd1$d_extenunflNuselngu1Rshzovflshlbshx|shydiffendasgeninfdiff2d_normd_rcpassgnasexitbyebyeuseld_useldcmp.o/ 545758184 0 0 100644 754 ` R .text .data@.bss/_N//B B////////NZd  m2..Nu////////N*d o/o /o..NuHL(ȀkBCf(g< <B"㊰dB c ?|"`f?|"L/_ NwNq .text.data.bssd_maxd_minFd_dimd_subd_cmpmxok<mothrpmnoklmn9|nbothmigotcmpcmp4cmp6cmp8div.o/ 545758187 0 0 100644 826 ` R .text .data@.bssH / "/BCBD@ARSDoNRRSCofR蘘C6HA4B@䀁HHHBЂDN/@ L?.NufSDbRD`g@Jg0`6gJf,B`JgSCdRC`|Jg" <`e Jg @`p`~f .text.data.bssf_divtoperr|backtop2boterrbackbot<f_rcpdrepkjdexitptngunormtdinvopgeninfbotlowbot0normbgennanusenanbldnandmul.o/ 545758190 0 0 100644 784 ` R .text .data@.bssHL$*グcBCN:,G EgJGgHL:/B:/ օӇ:/ օӇ:օӇ:/ ԅч: ԅчH@: ҅GH@6HCBAHAւчЁ$FNH ,L..Nu*Gg(<<N`.gSFjRF`>$<`BB` .text.data.bssd_muleswapd_exteofluflback:d_nrcpmsignmexitgennand_uselsigned0normudvmd.o/ 545758194 0 0 100644 1292 ` R r%.textT .data@.bssHL$*BNl:G8<a,8<aᏄg$&<FN`h.HGODfJfJgRGSGgNu8<@ANBCFg DgNg,Dg<NuNJk:Fg4Jg`*JkHgB$<`NJfJj@XO`Gfl<$HBNFHB b$<JjTB`BBXO`|BփՂ\ ǖ[jցՀ JD]Nu/_N/o /o/_NuHL$*xa8SGGo<SFNF NNH ,L..NuF "#.text.data.bssd_divextrem~shsub:dd46d_nrcpdmsignunpNunpxit|unp2lunplntopzerotopbigbotzerobotbigisnangeninfgennanclrbot2genzero0usetopisn2isn4gotnan*sign4shs1<shs7`d_modbdmod|d_normd_rcpdmexitd_pack.o/ 545758196 0 0 100644 414 ` R .text8 .data88@.bss88 m`B>BFCNN, AKNu"(.text8.data8.bss8d_packd_normd_rcpdpk0dpksgn2fpk.o/ 545758199 0 0 100644 986 ` R .textD .dataDD@.bssDD"/N oHB4H _PN&HCBBf<Jg4<`, f4<`B<Jg<`<SB<BBNu oL6HB o NuNN _PN8 m`2JgPDf gk SDjDN$"KNu/o ..NuJkSDJDn Dm(DRBDdRD DlUNuBNu <Nu.textD.dataD.bssDpf_unpkf_unpku_storunp2<unp8funp3\unp9jpf_packf_packu_loadrspk0spksgnspk2spk1spk5spk4f_rcpf_signrcp1rcp2signed08rcp4(rcpbig<frt.o/ 545758202 0 0 100644 414 ` R .text .data@.bss//oNNNNq   .text.data.bssi_flt_round_trunci_ninti_2_ff_2_iipk.o/ 545758206 0 0 100644 1172 ` R 0".textT .dataTT@.bssTTH"/N.N/ALNuH"/NN /ALNuBBvJjDBNu lN2BJfJk JCjDNu"<NuNNNx JBk2DmJfPD@`xS$Ąf6ȁ`*DBDm "BD`xSF„Ȁ BNuJBjRBNӂтNu"/NNa:/A.Nu"/NN`JBkVNu"/NNN/A.NuNq & z " < F .textT.dataT.bssTi_2_ff_2_ii_unpk8f_packf_unpki_packLiuposHbigipgnshipznpg_nshxu_loadu_storg_nshshrllsimplnshoflnshxitlrsimpri_nintf_anintg_nintnorndaixitDf_aint6g_int.mod.o/ 545758209 0 0 100644 846 ` R z.textp .data@.bssH /"/UBCBDRSCot<RSDor<䙖Dm<Ѐ[Z`ЀЁZ[jЁkg[Z `CN/@ L;..Nuf(`fSDbg*RD` geA n <`.text.data.bssf_modtoperrbacktop*boterrbackbot6mod7zlsub@laddPloopend\signokbmnorm~mrpkmnormllf_rcpmexitmodnanbotbignormbgennanbigtopmul.o/ 545758212 0 0 100644 658 ` R N.textD .data@.bssHL*ばcABDBCC gJJg\<<46H@HAւCHCЃD~N/@ L?.NuBJfJg"< `JgkSDj` <`B`Nqb .text.data.bssf_muleswapoflxufl