Browse Source

Now compiles.

Mattis Lind 5 years ago
parent
commit
baa3a61866
2 changed files with 8 additions and 89 deletions
  1. 0 83
      dnix-traverse/dnix-traverse.c
  2. 8 6
      dnix-traverse/dnix-traverse.cpp

+ 0 - 83
dnix-traverse/dnix-traverse.c

@@ -1,83 +0,0 @@
-/*
-
-  compile using : c++ dnix-traverse.cpp -o dnix-traverse
-
-  Program to list and extract files from a DNIX FS. Should also be able to write to a DNIX file system. Possibly even add boot code and other things.
-
- */
-
-#include <stdio.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <time.h>
-
-typedef unsigned long daddr_t;
-
-
-#pragma pack(push, 1)
-
-#include "../dnix-headers/diskpar.h"
-#include "../dnix-headers/inode.h"
-#include "../dnix-headers/sysfile.h"
-#include "../dnix-headers/dir.h"
-
-#pragma pack(pop)
-
-
-
-class DnixFs {
-  struct sysfptr dnixPartitionInfo;
-  FILE * image;
- public:
-  DnixFs( FILE * image);
-};
-
-
-struct sysfptr {
-	daddr_t	vdsp;		/* Pointer to volume descriptor block */
-	daddr_t	vdspn;		/* 1:s complement of previous item */
-	daddr_t	cleanfl;	/* Volume clean flag */
-	time_t	timestamp;	/* Timestamp */
-	daddr_t	x[124];		/* Reserved */
-};
-
-
-DixFs:DnixFs(FILE * img) {
-  char buffer[26];
-  image = img;
-  // Read the partition info
-  fread ( (void * ) dnixPartitionInfo, 512, 1 image);
-  strftime(buffer, 26, "%Y-%m-%d %H:%M:%S", localtime(dnixPartitionInfo.timestamp))
-  printf ("Pointer to volume descriptor block: %08lX", dnixPartitionInfo.vdsp);
-  printf ("1:s complement of previous item: %08lX", dnixPartitionInfo.vdspn);
-  printf ("Volume clean flag: %08lX", dnixPartitionInfo.cleanfl);
-  printf ("Timestamp %s", buffer);
-
-}
-
-
-int main (int argc, char ** argv) {
-  FILE * image_file;
-  int opt;
-  printf("1\n");
-  while ((opt = getopt(argc, argv, "d:")) != -1) {
-    switch (opt) {
-    case 'd':
-      printf("1");
-      image_file = fopen (optarg, "r");
-      if (image_file == NULL) {
-	perror ("Failure opening file.");
-	exit(EXIT_FAILURE);
-      }
-      break;
-    default: /* '?' */
-      fprintf(stderr, "Usage: %s [-d disk-image-file]\n", argv[0]);
-      exit(EXIT_FAILURE);
-    }
-  }
-
-}
-
-
-

+ 8 - 6
dnix-traverse/dnix-traverse.cpp

@@ -13,22 +13,24 @@
 #include <time.h>
 #include <time.h>
 #include <string.h>
 #include <string.h>
 
 
-typedef unsigned int dnix_daddr_t;
+typedef unsigned int daddr_t;
 typedef int dnix_time_t;
 typedef int dnix_time_t;
+typedef int ino_t;
 
 
 #pragma pack(1)
 #pragma pack(1)
 
 
-#define daddr_t dnix_daddr_t
+//#define daddr_t dnix_daddr_t
 #define time_t dnix_time_t
 #define time_t dnix_time_t
+//#define ino_t dnix_ino_t
 
 
 #include "../dnix-headers/diskpar.h"
 #include "../dnix-headers/diskpar.h"
 #include "../dnix-headers/inode.h"
 #include "../dnix-headers/inode.h"
 #include "../dnix-headers/sysfile.h"
 #include "../dnix-headers/sysfile.h"
 #include "../dnix-headers/dir.h"
 #include "../dnix-headers/dir.h"
 
 
-#undef daddr_t
+//#undef daddr_t
 #undef time_t
 #undef time_t
-#define daddr_t daddr_t
+//#define daddr_t daddr_t
 #define time_t time_t
 #define time_t time_t
 
 
 
 
@@ -56,7 +58,7 @@ void DnixFs:: readInode (int inumber, struct dinode * inode) {
   printf ("inumber  %04X\n", inumber);
   printf ("inumber  %04X\n", inumber);
   printf ("insiz %04X\n", sysfile.s_insiz);
   printf ("insiz %04X\n", sysfile.s_insiz);
   printf ("inadr %04X\n", sysfile.s_inadr);
   printf ("inadr %04X\n", sysfile.s_inadr);
-  printf ("Address to read inode from %04X\n", (inumber-1) * (sizeof dinode) + sysfile.s_inadr);
+  printf ("Address to read inode from %04lX\n", (inumber-1) * (sizeof dinode) + sysfile.s_inadr);
   
   
   fseek (image, (inumber-1) * (sizeof dinode) + sysfile.s_inadr, SEEK_SET);
   fseek (image, (inumber-1) * (sizeof dinode) + sysfile.s_inadr, SEEK_SET);
   fread ( (void * ) &dinode, sizeof dinode, 1, image);
   fread ( (void * ) &dinode, sizeof dinode, 1, image);
@@ -173,7 +175,7 @@ public:
 
 
 
 
 void DnixFile::init(FILE * image, struct dinode * inode) {
 void DnixFile::init(FILE * image, struct dinode * inode) {
-  memcpy (&ino, inode, sizeof inode);
+  memcpy (&ino, inode, sizeof (struct dinode));
 }
 }
 
 
 void DnixFile::readFileBlock ( int block_no, void * buf ) {
 void DnixFile::readFileBlock ( int block_no, void * buf ) {