| #ifndef _IPXE_JOB_H |
| #define _IPXE_JOB_H |
| |
| /** @file |
| * |
| * Job control interfaces |
| * |
| */ |
| |
| FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); |
| |
| #include <ipxe/interface.h> |
| |
| /** Job progress */ |
| struct job_progress { |
| /** Amount of operation completed so far |
| * |
| * The units for this quantity are arbitrary. @c completed |
| * divded by @total should give something which approximately |
| * represents the progress through the operation. For a |
| * download operation, using byte counts would make sense. |
| */ |
| unsigned long completed; |
| /** Total operation size |
| * |
| * See @c completed. A zero value means "total size unknown" |
| * and is explcitly permitted; users should take this into |
| * account before calculating @c completed/total. |
| */ |
| unsigned long total; |
| /** Message (optional) */ |
| char message[32]; |
| }; |
| |
| extern int job_progress ( struct interface *intf, |
| struct job_progress *progress ); |
| #define job_progress_TYPE( object_type ) \ |
| typeof ( int ( object_type, struct job_progress *progress ) ) |
| |
| #endif /* _IPXE_JOB_H */ |