|
|
DataMuseum.dkPresents historical artifacts from the history of: Bogika Butler |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Bogika Butler Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 9728 (0x2600)
Types: TextFile
Names: »INDEX.TXT«
└─⟦8592db80f⟧ Bits:30009789/_.ft.Ibm2.50007350.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »INDEX.TXT«
└─⟦fc37b823b⟧ Bits:30009789/_.ft.Ibm2.50006612.imd Mogens Pelles Zilog 80,000 / EOS projekt
└─⟦this⟧ »INDEX.TXT«
The following is an index to the EOS kernel source text.
Besides providing an overview of the main procedures and
the like this text will repeat the more important comments
stated in the kernel source.
KERNEL.COMDEF.SA
Defines constants, offsets and macroes. Defining offsets
the text in fact defines the lay out of all the major data
structures.
Types and constants:
CHAIN & MEMBER
SIZE TYPE
POINTER & FORMAL POINTER
OBJECT, COMMON PART
SPACE DESCRIPTION (NON-EMBEDDED OBJECTS ONLY)
GATE OBJECT
CONDITION OBJECT
EXTENSION & PROCESS OBJECT
SEGMENT & SUBSEGMENT OBJECT
MMU DESCRIPTOR (ONLY USED AS PART OF CONTEXT)
GENERAL OBJECT
STACK ELEMENT
ENVELOPE
CONTEXT
RESULT ARGUMENTS
Macroes:
INS_ELEM
REM_ELEM
INIT_HEAD
CASEJMP
CASELAB
ENTRYSAV
RETURN
PRT_REG
PRT_MEM
ERROR
Misc. constants.
KERNEL.PREFACE.SA
The purpose of the preface is to assign some key variables of
the running system. Some values must be changed in
COMDEF or in PREFACE when the system configuration changes.
The initialization of the preface gets control right after the
hardware boot.
0) Round up FIRST_OS in KV_BOTLD.
1) Clear the vector_table, driver_table, and stack_table.
2) Reserve trap #9 for test output and initialize test printer.
3) Initialize entry 0 and 1 of the tables.
KERNEL.ENTER.SA
Kernel back end. Contains the last part of the initialization.
1) Create the boot process and an initial context in the stub object.
2) Start the clock.
3) Compute free memory.
4) Enter the stub context. ("EOSBEGIN" Activate bottom level scheduler).
5) Ensure proper format of boot file (assembler directives).
KERNEL.MMPROCS.SA
(section 7. Kernel variables)
Variables, import and export desciptions.
Installation module format definition (offsets).
Macroes:
NEWHEAD
PROCSAVE
PROCRTRN
MOVLM
MOVHD
TSTPAGE
(section 11. Initialize) **** activated right after preface ****
Misc. local procedures.
0) Allocate pagetable, set up supervisor stack.
1) Boot loaded modules (in RAM) are described as one segment object.
- This will protect the modules during the initialization. The
alloc object is used as the kernel part of this segment object.
2) Create the fulspace segment object and initial pointers.
- And initialize various global variables.
3) Allocate and initilize the stub object, except local pointers.
4) Create the boot owner set describing the boot loaded modules
in LOCAL-2 of the stub object.
5) Initialize LOCAL-1: Ref to code of the stub.
LOCAL-6: Ref to the fulspace segment object.
6) Create the alloc object as initial allocator of the kernel.
GOTO knelop-initialization (entry point: I_SCHED) according to
comments in the source, but I_SCHED is defined in KERNEL.SC.SA .
(section 9. RUN TIME)
Misc. local procedures.
Alloc object:
verify and branch.
New_obj create a new open object.
MM_term terminate object.
MM_cre create object.
Removobj remove object.
PgTabSet assign entry of page table.
PgTabGet get entry from page table.
chain_it chain new element next to old element (head or chain member).
chainown chain object to nil pointer or owner pointer.
chainman chain envelope to nil pointer or manager pointer.
simplept create simple pointer to object.
initenv initialize envelope.
initgein initialize general part of stub or scheduler object.
initknel initialize OB and SP fields of object.
assignus assign user part to kernel part of object.
removeus remove user part.
removekn remove kernel part.
geturec get mem_rec holding user part.
getkrec get mem_rec holding kernel part.
createus create user part.
createkn create kernel part.
rechainc rechain mem_recs after creation of kernel or user part.
case_C1
case_C2
case_C3
case_C4
rechainR rechain mem_recs after removal of kernel or user part.
case_R1
case_R2
case_R3
case_R4
userget parameter list to getroom when a user part is created.
knelget parameter list to getroom when a kernel part is created.
getroom get room for a user or kernel part.
searchus search for free space to a user part.
compus compress user parts to generate free space.
C_uparts compress each user RAM area to generate free space.
M_uacros move user parts across NO_RAM areas.
searchkn search for free space to a kernel part.
compkn compress kernel parts to generate free space.
C_kparts compress each kernel RAM area to generate free space.
M_kacros move kernel parts across NO_RAM areas.
moveknel move kernel part of an object.
movepoin move common part of a pointer.
movesmpl move simple pointer.
moveenct move common part of envelope and context.
moveuser move user part.
CHK_TIR time_out, IO_count, resiodent_count.
moveseda move segment data.
MM_setre scan tree of subsegments and pointers.
newsefir new value of se_fir should be registered.
move_man moves an integral number of segments.
KERNEL.SC.SA
Constants, import and export descriptions.
(Section 7. Kernel variables).
(Section 11. Initialization).
I_sched Entry to init part of scheduler.
The scheduler initialization gets control after MM_proc has initialized.
The following steps are then carried out:
1) initialize simple global variables.
2) initialize initial objects.
3) initialize stub object.
4) initialize trap #8 = initerrupt_end.
(Section 9. RUN TIME)
tintrupt interrupt procedure for the ptm chip.
twait wait for time out.
time_out time out call from driver.
to_updat update time out counter.
rt_updat update real time counter (rtcnt).
get_time kernel operation #34. May also be called from resident ctx.
convaddr convert address from user space to supervisor space.
en_stopr ensure that running current process will be stopped.
do_stopr stop running current process for a while.
start_proc initial resume point for initial ctx in created processes.
tr_tr8 interrupt_end is called (trap #8).
eosbegin called from ENTER after the initialization.
find_nxt find the next process to be resumed.
en_dis enable and disable interrupts.
rsto_all restore kv_ctx, kv_proc, a0,a2,a3, USP, supv.stack of proc.
rsto_stk restore supervisor stack.
save_stk save supervisor stack and USP in context.
timcheck allow other processes to run if time out has occured.
syncstop synchronizing process is stopped.
knelsign kernel defined signal operation.
knelwait kernel defined wait operation.
schedobj scheduler functions execued in kernel mode.
decldorm declare dormant process.
declcond declare condition object.
declgate declare gate object.
declchan declare channel.
termdriv remove channel descriptions.
compstak compute difference= needed_supvsize - actual_supvsize.
c_form12 check formal-1 and -2 in decl_channel.
cre_chan create channel descriptions.
c_sched chech calling scheduler.
c_openf1 check that one open object is present in formal-1.
<error exits>
schedent entry of general object being a scheduler object.
new_proc create new dormant process object.
new_sched create new scheduler object.
newscond create new condition.
new_gate create new gate object.
new_chan create new device channel.
newichan new_channel executed in initial scheduler.
del_ext delete supervisor stack extensions. (not implemented)
deliext delete extensions executed in initial sched. (not impl.)
new_open create new open object.
decl_div declare a kernel defined object.
nextnumb get next number parameter among the value data.
<error exits>
int_sign interrupt signal operation.
ptandseg pointer and segment.
c_segm check that the argument is a segment object.
cr_inctx create interrupt context.
gate_obj callable gate object functions.
gatelock lock normal gate.
devilock lock device gate.
speedchk
gateopen open normal gate.
force_open open unknown device gate.
deviopen open device gate.
newgcond create new condition object.
resbegin set resident lock on and update resident counts.
setreset adjust resident counts for resident context.
incrdecr increase or decrease count in segment objects.
qdriv queue process in the driving queue.
cond_obj callable condition object functions.
condwait wait on normal condition.
deviwait wait on device condition.
waitwait wait on condition.
condsign signal normal/devi_cond, or interrupt_signal devi_cond.
checklev check level of process against device level.
termgate terminate gate object.
termcond abort condition and contexts in the condition.
propsped propagate speedup into gate or condition object.
sped_run put the process back into running queue.
KERNEL.KNELOP.SA
Knelop is not indexed here because it includes an index itself.
«eof»