Root/atusb/fw/sernum.c

1/*
2 * fw/sernum.c - ATUSB serial number
3 *
4 * Written 2008-2011, 2013 by Werner Almesberger
5 * Copyright 2008-2011, 2013 Werner Almesberger
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 */
12
13
14#include <stdbool.h>
15#include <stdint.h>
16
17#include "usb.h"
18
19#include "board.h"
20#include "sernum.h"
21
22
23static const uint8_t string_descriptor_0[] = {
24    4, /* blength */
25    USB_DT_STRING, /* bDescriptorType */
26    LE(USB_LANGID_ENGLISH_US) /* wLANGID[0] */
27};
28
29
30bool sernum_get_descr(uint8_t type, uint8_t index, const uint8_t **reply,
31    uint8_t *size)
32{
33    if (type != USB_DT_STRING)
34        return 0;
35    switch (index) {
36    case 0:
37        *reply = string_descriptor_0;
38        *size = sizeof(string_descriptor_0);
39        return 1;
40    case 1:
41        *reply = board_sernum;
42        *size = sizeof(board_sernum);
43        return 1;
44    default:
45        return 0;
46    }
47}
48

Archive Download this file



interactive