--- uae/src/include/fsdb.h 2018/04/24 16:47:41 1.1.1.1 +++ uae/src/include/fsdb.h 2018/04/24 17:04:13 1.1.1.4 @@ -20,7 +20,7 @@ #define ERROR_OBJECT_IN_USE 202 #define ERROR_OBJECT_EXISTS 203 #define ERROR_DIR_NOT_FOUND 204 -#define ERROR_OBJECT_NOT_FOUND 205 +#define ERROR_OBJECT_NOT_AROUND 205 #define ERROR_ACTION_NOT_KNOWN 209 #define ERROR_INVALID_LOCK 211 #define ERROR_OBJECT_WRONG_TYPE 212 @@ -60,8 +60,14 @@ typedef struct a_inode_struct { int amigaos_mode; /* Unique number for identification. */ uae_u32 uniq; + /* For a directory that is being ExNext()ed, the number of child ainos + which must be kept locked in core. */ + unsigned long locked_children; + /* How many ExNext()s are going on in this directory? */ + unsigned long exnext_count; /* AmigaOS locking bits. */ int shlock; + long db_offset; unsigned int dir:1; unsigned int elock:1; /* Nonzero if this came from an entry in our database. */ @@ -88,7 +94,7 @@ extern int fsdb_used_as_nname (a_inode * extern a_inode *fsdb_lookup_aino_aname (a_inode *base, const char *); extern a_inode *fsdb_lookup_aino_nname (a_inode *base, const char *); -static __inline__ int same_aname (const char *an1, const char *an2) +STATIC_INLINE int same_aname (const char *an1, const char *an2) { return strcasecmp (an1, an2) == 0; }