Stage 2/5: Change msdosfs to use libiconv in case.
[dragonfly.git] / sys / vfs / msdosfs / direntry.h
index c26b88b..c57f127 100644 (file)
@@ -129,16 +129,28 @@ struct winentry {
 #define DD_YEAR_SHIFT          9
 
 #ifdef _KERNEL
+struct mbnambuf {
+        size_t  nb_len;
+        int     nb_last_id;
+        char    nb_buf[WIN_MAXLEN + 1];
+};
 struct dirent;
+struct msdosfsmount;
+
+char   *mbnambuf_flush(struct mbnambuf *nbp, char *d_name, u_int16_t *d_namlen);
+void    mbnambuf_init(struct mbnambuf *nbp);
+void    mbnambuf_write(struct mbnambuf *nbp, char *name, int id);
 void unix2dostime (struct timespec *tsp, u_int16_t *ddp, 
             u_int16_t *dtp, u_int8_t *dhp);
 void dos2unixtime (u_int dd, u_int dt, u_int dh, struct timespec *tsp);
-int dos2unixfn (u_char dn[11], u_char *un, int lower, int d2u_loaded, u_int8_t *d2u, int ul_loaded, u_int8_t *ul);
-int unix2dosfn (const u_char *un, u_char dn[12], int unlen, u_int gen, int u2d_loaded, u_int8_t *u2d, int lu_loaded, u_int8_t *lu);
-int unix2winfn (const u_char *un, int unlen, struct winentry *wep, int cnt, int chksum, int table_loaded, u_int16_t *u2w);
-int winChkName (const u_char *un, int unlen, struct winentry *wep, int chksum, int u2w_loaded, u_int16_t *u2w, int ul_loaded, u_int8_t *ul);
-int win2unixfn (struct winentry *wep, char *d_name, uint16_t *d_namlen, int chksum, int table_loaded, u_int16_t *u2w);
+int dos2unixfn (u_char dn[11], u_char *un, int lower, struct msdosfsmount *pmp);
+int unix2dosfn (const u_char *un, u_char dn[12], int unlen, u_int gen, struct msdosfsmount *pmp);
+int unix2winfn (const u_char *un, int unlen, struct winentry *wep, int cnt, int chksum, struct msdosfsmount *pmp);
+int     winChkName(struct mbnambuf *nbp, const u_char *un, size_t unlen,
+            int chksum, struct msdosfsmount *pmp);
+int     win2unixfn(struct mbnambuf *nbp, struct winentry *wep, int chksum,
+            struct msdosfsmount *pmp);
 u_int8_t winChksum (u_int8_t *name);
-int winSlotCnt (const u_char *un, int unlen);
+int winSlotCnt (const u_char *un, int unlen, struct msdosfsmount *pmp);
 int winLenFixup (const u_char *un, int unlen);
 #endif /* _KERNEL */