Changeset ae3a941 in mainline for uspace/drv/bus/usb/xhci/hw_struct/context.h
- Timestamp:
- 2018-02-26T16:51:40Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e773f58
- Parents:
- 3692678
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
uspace/drv/bus/usb/xhci/hw_struct/context.h
r3692678 rae3a941 179 179 #define XHCI_CTX_SIZE_SMALL 32 180 180 #define XHCI_ONE_CTX_SIZE(hc) (XHCI_CTX_SIZE_SMALL << hc->csz) 181 #define XHCI_GET_CTX_FIELD(type, ctx, hc, ci) (xhci_##type##_ctx_to_charptr(ctx) + (ci) * XHCI_ONE_CTX_SIZE(hc)) 181 #define XHCI_GET_CTX_FIELD(type, ctx, hc, ci) \ 182 (xhci_##type##_ctx_to_charptr(ctx) + (ci) * XHCI_ONE_CTX_SIZE(hc)) 182 183 183 184 /** … … 185 186 */ 186 187 #define XHCI_DEVICE_CTX_SIZE(hc) ((1 + XHCI_EP_COUNT) * XHCI_ONE_CTX_SIZE(hc)) 187 #define XHCI_GET_EP_CTX(dev_ctx, hc, dci) ((xhci_ep_ctx_t *) XHCI_GET_CTX_FIELD(device, (dev_ctx), (hc), (dci))) 188 #define XHCI_GET_SLOT_CTX(dev_ctx, hc) ((xhci_slot_ctx_t *) XHCI_GET_CTX_FIELD(device, (dev_ctx), (hc), 0)) 188 #define XHCI_GET_EP_CTX(dev_ctx, hc, dci) \ 189 ((xhci_ep_ctx_t *) XHCI_GET_CTX_FIELD(device, (dev_ctx), (hc), (dci))) 190 #define XHCI_GET_SLOT_CTX(dev_ctx, hc) \ 191 ((xhci_slot_ctx_t *) XHCI_GET_CTX_FIELD(device, (dev_ctx), (hc), 0)) 189 192 190 193 /** … … 210 213 typedef struct xhci_stream_ctx { 211 214 uint64_t data [2]; 212 #define XHCI_STREAM_DCS(ctx) 213 #define XHCI_STREAM_SCT(ctx) 214 #define XHCI_STREAM_DEQ_PTR(ctx) 215 #define XHCI_STREAM_EDTLA(ctx) 215 #define XHCI_STREAM_DCS(ctx) XHCI_QWORD_EXTRACT((ctx).data[0], 0, 0) 216 #define XHCI_STREAM_SCT(ctx) XHCI_QWORD_EXTRACT((ctx).data[0], 3, 1) 217 #define XHCI_STREAM_DEQ_PTR(ctx) (XHCI_QWORD_EXTRACT((ctx).data[0], 63, 4) << 4) 218 #define XHCI_STREAM_EDTLA(ctx) XHCI_QWORD_EXTRACT((ctx).data[1], 24, 0) 216 219 217 220 #define XHCI_STREAM_SCT_SET(ctx, val) \ … … 232 235 uint32_t data [8]; 233 236 #define XHCI_INPUT_CTRL_CTX_DROP(ctx, idx) \ 234 237 XHCI_DWORD_EXTRACT((ctx).data[0], (idx), (idx)) 235 238 236 239 #define XHCI_INPUT_CTRL_CTX_DROP_SET(ctx, idx) (ctx).data[0] |= (1 << (idx)) … … 238 241 239 242 #define XHCI_INPUT_CTRL_CTX_ADD(ctx, idx) \ 240 243 XHCI_DWORD_EXTRACT((ctx).data[1], (idx), (idx)) 241 244 242 245 #define XHCI_INPUT_CTRL_CTX_ADD_SET(ctx, idx) (ctx).data[1] |= (1 << (idx)) 243 246 #define XHCI_INPUT_CTRL_CTX_ADD_CLEAR(ctx, idx) (ctx).data[1] &= ~(1 << (idx)) 244 247 245 #define XHCI_INPUT_CTRL_CTX_CONFIG_VALUE(ctx) XHCI_DWORD_EXTRACT((ctx).data[7], 7, 0) 246 #define XHCI_INPUT_CTRL_CTX_IFACE_NUMBER(ctx) XHCI_DWORD_EXTRACT((ctx).data[7], 15, 8) 247 #define XHCI_INPUT_CTRL_CTX_ALTER_SETTING(ctx) XHCI_DWORD_EXTRACT((ctx).data[7], 23, 16) 248 #define XHCI_INPUT_CTRL_CTX_CONFIG_VALUE(ctx) \ 249 XHCI_DWORD_EXTRACT((ctx).data[7], 7, 0) 250 #define XHCI_INPUT_CTRL_CTX_IFACE_NUMBER(ctx) \ 251 XHCI_DWORD_EXTRACT((ctx).data[7], 15, 8) 252 #define XHCI_INPUT_CTRL_CTX_ALTER_SETTING(ctx) \ 253 XHCI_DWORD_EXTRACT((ctx).data[7], 23, 16) 248 254 } __attribute__((packed)) xhci_input_ctrl_ctx_t; 249 255 … … 252 258 */ 253 259 #define XHCI_INPUT_CTX_SIZE(hc) (XHCI_ONE_CTX_SIZE(hc) + XHCI_DEVICE_CTX_SIZE(hc)) 254 #define XHCI_GET_CTRL_CTX(ictx, hc) ((xhci_input_ctrl_ctx_t *) XHCI_GET_CTX_FIELD(input, (ictx), (hc), 0)) 255 #define XHCI_GET_DEVICE_CTX(dev_ctx, hc) ((xhci_device_ctx_t *) XHCI_GET_CTX_FIELD(input, (ictx), (hc), 1)) 260 #define XHCI_GET_CTRL_CTX(ictx, hc) \ 261 ((xhci_input_ctrl_ctx_t *) XHCI_GET_CTX_FIELD(input, (ictx), (hc), 0)) 262 #define XHCI_GET_DEVICE_CTX(dev_ctx, hc) \ 263 ((xhci_device_ctx_t *) XHCI_GET_CTX_FIELD(input, (ictx), (hc), 1)) 256 264 257 265 typedef struct xhci_input_ctx {
Note:
See TracChangeset
for help on using the changeset viewer.