Commit message (Collapse)AuthorAgeFilesLines
* Add a (barely) working open function (no create yet)HEADmasterH. Peter Anvin2013-03-223-6/+60
| | | | Add a minimally functional open implementation
* Common skeleton for the various open variantsH. Peter Anvin2013-03-224-28/+92
| | | | | Create a common wrapper for all the open variants. Sadly we still need to turn them into "open" and "create" messages for 9P, sigh.
* pathname: save/restore %siH. Peter Anvin2013-03-221-0/+2
| | | | It doesn't make too much sense to clobber %si...
* readdir: add some debugging statementsH. Peter Anvin2013-03-221-0/+16
| | | | For future work
* Generalize pathname parsing functionsH. Peter Anvin2013-03-224-19/+74
| | | | | For create and mkdir we will need to be able to split a path into directory name and file name.
* Switch from CDS_DPBPTR to CDS_USERVALH. Peter Anvin2013-03-222-2/+12
| | | | Might be safer, who knows...
* Provide a working chdir functionH. Peter Anvin2013-03-224-5/+50
| | | | We can now chdir to valid directories, but not invalid directories.
* Restore the qualify function for testingH. Peter Anvin2013-03-183-0/+26
| | | | | There are some odd behaviors afoot, so being able to test with and without the qualify function might be a good idea.
* start.asm: smsw for testing PM, not lmswH. Peter Anvin2013-03-181-1/+1
| | | | | We want to use smsw for testing if we are in protected mode, not lmsw...
* printmsg: be more flexible with segments for the debugging functionsH. Peter Anvin2013-03-181-23/+47
| | | | | The debugging functions want minimal footprint, so make it possible to use with nonstandard segment configuration.
* Check if we are in PM before poking around for VDSH. Peter Anvin2013-03-181-0/+4
| | | | | | | Virtual DMA Services (VDS) only make sense if we are in protected mode (typically V86 mode, of course); the lmsw instruction is an unprivileged way to query the bottom half of CR0, which includes the PE bit.
* Cleaner way to handle the relocation codeH. Peter Anvin2013-03-182-12/+17
| | | | | | | | Actually overlay the relocation code with the .rbss segment, even in VMA space. This means that the VMA addresses for labels in the .textearly segment are actually correct and we don't have to play any funny games, but also that the .textearly segment doesn't actually take up any space in memory.
* Include a mask of non-permitted filename charactersH. Peter Anvin2013-03-181-5/+24
| | | | | | Include a bitmask specifying filename disallowed bytes. We use this as the starting point for canonmap; we can clear bits but won't set them.
* readdir: return volume labelH. Peter Anvin2013-03-181-0/+27
| | | | When searching for a volume label, return the mount tag.
* Move findfirst/findnext to a separate fileH. Peter Anvin2013-03-183-21/+52
| | | | Move the directory access functions to a separate file
* Move the diskspace function to a separate fileH. Peter Anvin2013-03-183-158/+193
* Fix the corner cases in diskspc, it is now functional...H. Peter Anvin2013-03-181-8/+12
* Make the diskspace function work, at least for small filesystemsH. Peter Anvin2013-03-181-7/+46
| | | | | | Now we can return the correct values for small filesystems. The larger filesystems may still be broken. Still unclear if it actually makes any sense to do this much work.
* message.asm: on exit, point %di to payloadH. Peter Anvin2013-03-181-2/+18
* Diskspace function which actually seems to work...H. Peter Anvin2013-03-188-34/+100
| | | | | | Diskspace function which actually seems to work well enough. Also delete the qualify function -- we don't seem to ever need it.
* printmsg.asm: add support for 2-digit hex debug messagesH. Peter Anvin2013-03-181-6/+18
* start.asm: Correct the sending of the mount tagH. Peter Anvin2013-03-181-2/+2
| | | | Send the correct mount tag instead of random garbage.
* Add freespace function, and trivial error returns for findfirst/nextH. Peter Anvin2013-03-171-3/+101
| | | | | | | | | | Add the freespace function. However, there are at least two problems here: 1. It is unclear if > 2 GiB can be accurately handled by DOS. If not, this function can be written much simpler. 2. For some reason, statfs doesn't seem to work at all, returning Rerror (not Rlerror even...)
* start: Just put the volume label in a space-initialized bufferH. Peter Anvin2013-03-091-7/+8
| | | | The volume label buffer is so small we can just put it in .rdata
* protomsg: fix typoH. Peter Anvin2013-03-061-1/+1
* int2f: fix dispatchH. Peter Anvin2013-03-061-7/+26
| | | | | We don't need to chain after final dispatch, add debug messages, fix limit check, correct dispatch table for disk size.
* Fix CDS-based accept handlingH. Peter Anvin2013-03-062-4/+25
* Add facility for printing debug messagesH. Peter Anvin2013-03-063-1/+155
| | | | Add code to print messages on the Qemu debug console
* Use procedure start/end macrosH. Peter Anvin2013-03-0611-222/+115
| | | | | Use procedure start/end macros instead of opencoding all the directives.
* cp: Add missing UnicodeData and filesH. Peter Anvin2013-03-052-0/+1009
| | | | | UnicodeData is a subset of the Unicode Character Database. The subset is generated with
* v9fs.h: use .asciz instead of .ascii + .byte 0H. Peter Anvin2013-03-051-4/+2
| | | | | Use .asciz instead of the longer .ascii with a separate .byte directive.
* Rename *.S to *.asm to support case-insensitive filesystemsH. Peter Anvin2013-03-0512-4/+4
| | | | | Allow building on case-insensitive filesystems by avoiding the *.S/*.s distinction.
* Add -*- asm -*- tags for emacs' benefitH. Peter Anvin2013-03-0512-12/+12
| | | | | Mark the files as assembly, to keep emacs from jumping into the wrong mode.
* start: save mount tag in codepage to use as volume labelH. Peter Anvin2013-03-051-2/+16
| | | | | Save the first 11 bytes of the volume label in codepage format to use as volume label.
* Split out yet another set of fields in the SDAH. Peter Anvin2013-03-033-11/+26
| | | | Yet another set of version-dependent fields we need in the SDA.
* Minor cleanupsH. Peter Anvin2013-03-032-5/+8
| | | | Change the assembly code to be a bit easier to read, hopefully
* Change to using symbolic offsets into DOS data structuresH. Peter Anvin2013-03-033-11/+11
* v9fs: add symbolic names for various DOS field offsetsH. Peter Anvin2013-03-031-0/+46
* Add MIT license headersH. Peter Anvin2013-03-0213-1/+350
* Code to generate a walk message; errno constantsH. Peter Anvin2013-02-274-1/+235
| | | | | | | Code to convert pathnames and to actually generate a walk message. The Rlerror message contains Linux errno constants, include them as macros.
* utf.S: source is fs:siH. Peter Anvin2013-02-271-4/+4
* start: set the filename offset in CDSH. Peter Anvin2013-02-261-0/+1
* utf.S: use the DOS filename upper case table correctlyH. Peter Anvin2013-02-261-1/+7
* start.S: add a bunch of missing labelsH. Peter Anvin2013-02-261-5/+11
* utf: proper conversions to and from Unicode, including caseH. Peter Anvin2013-02-261-1/+81
| | | | | Convert to and from Unicode, including keeping track of if a character is canonical.
* checkpoint: cp-to-utf conversion now includes case conversionH. Peter Anvin2013-02-263-41/+236
* datetime: fix register names to silence gas warningH. Peter Anvin2013-02-251-2/+2
* datetime: shave a few more bytes by using the AAM instructionH. Peter Anvin2013-02-251-5/+5
| | | | | AAM is 8/8->8 unsigned division with an immediate divisor; specifically it is AL/imm8 -> AH with the remainder in AL.
* Rename acc_other to acc_cdsH. Peter Anvin2013-02-252-17/+17
| | | | | Reflect that we are using the Current Directory Structure to determine if we should accept the call.
* acc.S: complete the accept test functionsH. Peter Anvin2013-02-252-9/+54
| | | | | Complete the various accept test functions, except that we do not yet test for character devices in acc_other.