- struct {
- struct chsc_header request;
- u32 reserved1;
- u32 reserved2;
- u32 reserved3;
- struct chsc_header response;
- u32 reserved4;
- u32 general_char[510];
- u32 chsc_char[518];
- } *scsc_area;
-
- scsc_area = (void *)get_zeroed_page(GFP_KERNEL | GFP_DMA);
- if (!scsc_area) {
- QDIO_PRINT_WARN("Was not able to determine available" \
- "CHSCs due to no memory.\n");
- return -ENOMEM;
- }
-
- scsc_area->request = (struct chsc_header) {
- .length = 0x0010,
- .code = 0x0010,
- };
-
- result=chsc(scsc_area);
- if (result) {
- QDIO_PRINT_WARN("Was not able to determine " \
- "available CHSCs, cc=%i.\n",
- result);
- result=-EIO;
- goto exit;
- }