Introduced new arch_vm.h ("public" arch headers have the arch_ prefix).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10384 a95241bf-73f2-0310-859d-f6bbb57e9c96
weird stuff - and libbe.so; it now uses the attribute functions
as exported by libroot.so :)
Improved handling of boolean values, improved error messages a lot.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10374 a95241bf-73f2-0310-859d-f6bbb57e9c96
file descriptor, not from/to the attribute...
Added ToDo comment about eventually adding syscalls for these functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10373 a95241bf-73f2-0310-859d-f6bbb57e9c96
No longer locks the file during attribute retrieval.
No longer needs libbe.so.
Added support for some additional types.
Will no longer try to read in a 4GB attribute - at max, it will read
64 kB from an attribute. Also changed output style of the raw data
type - please contact me if you desperately think we should revert
that back (ie. in case the old output was actually of use for something).
As the original author suggested, we're now using isgraph() to improve
the character preview of the raw data.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10371 a95241bf-73f2-0310-859d-f6bbb57e9c96
fd_and_path_to_vnode() now accepts NULL as path argument.
Added some more debug output and comments.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10368 a95241bf-73f2-0310-859d-f6bbb57e9c96
unprintable characters, but replaces them with '.'; when there is more
than one unprintable character in the type code, it will show the hexcode
instead.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10367 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now understands a lot more types than before.
Accepts "--help" and "-h" on the command line to print out usage info.
Prints out how many bytes the attributes add up to.
Instead of printing out the hex value, the attribute type is now
printed as %c%c%c%c 4-character tupel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10363 a95241bf-73f2-0310-859d-f6bbb57e9c96
only regular files were stripped back when bfs_close() was called.
Now, we don't preallocate any blocks for attributes, attribute directories,
and symbolic links (which do have a stream when longer than 144 bytes).
Also, bfs_release_vnode() now trims back all streams that need to be
trimmed - this catches standard directories, which could also slip through
before.
Removed the remaining blocks of INODE_NO_CACHE support as this is not
needed for Haiku.
Added method Inode::NeedsTrimming() that determines if its data stream
can be trimmed (indices are never trimmed to reduce fragmentation).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10356 a95241bf-73f2-0310-859d-f6bbb57e9c96
in beos/ - this makes the update function useful again. Also took all
the blame on why Jerome introduced this :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10355 a95241bf-73f2-0310-859d-f6bbb57e9c96
on AMD and other CPUs - thanks to BiPolar for reporting this!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10354 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also fixed a minor bug in dec_vnode_ref_count(): the unusued vnode counter
was not decremented again when one vnode was removed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10336 a95241bf-73f2-0310-859d-f6bbb57e9c96
more than once, the size requested was only correct for the first time.
Added preliminary support for cache modules.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10335 a95241bf-73f2-0310-859d-f6bbb57e9c96
For Intel CPUs, the cache code 0x40 is now handled manually, as it changes
its meaning depending on the cpu type.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10333 a95241bf-73f2-0310-859d-f6bbb57e9c96
it's only reserved but not defined or used for those.
If you have a stupid BIOS, the name string might not have been set; this
is now supported, and the standard vendor string is used in that case.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10332 a95241bf-73f2-0310-859d-f6bbb57e9c96
The processor signature now correctly handles the extended family/model fields.
The cpuid 0x80000001 field is actually the same as cpuid_info::eax_1, so
dumping it now behaves in the same way, too.
Added printing of Transmeta specific features.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10331 a95241bf-73f2-0310-859d-f6bbb57e9c96
the 0x80000001 generation/model/stepping was displayed incorrectly.
Only the new features in cpuid 0x80000001 are printed, added support for
No-Execute ("NX") and Long Mode ("64").
Improved non-Intel TLB display, added page sizes, 2nd level cache is now
also displayed correctly (unlike the BeOS version which has a wrong
associativity).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10330 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added real _user_exit_team() syscall (it was previously incorrectly mapped
to _user_exit_thread()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10325 a95241bf-73f2-0310-859d-f6bbb57e9c96
information is also visually more appealing.
It now also uses the private/shared/cpu_type.h header to get the CPU string.
Determining the availability of the extended cpuid info was broken - whoever
had problems with the previous "change_extended = 1" should test again, thanks.
Cleaned up.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10322 a95241bf-73f2-0310-859d-f6bbb57e9c96
actually fills a cpuid_info structure. Renamed cpuid() to get_current_cpuid().
Added syscall _user_get_cpuid().
Added a lot of other vendor brand strings. The cpu_type and cpu_revision
fields should now be correctly set.
get_cpuid() now returns B_BAD_VALUE if the cpuNum parameter is out of bounds
(ie. higher than the number of available CPUs in the system).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10321 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Removed the OBOS_CPU_TYPE stuff - our types are now always defined.
- Made the cpu types consistent, renamed X86 to x86.
- cpuid_info.eax_1 now also contains the extended family/model info.
- Renamed cpuid_info.eax_0.vendorid to vendor_id.
- changed B_CPU_x86_VENDOR_MASK to 0xff to make some space for future changes.
- added some more CPU types (if anyone knows more Transmeta IDs; I
couldn't find more of them).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10319 a95241bf-73f2-0310-859d-f6bbb57e9c96
implementation by a syscall. Moved cpuid.S to src/kernel/core/arch/x86.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10318 a95241bf-73f2-0310-859d-f6bbb57e9c96
Might be better placed in a source file, but sysinfo is currently built
very simple, and I was too lazy to change this :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10317 a95241bf-73f2-0310-859d-f6bbb57e9c96
limit, but this is not yet enforced. Added getter functions.
team_init() now returns a status_t.
System info stuff is now globally initialized in main().
get_system_info() now also reports the number of used pages, and calls the
architecture dependent function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10315 a95241bf-73f2-0310-859d-f6bbb57e9c96
added get_cpuid() function (does not respect the cpu parameter yet).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10314 a95241bf-73f2-0310-859d-f6bbb57e9c96
Some of the remaining ones would be candidate for the standard Errors.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10308 a95241bf-73f2-0310-859d-f6bbb57e9c96
Some more useful default levels for the debug output (only wrapper.h, the
values actually used were okay).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10303 a95241bf-73f2-0310-859d-f6bbb57e9c96
When the 0xe820 memory map method doesn't work for whatever reason (broken BIOS),
it currently just assumes to have 32 MB - it now also prints out a warning when
it does so.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10298 a95241bf-73f2-0310-859d-f6bbb57e9c96
and no longer relies on put_vnode() for the root node. This will also call
the FS release/remove vnode calls. Extended comments.
Added "flags" parameter to unmount.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10289 a95241bf-73f2-0310-859d-f6bbb57e9c96
(free_vnode()). Upon freeing, the file cache is now only written back if the
file is not deleted.
dec_vnode_ref_count() no longer frees vnodes that are not going to be deleted.
Instead, it will add them to an unused vnode list, so that they can be freed
if needed (currently only 512 unused vnodes will be kept around). This should
speed up the whole thing, and makes the file cache much more useful, as it's
no longer dumped after the file is closed.
fs_unmount() is not yet respecting this (ie. it doesn't free those nodes as
it should).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10287 a95241bf-73f2-0310-859d-f6bbb57e9c96
of BIOS32, SMBIOS, and DMI services.
Also implemented a get_bios32_service() function which you can use to get
access to that service (ie. for use by the PCI bus manager).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10286 a95241bf-73f2-0310-859d-f6bbb57e9c96
be done consistently if they are unmapped from memory - which is not yet
done.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10285 a95241bf-73f2-0310-859d-f6bbb57e9c96
bfs_open_dir() now checks for read access.
bfs_lookup() now checks for execute access and not read access anymore
(as reported by Ingo as well).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10273 a95241bf-73f2-0310-859d-f6bbb57e9c96
file really has to be created, thanks to Ingo for reporting this.
Inode::Create() now checks for write access to the inode when O_TRUNC is set.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10272 a95241bf-73f2-0310-859d-f6bbb57e9c96
which doesn't use fd_to_filename() yet) and added it to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10271 a95241bf-73f2-0310-859d-f6bbb57e9c96
aspace_id is now defined in vm_types.h only, as it's only used internally anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10261 a95241bf-73f2-0310-859d-f6bbb57e9c96
Ceccherini for the hint.
The first port ID is now 1 and not 0 anymore.
Added a first free slot hint to speed up port creation.
Added more debug output when tracing is enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10260 a95241bf-73f2-0310-859d-f6bbb57e9c96
BeOS supports this as well, at least it's not documented in the BeBook
(but it's useful anyway).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10259 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed _user_set_tzspecs() to _user_set_timezone().
Renamed sTzFilename to sTimezoneFilename.
Moved rtc_print() into rtc_debug().
Fixed changing system_time_offset; since this is a shared 64 bit value,
we have to use atomic calls when we change it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10253 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added "safemode" and "shutdown" commands.
Now makes a symlink from "more" to "less".
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10238 a95241bf-73f2-0310-859d-f6bbb57e9c96
and only the syscall is exported.
For now, it always returns B_ENTRY_NOT_FOUND - since the boot loader
does not have support for driver settings yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10237 a95241bf-73f2-0310-859d-f6bbb57e9c96
_kern_get_safemode_option() just returns the driver_settings parameter
string, so it has to be evaluated by the caller.
Also, "safemode" returns 1 if safemode is enabled.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10236 a95241bf-73f2-0310-859d-f6bbb57e9c96
Improved argument parsing code - you no longer have to specify each option separately.
Improved time parsing for the "-d" option: it's now possible to add a unit to the
time value ("m" or "s"), and you don't have to add a space anymore (ie. -d5 will
work, too).
Cleaned up the source file to better match our style guide, and look better overall.
Also added a comment about the usefulness of some of the options here - I think
we should remove the alert stuff again; one requester (in Roster) is really enough
for my taste.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10234 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added _user_shutdown() and made it available as syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10233 a95241bf-73f2-0310-859d-f6bbb57e9c96