ATA kernel tracing functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27281 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -5,6 +5,7 @@ UsePrivateKernelHeaders ;
|
|||||||
|
|
||||||
KernelAddon ide :
|
KernelAddon ide :
|
||||||
ata.c
|
ata.c
|
||||||
|
ata_tracing.cpp
|
||||||
ata_request.c
|
ata_request.c
|
||||||
atapi.c
|
atapi.c
|
||||||
channels.c
|
channels.c
|
||||||
|
|||||||
@@ -0,0 +1,61 @@
|
|||||||
|
#include <tracing.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
#include "ata_tracing.h"
|
||||||
|
#include "ide_internal.h"
|
||||||
|
|
||||||
|
#if ATA_TRACING
|
||||||
|
|
||||||
|
class ATATraceEntry : public AbstractTraceEntry {
|
||||||
|
public:
|
||||||
|
ATATraceEntry(int bus, int device, const char *info)
|
||||||
|
: fBus(bus)
|
||||||
|
, fDevice(device)
|
||||||
|
{
|
||||||
|
strlcpy(fInfo, info, sizeof(fInfo));
|
||||||
|
Initialized();
|
||||||
|
}
|
||||||
|
|
||||||
|
void AddDump(TraceOutput& out, const char* name)
|
||||||
|
{
|
||||||
|
out.Print("ata");
|
||||||
|
out.Print(" - %s - ", name);
|
||||||
|
out.Print("bus %d", fBus);
|
||||||
|
out.Print("device %d", fDevice);
|
||||||
|
out.Print("%s", fInfo);
|
||||||
|
}
|
||||||
|
|
||||||
|
int fBus;
|
||||||
|
int fDevice;
|
||||||
|
char fInfo[200];
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" void
|
||||||
|
__ata_trace_device(ide_device_info *dev, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
char info[200];
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vsnprintf(info, sizeof(info), fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
new(std::nothrow) ATATraceEntry(dev->bus->path_id, dev->is_device1, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
extern "C" void
|
||||||
|
__ata_trace_bus_device(ide_bus_info *bus, int dev, const char *fmt, ...)
|
||||||
|
{
|
||||||
|
char info[200];
|
||||||
|
va_list ap;
|
||||||
|
|
||||||
|
va_start(ap, fmt);
|
||||||
|
vsnprintf(info, sizeof(info), fmt, ap);
|
||||||
|
va_end(ap);
|
||||||
|
|
||||||
|
new(std::nothrow) ATATraceEntry(bus->path_id, dev, info);
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@@ -0,0 +1,32 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2008, Marcus Overhagen. All rights reserved.
|
||||||
|
* Distributed under the terms of the MIT License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
#include "tracing_config.h"
|
||||||
|
|
||||||
|
#if ATA_TRACING
|
||||||
|
|
||||||
|
struct ide_bus_info;
|
||||||
|
struct ide_device_info;
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void __ata_trace_device(struct ide_device_info *dev, const char *fmt, ...);
|
||||||
|
void __ata_trace_bus_device(struct ide_bus_info *bus, int dev, const char *fmt, ...);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define T(dev, args...) __ata_trace_device(dev, args)
|
||||||
|
#define T2(bus, dev, args...) __ata_trace_bus_device(bus, dev, args)
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define T(x...)
|
||||||
|
#define T2(x...)
|
||||||
|
|
||||||
|
#endif
|
||||||
Reference in New Issue
Block a user