Exemple #1
0
P2(PUBLIC pascal trap, OSErr, DIZero, INTEGER, dn, StringPtr, vname)
{
  OSErr err;
  LONGINT time;
  int name_len;
  char *name;
  our_file_info_t oi;

  name_len = vname[0];
  name = alloca(name_len + 1);
  memcpy(name, vname+1, name_len);
  name[name_len] = 0;
  GetDateTime(&time);
  
  err = get_vref_dref (dn, &oi.vref, &oi.dref);
  if (err == noErr)
    {
      oi.pos = 0;
      err = begin_track_buffering_for_write ();
      if (err == noErr)
	{
	  OSErr err2;

	  err = format_disk(time, name, FLOPPY_SECTORS_PER_DISK, writefunc,
			    (int) &oi);
	  err2 = end_track_buffering_for_write (&oi);
	  if (err == noErr)
	    err = err2;
	}
    }
  return err;
}
Exemple #2
0
int main(int argc,char **argv)
{
    int ctrl;
    int verify;
    struct stat st;
    char *progname, *p;

    progname = argv[0];
    if ((p = strrchr(progname, '/')) != NULL)
	    progname = p+1;

    setlocale(LC_ALL, "");
    bindtextdomain(PACKAGE, LOCALEDIR);
    textdomain(PACKAGE);

    if (argc == 2 &&
	(!strcmp(argv[1], "-V") || !strcmp(argv[1], "--version"))) {
	    printf(_("%s from %s\n"), progname, util_linux_version);
	    exit(0);
    }

    verify = 1;
    if (argc > 1 && argv[1][0] == '-') {
	if (argv[1][1] != 'n') usage(progname);
	verify = 0;
	argc--;
	argv++;
    }
    if (argc != 2) usage(progname);
    if (stat(argv[1],&st) < 0) PERROR(argv[1]);
    if (!S_ISBLK(st.st_mode)) {
	fprintf(stderr,_("%s: not a block device\n"),argv[1]);
	exit(1);
	/* do not test major - perhaps this was an USB floppy */
    }
    if (access(argv[1],W_OK) < 0) PERROR(argv[1]);

    ctrl = open(argv[1],O_WRONLY);
    if (ctrl < 0)
	    PERROR(argv[1]);
    if (ioctl(ctrl,FDGETPRM,(long) &param) < 0) 
	    PERROR(_("Could not determine current format type"));
    printf(_("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"),
	   (param.head == 2) ? _("Double") : _("Single"),
	   param.track, param.sect,param.size >> 1);
    format_disk(ctrl, argv[1]);
    close(ctrl);

    if (verify)
	    verify_disk(argv[1]);
    return 0;
}
Exemple #3
0
static int _mklmfs(char *disk, char *dir)
{
	struct lmfs_address *paddress = &address;
	int inode;
	int ret;

	format_disk(disk, paddress, MAX_FILE);
	
	ret = create_files(dir, 0);
	dump_super_block(address.p_sb);

	return ret;
}
Exemple #4
0
int main(int argc, char *argv[])
{
	vir_machine_init();
	bootstrap();
	os_init();

	char order[800];
	int i;
	while (1) {
		echo_mip4();
		mips_want_get_string(order, 799);
		switch(order[0]) {
			case 'e':
				sys_exec(order + 2);
				break;
			case 'f':
				format_disk();
				write_stdout("successfully formats the disk!\n", F_WHITE, B_BLACK);
				break;
			case 'c':
				sys_create(order + 2);
				write_stdout("successfully create file\n", F_WHITE, B_BLACK);
				break;
			case 'w':  // copy the file to disk!
			{
				char *name = order + 2; // only one spaces !
				sys_create(name);
				int fid = sys_open(name);
				int obj_id = open(name, O_RDONLY);
				while (1) {
					int buf;
					if (read(obj_id, &buf, 1) == 0)
						break;
					char char_buf = (char)buf;
					sys_write(fid, &char_buf, 1);
				}
				sys_close(fid);
				write_stdout("successfully write file\n", F_WHITE, B_BLACK);
				break;
			}
		}
	}
	return 0;
}
main(int argc,char **argv)
{
    int verify;
    char *name;

    name = argv[0];
    verify = 1;
    if (argc > 1 && argv[1][0] == '-') {
	if (argv[1][1] != 'n') usage(name);
	verify = 0;
	argc--;
	argv++;
    }
    if (argc != 2) usage(name);
    if ((ctrl = open(argv[1],3)) < 0) PERROR(argv[1]);
    if (ioctl(ctrl,FDGETPRM,(int) &param) < 0) PERROR("ioctl(FDGETPRM)");
    printf("%sle-sided, %d tracks, %d sec/track. Total capacity %d kB.\n",
      param.head ? "Doub" : "Sing",param.track,param.sect,param.size >> 1);
    format_disk(argv[1]);
    if (verify) verify_disk(argv[1]);
}
Exemple #6
0
int fdformat_main(int argc,char **argv)
{
    int ctrl;
    int verify;
    struct stat st;
    struct floppy_struct param;

    if (argc < 2) {
	bb_show_usage();
    }
    verify != bb_getopt_ulflags(argc, argv, "n");
    argv += optind;

    if (stat(*argv,&st) < 0 || access(*argv,W_OK) < 0) {
	bb_perror_msg_and_die(*argv);
    }
    if (!S_ISBLK(st.st_mode)) {
	bb_error_msg_and_die("%s: not a block device",*argv);
	/* do not test major - perhaps this was an USB floppy */
    }

    ctrl = bb_xopen(*argv,O_WRONLY);
    if (ioctl(ctrl,FDGETPRM,(long) &param) < 0) { 
	bb_perror_msg_and_die("Could not determine current format type");
    }
    printf("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n",
	    (param.head == 2) ? "Double" : "Single",
	    param.track, param.sect,param.size >> 1);
    format_disk(ctrl, *argv, &param);
    close(ctrl);

    if (verify) {
	verify_disk(*argv, &param);
    }
    return EXIT_SUCCESS;
}
Exemple #7
0
int main(int argc, char **argv)
{
	int ch;
	int ctrl;
	int verify = 1;
	struct stat st;

	static const struct option longopts[] = {
		{"no-verify", no_argument, NULL, 'n'},
		{"version", no_argument, NULL, 'V'},
		{"help", no_argument, NULL, 'h'},
		{NULL, 0, NULL, 0}
	};

	setlocale(LC_ALL, "");
	bindtextdomain(PACKAGE, LOCALEDIR);
	textdomain(PACKAGE);
	atexit(close_stdout);

	while ((ch = getopt_long(argc, argv, "nVh", longopts, NULL)) != -1)
		switch (ch) {
		case 'n':
			verify = 0;
			break;
		case 'V':
			printf(_("%s from %s\n"), program_invocation_short_name,
			       PACKAGE_STRING);
			exit(EXIT_SUCCESS);
		case 'h':
			usage(stdout);
		default:
			usage(stderr);
		}

	argc -= optind;
	argv += optind;

	if (argc < 1)
		usage(stderr);
	if (stat(argv[0], &st) < 0)
		err(EXIT_FAILURE, _("cannot stat file %s"), argv[0]);
	if (!S_ISBLK(st.st_mode))
		/* do not test major - perhaps this was an USB floppy */
		errx(EXIT_FAILURE, _("%s: not a block device"), argv[0]);
	if (access(argv[0], W_OK) < 0)
		err(EXIT_FAILURE, _("cannot access file %s"), argv[0]);

	ctrl = open(argv[0], O_WRONLY);
	if (ctrl < 0)
		err(EXIT_FAILURE, _("cannot open file %s"), argv[0]);
	if (ioctl(ctrl, FDGETPRM, (long)&param) < 0)
		err(EXIT_FAILURE, _("Could not determine current format type"));

	printf(_("%s-sided, %d tracks, %d sec/track. Total capacity %d kB.\n"),
	       (param.head == 2) ? _("Double") : _("Single"),
	       param.track, param.sect, param.size >> 1);
	format_disk(ctrl);
	close(ctrl);

	if (verify)
		verify_disk(argv[0]);
	return EXIT_SUCCESS;
}
Exemple #8
0
int main( int argc, char *argv[] )
{
  extern char *optarg;
  int ch;

  int formatdisk = 0;
  int dumpblock = 0;
  int examinedisk = 0;
  int track = -1;
  int sector = -1;
  char *binary = NULL;
  char *disk = NULL;
  FILE *disk_fp;
  char *open_mode;

  disk = argv[1];

  while( (ch = getopt(argc-1, &argv[1], "vdfdxb:t:s:")) != -1 ) 
    switch(ch)
      {
      case 'v': { verbose = 1; break; }
      case 'f': { formatdisk = 1; break; }
      case 'd': { dumpblock = 1; break; }
      case 'x': { examinedisk = 1; break; }
      case 'b': { binary = optarg; break; }
      case 't': { track = atoi(optarg);	break; }
      case 's': { sector = atoi(optarg); break; }
      case '?':
      case 'h':
      default:
	usage();
      }
  
  if( disk == NULL )
  {
    fprintf( stderr, "error: no disk image specified\n" );
    exit(1);
  }

  if( formatdisk )
    open_mode="w+";
  else
    open_mode="r+";

  if( (disk_fp = fopen(disk, open_mode)) == NULL )
  {
    perror( disk );
    exit(1);
  }

  if( formatdisk )
    format_disk( &disk_fp );

  if( binary != NULL )
  {
    sanity_check( track, sector );
    insert_binary( &disk_fp, binary, track, sector );
  }

  if( dumpblock )
  {
    sanity_check( track, sector );
    dump_block( &disk_fp, track, sector );
  }

  fclose( disk_fp );
  return 0;
}