aboutsummaryrefslogtreecommitdiff
path: root/libmpio/src
diff options
context:
space:
mode:
authorcrunchy <crunchy>2003-04-23 08:53:23 +0000
committercrunchy <crunchy>2003-04-23 08:53:23 +0000
commitc7bffe3021abde4f8f2866a25cf29160627aa3f8 (patch)
tree318f33fa39b4b8cf5887c78012ddc9cae58d0a17 /libmpio/src
parent4412ca091e6379def8bc836163c6b580df76619c (diff)
downloadmpiosh-c7bffe3021abde4f8f2866a25cf29160627aa3f8.tar.gz
mpiosh-c7bffe3021abde4f8f2866a25cf29160627aa3f8.tar.bz2
mpiosh-c7bffe3021abde4f8f2866a25cf29160627aa3f8.zip
restructuring part 2
Diffstat (limited to 'libmpio/src')
-rw-r--r--libmpio/src/defs.h334
-rw-r--r--libmpio/src/mpio.h218
2 files changed, 0 insertions, 552 deletions
diff --git a/libmpio/src/defs.h b/libmpio/src/defs.h
deleted file mode 100644
index f676e23..0000000
--- a/libmpio/src/defs.h
+++ /dev/null
@@ -1,334 +0,0 @@
-/* -*- linux-c -*- */
-
-/*
- * $Id: defs.h,v 1.1 2003/04/23 08:34:14 crunchy Exp $
- *
- * Library for USB MPIO-*
- *
- * Markus Germeier (mager@tzi.de)
- *
- * uses code from mpio_stat.c by
- * Yuji Touya (salmoon@users.sourceforge.net)
- *
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * */
-
-#ifndef _MPIO_DEFS_H_
-#define _MPIO_DEFS_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-typedef unsigned char BYTE;
-typedef unsigned short WORD;
-typedef unsigned int DWORD;
-
-/* Memory selection */
-typedef enum { MPIO_INTERNAL_MEM = 0x01,
- MPIO_EXTERNAL_MEM = 0x10 } mpio_mem_t;
-
-/* model type */
-typedef enum { MPIO_MODEL_DME = 0x00,
- MPIO_MODEL_DMG = 0x01,
- MPIO_MODEL_DMG_PLUS = 0x02,
- MPIO_MODEL_DMB = 0x03,
- MPIO_MODEL_DMB_PLUS = 0x04,
- MPIO_MODEL_DMK = 0x05,
- MPIO_MODEL_FD100 = 0x06,
- MPIO_MODEL_FL100 = 0x07,
- MPIO_MODEL_FY100 = 0x08,
- MPIO_MODEL_UNKNOWN = 0x09 } mpio_model_t;
-
-/* USB commands */
-typedef enum { GET_VERSION = 0x01,
- GET_BLOCK = 0x02,
- PUT_SECTOR = 0x03,
- DEL_BLOCK = 0x04,
- GET_SECTOR = 0x06,
- GET_SPARE_AREA = 0x07,
- PUT_BLOCK = 0x08,
- MODIFY_FIRMWARE = 0xa0 } mpio_cmd_t;
-
-/* file types on internal memory */
-/* found in the code of salmoon, are these needed? -mager */
-typedef enum { FTYPE_CHAN = 0x00,
- FTYPE_MUSIC = 0x01,
- FTYPE_CONF = 'C',
- FTYPE_FONT = 'F',
- FTYPE_OTHER = 'H',
- FTYPE_MEMO = 'M',
- FTYPE_WAV = 'V',
- FTYPE_ENTRY = 'R',
- FTYPE_DIR = 'D',
- FTYPE_PLAIN = '-'} mpio_filetype_t;
-
-/* fixed filenames */
-#define MPIO_CONFIG_FILE "CONFIG.DAT"
-#define MPIO_CHANNEL_FILE "FMCONFIG.DAT"
-#define MPIO_MPIO_RECORD "MPIO RECORD"
-
-/* type of callback functions */
-typedef BYTE (*mpio_callback_t)(int, int) ;
-typedef BYTE (*mpio_callback_init_t)(mpio_mem_t, int, int) ;
-
-/* zone lookup table */
-#define MPIO_ZONE_MAX 8 /* 8* 16MB = 128MB */
-#define MPIO_ZONE_PBLOCKS 1024 /* physical blocks per zone */
-#define MPIO_ZONE_LBLOCKS 1000 /* logical blocks per zone */
-typedef DWORD mpio_zonetable_t[MPIO_ZONE_MAX][MPIO_ZONE_PBLOCKS];
-
-#define MPIO_BLOCK_FREE 0xffff
-#define MPIO_BLOCK_DEFECT 0xffee
-#define MPIO_BLOCK_CIS 0xaaaa
-#define MPIO_BLOCK_NOT_FOUND 0xcccccccc
-
-/* filenames */
-#define MPIO_FILENAME_LEN 129
-typedef BYTE mpio_filename_t[MPIO_FILENAME_LEN];
-
-#ifndef NULL
-#define NULL 0
-#endif
-
-#define MPIO_DEVICE "/dev/usb/mpio"
-#define MPIO_CHARSET "ISO-8859-15"
-
-#define MPIO_ID3_FORMAT "%p - %t"
-
-#define SECTOR_SIZE 0x200
-#define SECTOR_ECC 0x040
-#define SECTOR_TRANS (SECTOR_SIZE + SECTOR_ECC)
-
-#define BLOCK_SECTORS 0x20 /* 0x10 8MB Smartmedia :salmoon */
-#define BLOCK_SIZE (SECTOR_SIZE * BLOCK_SECTORS)
-#define BLOCK_TRANS (BLOCK_SIZE + (SECTOR_ECC * BLOCK_SECTORS))
-
-#define DIR_NUM 0x10
-#define DIR_SIZE (SECTOR_SIZE*DIR_NUM)
-#define DIR_ENTRY_SIZE 0x20
-
-#define SMALL_MEM 0x02
-
-#define CMD_SIZE 0x40
-
-#define INFO_LINE 129
-
-/* error codes */
-typedef struct {
- int id;
- char *msg;
-} mpio_error_t;
-
-#define MPIO_OK 0
-#define MPIO_ERR_FILE_NOT_FOUND -1
-#define MPIO_ERR_NOT_ENOUGH_SPACE -2
-#define MPIO_ERR_FILE_EXISTS -3
-#define MPIO_ERR_FAT_ERROR -4
-#define MPIO_ERR_READING_FILE -5
-#define MPIO_ERR_PERMISSION_DENIED -6
-#define MPIO_ERR_WRITING_FILE -7
-#define MPIO_ERR_DIR_TOO_LONG -8
-#define MPIO_ERR_DIR_NOT_FOUND -9
-#define MPIO_ERR_DIR_NOT_A_DIR -10
-#define MPIO_ERR_DIR_NAME_ERROR -11
-#define MPIO_ERR_DIR_NOT_EMPTY -12
-#define MPIO_ERR_DEVICE_NOT_READY -13
-#define MPIO_ERR_OUT_OF_MEMORY -14
-#define MPIO_ERR_INTERNAL -15
-/* internal errors, occur when UI has errors! */
-#define MPIO_ERR_INT_STRING_INVALID -101
-
-/* get formatted information, about the MPIO player */
-
-typedef struct {
- BYTE firmware_id[INFO_LINE];
- BYTE firmware_version[INFO_LINE];
- BYTE firmware_date[INFO_LINE];
-
- BYTE model[INFO_LINE];
-
- BYTE mem_internal[INFO_LINE];
- BYTE mem_external[INFO_LINE];
-
-} mpio_info_t;
-
-/* view of the MPIO firmware */
-typedef struct {
- /* everything we get from GET_VERSION */
- BYTE id[12];
- BYTE major[3];
- BYTE minor[3];
- BYTE year[5];
- BYTE month[3];
- BYTE day[3];
-} mpio_firmware_t;
-
-/* */
-typedef struct {
- DWORD NumCylinder;
- DWORD NumHead;
- DWORD NumSector;
- DWORD SumSector;
-} mpio_disk_phy_t;
-
-/* */
-
-struct mpio_directory_tx {
- BYTE name[INFO_LINE];
- BYTE dir[BLOCK_SIZE];
-
- BYTE *dentry;
-
- struct mpio_directory_tx *prev;
- struct mpio_directory_tx *next;
-
-};
-typedef struct mpio_directory_tx mpio_directory_t;
-
-
-/* view of a SmartMedia(tm) card */
-typedef struct {
- BYTE id;
- BYTE manufacturer;
- WORD size; /* MB */
- BYTE chips; /* this is the hack for
- MPIO internal representation, because
- there might be up to four chips involved */
-
- /* only needed for external SmartMedia cards */
- mpio_disk_phy_t geo;
-
- BYTE cis[SECTOR_SIZE];
- BYTE mbr[SECTOR_SIZE]; /* Master Boot Record */
- BYTE pbr[SECTOR_SIZE]; /* Partition Boot Record */
-
- int pbr_offset; /* sector offset for the PBR */
- int fat_offset; /* sector offset for the FAT */
- int dir_offset;
-
- /* these are needed for internal and external cards */
- int max_cluster; /* # of clusters actually available */
- int fat_size; /* # sectors for FAT */
- int fat_nums; /* # of FATs */
- BYTE * fat; /* *real FAT (like in block allocation :-) */
-
- /* needed for directory support */
- mpio_directory_t *root; /* root directory */
- mpio_directory_t *cdir; /* current directory */
-
- /* how many physical blocks are available
- * for internal memory is this value equal to max_cluster
- */
- int max_blocks;
- BYTE * spare;
-
- /* lookup table for phys.<->log. block mapping */
- mpio_zonetable_t zonetable;
-
-} mpio_smartmedia_t;
-
-/* health status of a memory "card" */
-typedef struct {
- WORD total; /* total blocks on "card" */
- WORD spare; /* (available spare blocks */
- WORD broken; /* broken blocks */
-} mpio_health_single_t;
-
-typedef struct {
- BYTE num; /* number of chips or zones */
- /* internal: max 4 chips
- * external: max 8 zones (128MB) -> max 8 */
- mpio_health_single_t data[8];
-} mpio_health_t;
-
-/* view of the MPIO-* */
-typedef struct {
- BYTE version[CMD_SIZE];
-
- int fd;
- BYTE *charset; /* charset used for filename conversion */
-
- BYTE id3; /* enable/disable ID3 rewriting support */
- BYTE id3_format[INFO_LINE];
- BYTE id3_temp[INFO_LINE];
-
- mpio_firmware_t firmware;
-
- mpio_model_t model;
-
- mpio_smartmedia_t internal;
- mpio_smartmedia_t external;
-} mpio_t;
-
-typedef struct {
- mpio_t *m;
- BYTE mem; /* internal/external memory */
-
- DWORD entry; /* number of FAT entry */
-
- /* internal */
- BYTE i_index; /* file index of file to store */
- BYTE i_fat[16]; /* internal FAT entry */
-
- /* external */
- DWORD e_sector; /* logical startsector of cluster */
-
- /* mapping to HW (== block address) */
- DWORD hw_address; /* 3 bytes block addressing + 1 byte chip */
-
-} mpio_fatentry_t;
-
-
-/* these are copied from:
- * http://www.linuxhq.com/kernel/v2.4/doc/filesystems/vfat.txt.html
- *
- */
-
-typedef struct { // Short 8.3 names
- unsigned char name[8]; // file name
- unsigned char ext[3]; // file extension
- unsigned char attr; // attribute byte
- unsigned char lcase; // Case for base and extension
- unsigned char ctime_ms; // Creation time, milliseconds
- unsigned char ctime[2]; // Creation time
- unsigned char cdate[2]; // Creation date
- unsigned char adate[2]; // Last access date
- unsigned char reserved[2]; // reserved values (ignored)
- unsigned char time[2]; // time stamp
- unsigned char date[2]; // date stamp
- unsigned char start[2]; // starting cluster number
- unsigned char size[4]; // size of the file
-} mpio_dir_entry_t;
-
-typedef struct { // Up to 13 characters of a long name
- unsigned char id; // sequence number for slot
- unsigned char name0_4[10]; // first 5 characters in name
- unsigned char attr; // attribute byte
- unsigned char reserved; // always 0
- unsigned char alias_checksum; // checksum for 8.3 alias
- unsigned char name5_10[12]; // 6 more characters in name
- unsigned char start[2]; // starting cluster number
- unsigned char name11_12[4]; // last 2 characters in name
-} mpio_dir_slot_t;
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MPIO_DEFS_H_ */
-
diff --git a/libmpio/src/mpio.h b/libmpio/src/mpio.h
deleted file mode 100644
index 1d5ba3c..0000000
--- a/libmpio/src/mpio.h
+++ /dev/null
@@ -1,218 +0,0 @@
-#/* -*- linux-c -*- */
-
-/*
- * $Id: mpio.h,v 1.1 2003/04/23 08:34:15 crunchy Exp $
- *
- * Library for USB MPIO-*
- *
- * Markus Germeier (mager@tzi.de)
- *
- * uses code from mpio_stat.c by
- * Yuji Touya (salmoon@users.sourceforge.net)
- *
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License as
- * published by the Free Software Foundation; either version 2 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
- *
- * */
-
-#ifndef _MPIO_H_
-#define _MPIO_H_
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-#include <errno.h>
-#include <string.h>
-
-#include "defs.h"
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
- *init and shutdown
- */
-
-mpio_t *mpio_init(mpio_callback_init_t);
-void mpio_close(mpio_t *);
-
-/*
- * request information
- */
-
-/* get version */
-void mpio_get_info(mpio_t *, mpio_info_t *);
-/* get model */
-mpio_model_t mpio_get_model(mpio_t *);
-/* retrieves free memory in bytes */
-int mpio_memory_free(mpio_t *, mpio_mem_t, int *free);
-
-/*
- * charset for filename encoding/converting
- */
-BYTE *mpio_charset_get(mpio_t *);
-BYTE mpio_charset_set(mpio_t *, BYTE *);
-
-/*
- * directory operations
- */
-
-/* context, memory bank */
-BYTE* mpio_directory_open(mpio_t *, mpio_mem_t);
-/* context, memory bank, directory name */
-int mpio_directory_make(mpio_t *, mpio_mem_t, BYTE *);
-/* context, memory bank, directory name */
-int mpio_directory_cd(mpio_t *, mpio_mem_t, BYTE *);
-/* context, memory bank, directory name buffer space */
-void mpio_directory_pwd(mpio_t *, mpio_mem_t, BYTE pwd[INFO_LINE]);
-/* context, dir context */
-BYTE* mpio_dentry_next(mpio_t *, mpio_mem_t, BYTE *);
-/* context, dir context */
-int mpio_dentry_get(mpio_t *, mpio_mem_t, BYTE *, BYTE *, int,WORD *,
- BYTE *, BYTE *, BYTE *, BYTE *, DWORD *, BYTE *);
-
-/*
- * reading/writing/deleting of files
- */
-
-int mpio_file_get_as(mpio_t *, mpio_mem_t, mpio_filename_t,
- mpio_filename_t,mpio_callback_t);
-
-/* context, memory bank, filename, callback */
-int mpio_file_get(mpio_t *, mpio_mem_t, mpio_filename_t, mpio_callback_t);
-
-/* context, memory bank, filename, filetype, callback */
-int mpio_file_put(mpio_t *, mpio_mem_t, mpio_filename_t, mpio_filetype_t,
- mpio_callback_t);
-
-/* context, memory bank, filename, as, filetype, callback */
-int mpio_file_put_as(mpio_t *, mpio_mem_t, mpio_filename_t,
- mpio_filename_t, mpio_filetype_t,
- mpio_callback_t);
-
-/* context, memory bank, filename, callback */
-int mpio_file_del(mpio_t *, mpio_mem_t, mpio_filename_t, mpio_callback_t);
-
-/*
- * reading/writing files into memory (used for config+font files)
- */
-
-/* context, memory bank, filename, callback, pointer to memory */
-/* the needed memory is allocated and the memory pointer is return */
-/* via the "BYTE **" */
-
-int mpio_file_get_to_memory(mpio_t *, mpio_mem_t, mpio_filename_t,
- mpio_callback_t, BYTE **);
-
-/* context, memory bank, filename, filetype, callback ... */
-/* ... memory pointer, size of file */
-int mpio_file_put_from_memory(mpio_t *, mpio_mem_t, mpio_filename_t,
- mpio_filetype_t, mpio_callback_t,
- BYTE *, int);
-
-/*
- * rename a file on the MPIO
- */
-/* context, memory bank, filename, filename */
-int mpio_file_rename(mpio_t *, mpio_mem_t,
- mpio_filename_t, mpio_filename_t);
-
-/*
- * switch position of two files
- */
-/* context, memory bank, filename, filename */
-int mpio_file_switch(mpio_t *, mpio_mem_t,
- mpio_filename_t, mpio_filename_t);
-
-/* Move a named file after a given file. If after==NULL move it
- to the top of the list,
-*/
-
-int mpio_file_move(mpio_t *,mpio_mem_t m,mpio_filename_t,mpio_filename_t);
-
-/*
- * formating a memory (internal mem or external SmartMedia card)
- */
-
-/* context, memory bank, callback */
-int mpio_memory_format(mpio_t *, mpio_mem_t, mpio_callback_t);
-
-/* mpio_sync has to be called after every set of mpio_file_{del,put}
- * operations to write the current state of FAT and (root) directory.
- * This is done explicitly to avoid writing these informations to often
- * and thereby exhausting the SmartMedia chips
- */
-/* context, memory bank */
-int mpio_sync(mpio_t *, mpio_mem_t);
-
-/*
- * ID3 rewriting support
- */
-
-/* enable disable ID3 rewriting support */
-BYTE mpio_id3_set(mpio_t *, BYTE);
-/* query ID3 rewriting support */
-BYTE mpio_id3_get(mpio_t *);
-
-/* set format string for rewriting*/
-void mpio_id3_format_set(mpio_t *, BYTE *);
-/* get format string for rewriting*/
-void mpio_id3_format_get(mpio_t *, BYTE *);
-
-/*
- * "special" functions
- */
-
-/* returns health status of selected memory */
-int mpio_health(mpio_t *, mpio_mem_t, mpio_health_t *);
-
-/*
- * error handling
- */
-
-/* returns error code of last error */
-int mpio_errno(void);
-
-/* returns the description of the error <errno> */
-char * mpio_strerror(int err);
-
-/* prints the error message of the last error*/
-void mpio_perror(char *prefix);
-
-/*
- * debugging
- */
-
-/* context, memory bank */
-int mpio_memory_dump(mpio_t *, mpio_mem_t);
-
-/*
- * timeline:
- * ---------
- * 2004: some functions to change the order of files
- * 2005: read mp3 tags of the files
- */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* _MPIO_H_ */
-
-