Пример #1
0
long sys_proc_info(uint32_t callnum, int32_t pid, uint32_t flavor,
		uint64_t arg, void* buffer, int32_t bufsize)
{
	switch (callnum)
	{
		case 4: // proc_kmsgbuf
		{
			int ret;

			ret = __linux_syslog(SYSLOG_ACTION_READ_ALL, (char*) buffer,
					bufsize);
			if (ret < 0)
				return errno_linux_to_bsd(ret);

			return ret;
		}
		case 1: // proc_listpids
		case 2: // proc_pidinfo
		case 3: // proc_pidfdinfo
		default:
			__simple_printf("sys_proc_info(): Unsupported callnum: %d\n",
					callnum);
			return -ENOTSUP;
	}
}
Пример #2
0
void SPIError (const uint8_t err, ...) {
    va_list list;
    char str[18] = "SPI Error %u: %s\n";

    switch (err) {
        case SPI_INVALID_PIN:
        __simple_printf(str, (err - SPI_ERRORS_BASE), "Invalid pin");
        break;
        case SPI_INVALID_MODE:
        __simple_printf(str, (err - SPI_ERRORS_BASE), "Invalid mode");
        break;
        case SPI_INVALID_PIN_MASK:
        __simple_printf(str, (err - SPI_ERRORS_BASE), "Invalid pin mask");
        break;
        case SPI_TOO_MANY_BITS:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "Incapable of handling so many bits in an argument");
        break;
        case SPI_TIMEOUT:
        va_start(list, err);
        __simple_printf("SPI Error %u: %s\n\tCalling function was %s\n",
                (err - SPI_ERRORS_BASE),
                "Timed out during parameter passing", va_arg(list, char *));
        va_end(list);
        break;
        case SPI_TIMEOUT_RD:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "Timed out during parameter read");
        break;
        case SPI_COG_NOT_STARTED:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "SPI's GAS cog was not started");
        break;
        case SPI_MODULE_NOT_RUNNING:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "SPI GAS cog not running");
        break;
        case SPI_INVALID_FREQ:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "Frequency set too high");
        break;
        case SPI_ADDR_MISALIGN:
        __simple_printf(str, (err - SPI_ERRORS_BASE),
                "Passed in address is miss aligned");
        break;
        default:
        // Is the error an SPI error?
        if (err > SPI_ERRORS_BASE
                && err < (SPI_ERRORS_BASE + SPI_ERRORS_LIMIT))
        __simple_printf("Unknown SPI error %u\n",
                (err - SPI_ERRORS_BASE));
        else
        __simple_printf("Unknown error %u\n", (err));
        break;
    }
    while (1)
    ;
}