that implements updating specific to update_mime_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1268 a95241bf-73f2-0310-859d-f6bbb57e9c96
that implements updating specific to create_app_meta_mime().
Note that the implementation is not 100% correct yet, and the
OBOS::BMimeType::create_app_meta_mime() tests still fail.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1267 a95241bf-73f2-0310-859d-f6bbb57e9c96
implements the functionality common to both mime update calls
(update_mime_info() and create_app_meta_mime()), namely walking
through the filesystem and performing updates.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1266 a95241bf-73f2-0310-859d-f6bbb57e9c96
currently hold a pointer to a fs_mount, or a vnode).
Updated the index_dir part of the fs API.
Added FDTYPE_INDEX_DIR in fd.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1188 a95241bf-73f2-0310-859d-f6bbb57e9c96
They are now located in src/kernel/core/fs, because they are private to
the VFS, not private to the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1183 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added exports for the variables a file system add-on has to export.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1180 a95241bf-73f2-0310-859d-f6bbb57e9c96
Moved typedefs for mount_id and vnode_id to fs_interface.h.
Removed some unused stuff in ktypes.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1173 a95241bf-73f2-0310-859d-f6bbb57e9c96
Since BFS can't resolve a vnode_id to an attribute, fs_create_attr() now
doesn't return a new vnode_id anymore. Changed all fs_vnode variables to
"file" instead of "attr" to avoid any confusion.
That means for BFS that the cookie which fs_open_attr() returns will have
to include a pointer to the real inode, if the attribute is not part of the
file's inode.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1159 a95241bf-73f2-0310-859d-f6bbb57e9c96
can use this structure to call fstat() on attributes and indices.
Added more functions to the file system interface (attributes, and indices).
Added header fs_attr.h, and fs_index.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1158 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Added sniffer rule based mime type guessing
+ Added get_device_icon()
+ Added complete (synchronous, asynchronous; recursive,
non-recursive; forcing, non-forcing; you name it we got it :-)
update_mime_info() implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1152 a95241bf-73f2-0310-859d-f6bbb57e9c96
a pre-read data stream to be sniffed instead of actual files on disk.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1149 a95241bf-73f2-0310-859d-f6bbb57e9c96
responsible for managing sniffer rules and sniffing files and data
streams.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1147 a95241bf-73f2-0310-859d-f6bbb57e9c96
is responsible for managing associations between mime types and
file extensions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1146 a95241bf-73f2-0310-859d-f6bbb57e9c96
Updated several structures because of the int/int32/status_t change.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1139 a95241bf-73f2-0310-859d-f6bbb57e9c96
or completed, though.
Renamed fs_cookie to fs_volume, and file_cookie to fs_cookie.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1136 a95241bf-73f2-0310-859d-f6bbb57e9c96
Removed dependencies on arch/x86/types.h - this file is not really used
anymore, now. Might prevent compiling on Windows, though.
Replaced "int" with "int32" for the id types.
Removed some stuff from ktypes.h because it didn't belong there.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1120 a95241bf-73f2-0310-859d-f6bbb57e9c96
Removed the bzero()/bcopy() prototypes, and replaced them with macros - we
should decide what to do with them.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1119 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replaced <types.h> with <sys/types.h> because that's what those headers
were looking for.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1118 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Modified BMimeType::SetSupportedTypes functionality so it keeps track of
stranded types (i.e. previously supported types that have not had the now
unsupporting app signature removed from their supporting apps list yet due
to a false fullSync parameter) over consecutive SetSupportedTypes(...,
false) calls and updates all appropriate stranded types on the next
SetSupportedTypes(..., true) call.
+ Added fullSync parameter to BMimeType::DeleteSupportedTypes
+ Made BMimeType::Delete() do a DeleteSupportedTypes(..., true) call to
properly update the supporting apps lists when a mime type is deleted.
+ Added initial BMimeType::Get/SetSnifferRule
+ Updated BMimeType::CheckSnifferRule() to return B_BAD_VALUE when passed
a NULL rule string.
+ Brought CheckSnifferRule() tests up to date
+ Added lots of Mime::Database doxygen
+ Added any missing mime monitor notifications in Mime::Database
+ Possibly made some other changes as well... :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1004 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added SetSupportedTypes() documentation
Removed a few unnecessary BMessage copies in a couple of functions
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1003 a95241bf-73f2-0310-859d-f6bbb57e9c96
Several files managed to get left out of the build process; changes to
support.src fixed that.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@930 a95241bf-73f2-0310-859d-f6bbb57e9c96
information for verbosity >= v2. I'll probably add a command-line
toggle specifically for timing info someday. I also hope to add per-test
and per-suite run time info eventually as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@864 a95241bf-73f2-0310-859d-f6bbb57e9c96
functionality, it became apparent that some restructuring was
needed if I wanted to keep things clean and managble.
storage/MimeDatabase.{h,cpp} have been broken into:
storage/mime/database_support.{h,cpp}
+ MIME database constants
+ high-level database access functions like open_type(),
read_mime_attr(), etc.
storage/mime/database_access.{h,cpp}
+ atomic read functions
+ is_installed()
+ get_icon_data()
storage/mime/Database.{h,cpp}
+ Mime::Database class, which is responsible for all write,
non-atomic read, and mime monitor functionality.
storage/mime/InstalledTypes.{h,cpp}
+ Helper class for Mime::Database::GetInstalled[Super]Types()
storage/mime/Supertype.{h,cpp}
+ Helper class for Mime::InstalledTypes
I haven't merged my intial, somewhat cludgy GetInstalled[Super]Types
implementation into the new setup yet. That comes next, and it ought
to be a more graceful implementation now.
I also implemented BMimeType::Get/SetSupportingTypes(), though
they haven't been tested yet (sorry).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@862 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changed other headers to include sys/types.h rather than ktypes.h.
Added a license reference at the beginning of those files.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@840 a95241bf-73f2-0310-859d-f6bbb57e9c96
- {Get,Set}PreferredApp()
- {Get,Set}AppHint()
- {Get,Set}Icon()
+ Added any missing doxygen
SetIcon() is currently not implemented as I would like,
due to us needing an OBOS::BBitmap implementation.
Thus there are two versions and the GetIconData()
function until that day comes around.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@818 a95241bf-73f2-0310-859d-f6bbb57e9c96
to allow libstorage to compile using public app kit headers)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@783 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added syscalls for, and implemented sys_create_link(), sys_remove_dir().
Implemented link(), unlink(), rmdir().
Fixed the inconsistent path buffer handling in the user|sys vfs functions; the
path buffer is now exactly SYS_MAX_PATH_LEN from userland (incl. terminating
null byte).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@748 a95241bf-73f2-0310-859d-f6bbb57e9c96
Replaced the unused syscall for getdtablesize() with one for access().
Implemented sys_access() and added it to the file system interface.
Removed the fs function interface from vfs.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@738 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Renamed Expr class to DisjList, which is more descriptive
as to its function
+ Added ' and " to the list of allowed characters in an
unquoted string.
+ Added updated sniffer rule grammar to doxygen for the
Parser class
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@685 a95241bf-73f2-0310-859d-f6bbb57e9c96
getcwd().
Introduced new xyz(int fd, char *path, ...) style of functions for
sys_setcwd(), and sys_write_stat().
Added missing sys_fstat(). Removed duplicated prototypes in syscalls.h
Fixed some minor bugs.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@669 a95241bf-73f2-0310-859d-f6bbb57e9c96
All unimplemented functions are commented out for now - but that has to
change, of course.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@665 a95241bf-73f2-0310-859d-f6bbb57e9c96
Removed unistd.h (new BeOS-like unistd.h will be in posix/ shortly)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@664 a95241bf-73f2-0310-859d-f6bbb57e9c96
instead of const char*'s to allow for rules with NULL characters
embedded in them.
+ Updated Rule::Sniff() to actually return a useful value
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@662 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Fixed a bug with 0eXXX floats being handled improperly
+ Updated a few error messages to give proper character
stream positions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@650 a95241bf-73f2-0310-859d-f6bbb57e9c96
license stuff in it :-).
Some cleanup on the other headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@638 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Added support for extended notation floating point numbers,
as well as signed (+ and -) floats.
+ Finished up parsing code
+ Moved Err class into it's own header/source pair, since I
started using it all over the place in the sniffer code.
+ Did my darndest to make sure I wasn't leaking memory
anywhere.
+ Matched up error messages as best as possible with R5's
error message. Some couldn't be matched, some were improved.
There *are* a few things left to do. I don't think priorities are
verified to be valid (0.0 <= x <= 1.0). More tests also need to
be written. Things have solidified enough now that documentation
is a reasonable thing to start considering as well.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@608 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Added Priority()
+ Added Sniff()
+ Replaced ExprList typedef with plain old std::vector<Expr*>
so I wouldn't forget what the hell kind of list I was working with.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@607 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a "mode" parameter to the sys_create_symlink() function.
Added an open_mode to the file_descriptor struct.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@591 a95241bf-73f2-0310-859d-f6bbb57e9c96
some day).
Cleaned up sys/stat.h a bit, and added new definitions for different types
of symlinks I plan to add - though I am still not sure if it's a good idea ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@580 a95241bf-73f2-0310-859d-f6bbb57e9c96
removed. The old static BLooper functions for managing the looper list are
still there, but they are officially deprecated. The approved interface
for this information is BPrivate::BLooperList, accessible via the global
BPrivate::gLooperList variable. Being as it lives in BPrivate, it is for
API-internal use *ONLY*. User apps use it to their own risk.
Also added a small test to make sure that the size of BLooper stays the
same. I will probably add this to other classes as well; doesn't hurt to
be safe. =)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@572 a95241bf-73f2-0310-859d-f6bbb57e9c96
- added needed syscalls to access symlink support from userland
- implemented lstat(), symlink(), and readlink()
- added dev_t to ktypes.h (for now - should be in a public header anyway)
- added symlink support to the "ls" command (now calls lstat() and shows the
link target with the -l option)
- changed the sys_read_stat() call to support symlinks, and updated files
using that function (it gets an extra argument: bool traverseLink)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@560 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Started on Parser class
+ Moved parsing functions into Parser class
+ Added Pos() member to Err class to allow for
snazzy BMimeType::CheckSnifferRule() error strings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@531 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Added EmptyToken, Integer, and FloatingPoint TokenTypes.
+ Added IntToken and IntegerToken classes.
+ Updated scanner, which now handles numbers as well. I believe
it's nearly complete, although I'm almost positive it doesn't
handle octals correctly yet...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@477 a95241bf-73f2-0310-859d-f6bbb57e9c96
AddApplication() returns the token via reference parameter and
additionally returns the team ID of the already running app (if any).
* Implemented AddApplication(), SetThreadAndTeam(), CompleteRegistration(),
IsAppPreRegistered(), RemovePreRegApp(), RemoveApp(), or to to say it
briefly the complete set of app registration helper functions.
* Implemented GetRunningAppInfo() and GetActiveAppInfo().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@454 a95241bf-73f2-0310-859d-f6bbb57e9c96
scanner portion of the parser is done, but completely untested
and unused. More to come...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@452 a95241bf-73f2-0310-859d-f6bbb57e9c96
These will need to be reviewed as beos drivers expect them to be available
and using #define won't cover that.
The doxygen stuff doesn't all work though I can't figure out why :(
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@423 a95241bf-73f2-0310-859d-f6bbb57e9c96
A couple of changes in various interrupt and thread functions and structures.
These make it now possible to change the stack at any time without making the kernel crash. This is needed for calling VESA 3.0 VBE functions through the protected mode interface.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@422 a95241bf-73f2-0310-859d-f6bbb57e9c96
(I just stole it from StorageKit::BasicTest, the version of
which has been proven many times over ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@417 a95241bf-73f2-0310-859d-f6bbb57e9c96
date than the Be file we started from. Also add the type 2 header and
start adding it to the pci_info structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@397 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed many bugs.
Now, the vfs_ prefix is for functions that are called by other parts of the
kernel. file_ is for file related stuff, dir_ for directory related, and
common_ for both, fs_ for general file system stuff.
Put all prefixed functions together in the source.
Implemented (currently without a user/sys call) opening/creating of entry_refs,
and node_refs (the latter for opening directories only).
Moved vfs_dup(), and vfs_dup2() to fd.c, fd_dup(), and fd_dup2().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@351 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Added ability to specify entire suites to the UnitTester program.
+ BAutolock and BArchivable tests now use CPPUNIT_ASSERT, but BLocker
tests crash for some unknown reason with said assertion, so plain old vanilla
assert() is still used. I'll look into this later.
+ BArchivable tests that try to load a RemoteTestObject are failing
because the resource file doesn't appear to be linked into
libsupporttest_RemoteTestObject.so.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@332 a95241bf-73f2-0310-859d-f6bbb57e9c96
people will start to migrate to the posix/Be error codes and thus
remove the possibility of mismatched codes being reported/checked.
Think this change should cause no build problems, but it's possible
I missed one or 2 instances...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@326 a95241bf-73f2-0310-859d-f6bbb57e9c96
that the net stack used but works in a different way than the existing code,
and has proved useful in the modules code where it cured the strange
segfaults that were being produced in seemingly random and unpredictable
places.
the naming could be improved :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@321 a95241bf-73f2-0310-859d-f6bbb57e9c96
benaphores; benaphores aren't that beneficial in kernel land, the benaphores
are a way to reduce the number of kernel calls.
They can now only be released by the same thread who originally acquired it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@312 a95241bf-73f2-0310-859d-f6bbb57e9c96