diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml index ec084d1..69092d0 100644 --- a/.github/workflows/doc.yml +++ b/.github/workflows/doc.yml @@ -14,6 +14,8 @@ concurrency: group: "pages" cancel-in-progress: false +env: + LANG: "en_US.UTF-8" jobs: docs-deploy: runs-on: ubuntu-latest @@ -25,12 +27,18 @@ jobs: - name: Install dependencies run: | sudo apt-get update - sudo apt-get install build-essential naturaldocs + sudo apt-get install build-essential wget unzip + sudo locale-gen en_US.UTF-8 + sudo update-locale LANG=en_US.UTF-8 + wget https://sourceforge.net/projects/naturaldocs/files/Stable%20Releases/1.52/NaturalDocs-1.52.zip/download -O /tmp/NaturalDocs-1.52.zip + (cd /tmp; unzip NaturalDocs-1.52.zip; mv NaturalDocs naturaldocs; chmod +x naturaldocs) + - name: generate-docs run: | + export PATH="$PATH:/tmp" make docs - name: setup-pages - uses: actions/configure-pages@v4 + uses: actions/configure-pages@v5 - name: upload-artifact uses: actions/upload-pages-artifact@v3 with: diff --git a/include/Makefile b/include/Makefile index ea1dec0..fa78381 100644 --- a/include/Makefile +++ b/include/Makefile @@ -9,7 +9,7 @@ all: clean: .PHONY: install -install: $(INCS) $(INCSYSDIR) +install: $(INCS) $(SYSINCS) @ mkdir -p $(DESTDIR)$(INCDIR) install $(INCS) $(DESTDIR)$(INCDIR) @ mkdir -p $(DESTDIR)$(INCSYSDIR) diff --git a/kernel/fs/stpdfs.inc b/kernel/fs/stpdfs.inc index 805c410..d714286 100644 --- a/kernel/fs/stpdfs.inc +++ b/kernel/fs/stpdfs.inc @@ -93,6 +93,34 @@ DEFN StpdFS_Sb ;; .zone - TODO ;; .actime - TODO ;; .modtime - TODO + ;; + ;; + ;; Zone 0-6 are direct, zone 7 indirect, zone 8 double indirect, zone 9 triple indirect + ;; > ┌────────┐ + ;; > │ │ + ;; > ┌───────►│Data │ + ;; > │ │ │ + ;; > ┌──────┐ Direct│ └────────┘ + ;; > │zone 0├───────┘ + ;; > ├──────┤ + ;; > │... │ + ;; > ├──────┤ ┌────────┐ ┌────────┐ + ;; > │zone 6│ │ ├─────►│ │ + ;; > ├──────┤ Indirect │ │ │ Data │ + ;; > │zone 7├─────────►│ │ │ │ + ;; > ├──────┤ └────────┘ └────────┘ + ;; > │zone 8├───────┐ + ;; > ├──────┤ │Double indirect┌─────────┐ ┌────────┐ ┌─────────┐ + ;; > │zone 9│ └──────────────►│ ├───►│ ├───►│ │ + ;; > └──┬───┘ │ │ │ │ │ Data │ + ;; > │ │ │ │ │ │ │ + ;; > │ └─────────┘ └────────┘ └─────────┘ + ;; > │ Triple indirect ┌────────┐ + ;; > └────────────────►│ │ ┌──────────┐ ┌─────────┐ ┌──────────┐ + ;; > │ ├───►│ │ │ │ │ │ + ;; > │ │ │ ├─────►│ ├─────►│ Data │ + ;; > └────────┘ │ │ │ │ │ │ + ;; > └──────────┘ └─────────┘ └──────────┘ struc StpdFS_Inode { .mode dw ? .nlink dw ? @@ -117,6 +145,8 @@ struc StpdFS_Dirent { } DEFN StpdFS_Dirent +STPDFS_DIRENT_PER_BLOCK = sizeof.StpdFS_Dirent / STPDFS_BSIZE + ; ------------------------------------------------------------------------ ;; Section: Implementation