#ifndef _H_JFS_DTREE
#define _H_JFS_DTREE
#include "jfs_btree.h"
ddata_t;
struct dtslot { … };
#define DATASLOTSIZE …
#define L2DATASLOTSIZE …
#define DTSLOTSIZE …
#define L2DTSLOTSIZE …
#define DTSLOTHDRSIZE …
#define DTSLOTDATASIZE …
#define DTSLOTDATALEN …
struct idtentry { … };
#define DTIHDRSIZE …
#define DTIHDRDATALEN …
#define NDTINTERNAL(klen) …
struct ldtentry { … };
#define DTLHDRSIZE …
#define DTLHDRDATALEN_LEGACY …
#define DTLHDRDATALEN …
#define DO_INDEX(INODE) …
#define MAX_INLINE_DIRTABLE_ENTRY …
struct dir_table_slot { … };
#define DIR_INDEX_VALID …
#define DIR_INDEX_FREE …
#define DTSaddress(dir_table_slot, address64) …
#define addressDTS(dts) …
#define NDTLEAF_LEGACY(klen) …
#define NDTLEAF …
dtroot_t;
#define PARENT(IP) …
#define DTROOTMAXSLOT …
#define dtEmpty(IP) …
dtpage_t;
#define DTPAGEMAXSLOT …
#define DT8THPGNODEBYTES …
#define DT8THPGNODETSLOTS …
#define DT8THPGNODESLOTS …
#define DTQTRPGNODEBYTES …
#define DTQTRPGNODETSLOTS …
#define DTQTRPGNODESLOTS …
#define DTHALFPGNODEBYTES …
#define DTHALFPGNODETSLOTS …
#define DTHALFPGNODESLOTS …
#define DTFULLPGNODEBYTES …
#define DTFULLPGNODETSLOTS …
#define DTFULLPGNODESLOTS …
#define DTENTRYSTART …
#define DT_GETSTBL(p) …
#define JFS_CREATE …
#define JFS_LOOKUP …
#define JFS_REMOVE …
#define JFS_RENAME …
#define DIREND …
extern void dtInitRoot(tid_t tid, struct inode *ip, u32 idotdot);
extern int dtSearch(struct inode *ip, struct component_name * key,
ino_t * data, struct btstack * btstack, int flag);
extern int dtInsert(tid_t tid, struct inode *ip, struct component_name * key,
ino_t * ino, struct btstack * btstack);
extern int dtDelete(tid_t tid, struct inode *ip, struct component_name * key,
ino_t * data, int flag);
extern int dtModify(tid_t tid, struct inode *ip, struct component_name * key,
ino_t * orig_ino, ino_t new_ino, int flag);
extern int jfs_readdir(struct file *file, struct dir_context *ctx);
#endif